Skip to content

Agents

Providers & logins

Connect Claude Code, ChatGPT, Cursor, OpenCode, Ollama, OpenRouter and DeepSeek, keep their CLIs current, and run chats on more than one login.

Codz has no model of its own. It runs the coding agents you already use, on your own accounts and plans: command-line agents that keep their own logins, model providers you connect with a key, and Ollama for local or cloud inference.

Unless a section says otherwise, the settings here are in Settings ▸ Models & providers. Open Settings with ⌘,.

Providers

ProviderWhat Codz runsHow you sign in
Claude CodeThe claude CLIThe CLI’s own login, claude auth login
ChatGPTThe codex CLIThe CLI’s own login, codex login
CursorThe cursor-agent CLIThe CLI’s own login, cursor-agent login
OpenCodeThe opencode CLIThe providers you connected with opencode auth login
OllamaCodz’s agent, using Ollama’s local service or cloud APINo login for local inference; Ollama sign-in or a cloud API key for cloud models
OpenRouterCodz harness · OpenRouter, on the model you pickYour OpenRouter account, connected separately for Mac or Cloud
DeepSeek (Preview)The DeepSeek Harness runtime, dsh-jsonrpc-agentA DeepSeek API key you paste in Codz

Codz doesn’t hold the four CLIs’ logins: each CLI keeps its own where it always has. Keys connected on this Mac, including OpenRouter, stay in its Keychain. Connect for Cloud is a separate, explicit connection to Codz’s encrypted Cloud vault; a Mac connection does not connect Cloud automatically. Every chat runs on the selected account and counts against that provider’s plan or billing. Cloud compute is billed separately.

Provider status

The first group, Provider status, has a row for each provider:

  • CLI ready, with the version and where Codz found the CLI, or CLI missing.
  • For OpenRouter, Connected or Not connected. For DeepSeek, CLI missing, Key missing or Ready.
  • Update available when a newer release is out. Claude Code, ChatGPT and Cursor get an Update button; other providers get How to update, which opens their install page. Update needed means Codz needs a newer version than the one installed.

To look again for CLIs, open Settings ▸ General and click Check now next to Re-run environment check, or run codz doctor in Terminal (see Commands).

How Codz finds a CLI

Codz uses the first copy it finds, in this order:

  1. A version you installed from Codz (see Install and update).
  2. /usr/local/bin, /opt/homebrew/bin, ~/.local/bin, ~/.npm-global/bin, ~/.bun/bin and /usr/bin, then the rest of the app’s PATH.
  3. Where the provider’s own installer puts it: ~/.opencode/bin for OpenCode, and Codex’s standalone install in ~/.codex.
  4. A copy that comes with an app: the Cursor CLI the Cursor app keeps up to date, and the Codex CLI inside ChatGPT.app.

Codz opened from the Finder doesn’t read your shell’s startup files, so a folder added to PATH only in ~/.zshrc isn’t searched. While a provider is missing, Codz looks again each time you come back to the app.

Set up a missing provider

When a chat’s provider isn’t ready, a card above the composer says what is missing. Your draft stays where it is.

  • Set up Claude (or ChatGPT, or Cursor): the CLI wasn’t found. Install Claude installs it from Codz; see below.
  • Set up OpenCode, or DeepSeek without its runtime: Setup guide opens the install instructions, at opencode.ai or the DeepSeek Harness repository.
  • Connect OpenRouter or Connect DeepSeek: the account or key is missing. The button opens Settings ▸ Models & providers, where you add it as described below.

Check again looks for the provider once more, and Choose model opens the model picker so you can run the chat on another provider instead.

Install and update

Codz can install and update Claude Code, ChatGPT and Cursor for you. It downloads the provider’s official installer, installs the CLI into a folder of its own and checks the version it reports. Your own installation, your PATH and your package manager are left alone, and new turns use the new version.

  • Install Claude (and the others) on the setup card installs the latest release.
  • Update in Provider status installs the newest release when one is out.
  • Local CLI versions shows each of the three with the version in use and where it is. Update installs the latest, Choose version… switches between Existing installation and the versions Codz installed, and Restore previous goes back to the one before. For Cursor, Choose version… also offers the versions Cursor kept on this Mac, marked Retained on Mac.
  • When a Codex model needs a newer CLI, the turn stops with ChatGPT needs an update and an Update ChatGPT… button.

When a newer release of a CLI you use is out, a card appears at the top right of the Codz window, for example Update available: Claude 2.1.289. Update installs it, Settings opens that provider’s page, and the close button hides the card until the next release. When several are out, Update all installs them one after another and stops if one fails.

The provider list shows each CLI’s version next to its name, with an arrow when there is a newer one. Provider updates, at the top of Settings ▸ Models & providers, says when Codz last checked (“Checked 4m ago”). Check now looks again right away, and Update all appears when more than one CLI can be updated.

Codz won’t replace a CLI while one of its chats is working; the button says “Wait for the running Claude task to finish.” To know what is current, Codz asks codz.com once a day, and again when you click Check now; the request doesn’t include your account or the versions you have installed.

Sign in

Claude Code and ChatGPT. The provider’s accounts group starts with a CLI login row showing Signed in or Not signed in, as the CLI itself reports it. Sign in runs the CLI’s own login and finishes in your browser; the row shows Finish in your browser and Cancel until you do.

Cursor and OpenCode. Sign in with the CLI in Terminal: cursor-agent login or opencode auth login. Codz can’t read their sign-in status, so their rows don’t show one.

Ollama

The Ollama group manages the runtime, connections, and models.

  • Start reuses a running service on this Mac or starts the installed Ollama executable. Install Ollama downloads an official macOS release into Codz’s Application Support folder and verifies its published checksum, signature, and version. Install / update is user initiated and waits for active Ollama work and model operations to finish. Codz stops only service processes it started.
  • Local runs downloaded or imported models through 127.0.0.1:11434. Local selections stay local.
  • Cloud · Ollama sign-in runs cloud models through your local Ollama service using Ollama’s own signin flow.
  • Cloud · API key connects directly to https://ollama.com. Add API key stores the key in a dedicated Keychain item. Disconnect removes that key; it does not sign out the Ollama service.

Local models lists installed chat models and their size, tool and image support, and effective request context. The default local context is 32,768 tokens, capped by each model’s declared maximum. Lower Local context or choose a smaller model if a request runs out of memory. Conversation models without tools work in Ask and Plan; Agent requires tool support. Models without vision cannot read image attachments. Embedding and decision models do not appear in the chat picker.

Enter a model name and tag under Download model, then click Download. Browse library opens Ollama’s official library. Downloads run one at a time and continue when Settings closes. Each job shows layer bytes, verification, and completion. Cancel stops a download; Resume retries failed or interrupted jobs, including after relaunch. Models use the connected Ollama service’s storage. The free-space figure describes this Mac’s home volume; a service configured with another model-storage volume may have different available space.

To import a GGUF model, enter a new Import name, click Choose files…, and select its file or every numbered shard of a split model. Codz preserves shard filenames, uploads missing blobs, and streams model creation. An existing model name is refused. Ollama determines which GGUF architectures and formats it supports.

Delete removes a model from Ollama’s shared library after confirmation, affecting other apps that use the same library. A model used by active Codz work cannot be deleted. Refresh updates the installed inventory and live cloud catalog. Cloud models need no weight download.

Use makes a model and its destination the default loadout pick. You can equip the same model name with different destinations. Ask and Plan have read-only project tools. Agent uses Codz’s existing approvals and trust controls. Paired Remote clients can view and control Mac-owned Ollama chats. Ollama is excluded from Auto selection and Codz-hosted execution.

Local API inference cost is shown as zero. Cloud cost stays unknown unless a charge is reported; provider token counts are recorded once per completed request. Ollama cloud requests use your Ollama account’s limits.

OpenRouter

To connect your OpenRouter account:

  1. In the OpenRouter group, click Connect on this Mac. Use Add account… to name another login.
  2. Sign in on openrouter.ai in the browser tab that opens, and approve the request.
  3. Back in Codz, the Account row shows the connected account after its key is saved successfully. Select the account for each chat.

If a browser sign-in doesn’t work, create a key at openrouter.ai/keys and click Paste key… on the API key row instead.

Once you’re connected:

  • Spend on this key shows what the key has spent, and its limit if you set one. Free tier means the account has bought no credits, which paid models need.
  • Models counts the models you can pick. Agent mode requires known tool support and a usable context limit; text models can be used in Ask. Unsupported attachments are refused before inference. Refresh reloads the list.
  • Default model takes a full OpenRouter id, such as anthropic/claude-sonnet-5. Leave it blank to pick a model in each chat.
  • Disconnect makes Codz forget the key. It stays active on your OpenRouter account until you delete it at openrouter.ai/keys.

Codz harness pilot opts into the managed engine on this Mac. It starts each task with an adjustable $5 cap covering inference, retries, summaries, research and optional specialists. Confirmed charges and pending reservations are shown separately. A reservation is an estimate; it cannot limit other apps using the same OpenRouter key. Budget pauses offer a higher cap, a cheaper model or Stop.

For these tasks Codz runs the agent itself. Reviewed approves edits and commands; Accept edits approves commands; Full auto requires explicit opt-in. Ask and Plan have no mutation tools. File tools are confined to the project; an approved host command can affect other parts of the Mac. Incomplete tool calls cannot execute.

After an interruption, inspect the retained operation receipt and workspace before continuing uncertain actions. A completed turn shows passed, failed, blocked and unverified checks; ending the stream does not verify the task. Handoff stops and fences the source, preserves spending and requires review in the destination. Cloud admission remains gated during the pilot.

DeepSeek

DeepSeek is a preview, and needs two things:

  1. The DeepSeek Harness JSON-RPC runtime, dsh-jsonrpc-agent, installed from the DeepSeek Harness repository. The Runtime row shows where Codz found it.
  2. An API key from platform.deepseek.com/api_keys, saved with Paste key… on the Paste key row. Codz doesn’t use a DeepSeek CLI login.

The key is handed only to the DeepSeek Harness process a chat runs, and requests are billed to your DeepSeek account. A blank Default model uses deepseek-v4-flash. DeepSeek joins Settings ▸ Default models once both parts are in place.

More than one login

Claude Code, ChatGPT, OpenCode and Cursor can each run chats on several logins, such as a work account and a personal one. Each has an accounts group, such as Claude accounts: the CLI’s own login first, then the ones you add.

  1. Click Add account… on the Add Claude account row (for Cursor, Add API key…).
  2. Give it a name for yourself, such as “Work”, and click Add.
  3. Sign in from its row. Claude Code and ChatGPT finish in your browser; for OpenCode, Sign in… runs opencode auth login in Terminal.

An added Claude Code, ChatGPT or OpenCode login lives in a folder of its own, where its chats keep their transcripts. For Claude Code and ChatGPT the folder starts with a copy of the CLI’s settings, never its login. A second Cursor login is a user API key from the Cursor dashboard, because the CLI’s browser login can’t be duplicated. Codz keeps the key in the Keychain and never shows it again.

  • Use for new chats makes a login the default for new chats; it then shows Default for new chats.
  • In a chat, the model picker shows an Account row once its provider has a second login. Each login lists its plan limit where Codz can read one, and says whether it has this chat or starts a new context, carrying the conversation over as in a handoff.
  • The model chip in the composer names the account after the effort.
  • Remove asks first. For a folder-based login you can keep its folder to sign back in later, or delete it. Chats on a removed login go back to the CLI’s own login and start a new context.

ChatGPT reports plan limits for each login. Claude Code’s plan meters describe the CLI’s own login only.

Claude API credits

Claude Max and Team plans include monthly Claude API credits; Anthropic lists the amount for each plan on its API credits page. They're paid into a Claude Console organization you link to the plan, and unused credits don't roll over. Codz runs Claude chats on them with a key from that organization:

  1. On claude.ai, open Settings ▸ Billing and link a Console organization in the API credits section. Claim credits on Codz's Use your plan’s API credits row opens that page.
  2. In the Claude Console, create an API key in that organization.
  3. In Codz, open Settings ▸ Models & providers ▸ Claude, click Add API key… on the Use your plan’s API credits row and paste the key. Codz checks it with Anthropic before keeping it.

The key becomes one of your Claude accounts, named “API credits” unless you rename it. Choose it under Account in a chat's model picker. Chats on it spend the organization's credits, then any credits bought there, and never your plan's limits. The key's ⋯ menu has Use for New Chats, Replace Key…, View Balance (the Console's billing page, which shows the balance and when the credits expire) and Remove….

  • When a chat on your plan hits a usage limit, the banner offers Use API Credits. It moves the chat to the key, carrying the conversation over, and sends the message again. Codz never moves a chat to the key by itself; to go back once your plan's limit resets, choose your plan's login under Account.
  • When the organization runs out of credits, the turn stops with “Credit balance is too low”. Add Funds opens the Console's billing page. Monthly credits come back with your plan's next billing cycle.
  • If Anthropic stops accepting the key, the banner offers Replace Key.
  • Codz keeps the key in the Keychain, hands it to Claude Code as ANTHROPIC_API_KEY and never shows it again. Chats on it keep their transcripts in a folder of their own.

The credits pay for the Claude API and the Claude Agent SDK, which is how Codz runs Claude Code. They don't pay for Claude Code in a terminal, an IDE or Claude Desktop.

When a login stops working

When Claude Code or ChatGPT can’t use its login, the turn stops and says why where it stopped, such as “Your Claude login expired. Sign in again to continue.” A banner above the composer carries the fix:

  1. Click Sign In. Codz runs the CLI’s login, and the banner asks you to finish signing in in your browser.
  2. Once you’re signed in, the banner says “You’re signed in to Claude again”. Click Try Again to resend the message that stopped.
  • When Claude Code couldn’t refresh its login because another Claude Code process was refreshing it, the banner offers Try Again instead. This usually clears within a minute.
  • When the CLI already reports that you’re signed out, the banner appears before you send, since the turn would stop at its first request.
  • With more than one login, the notice names the one that failed, such as “Claude · Work”.

Cursor and OpenCode sign-in failures, and credentials Codz doesn’t manage (Bedrock or Vertex, an ANTHROPIC_API_KEY set outside Codz, or an organization that turned off subscription access), show the provider’s own error instead, with no Sign In button. Fix those in the CLI itself.

Provider settings

Each CLI provider has a group of its own settings:

GroupSettings
ClaudeDefault model, Effort, Prompt suggestions, Safe mode, Show chats in Claude Desktop, Claude in Chrome, Bypass permissions, Compact idle threads, Auto-compact after
ChatGPTDefault model, Config profile, Reasoning effort, Ephemeral sessions
CursorDefault model
OpenCodeDefault model
  • A blank Default model leaves the choice to the CLI. Models & loadout explains how these defaults meet the loadout.
  • Safe mode turns off CLAUDE.md, skills, plugins, hooks, MCP servers and other customizations, for troubleshooting.
  • Show chats in Claude Desktop adds each Claude chat to Claude Desktop’s sidebar after its first turn. It is off by default, because Claude comes to the front when a chat is added.
  • Bypass permissions lets Claude run commands without asking. See Modes & approvals.
  • Continue in Claude (and the others) opens the provider’s own app, for the settings that live there.
  • Configuration on disk opens each CLI’s configuration folder: ~/.claude, ~/.codex, ~/Library/Application Support/Cursor/User and ~/.config/opencode.
  • New models lists newly announced Claude Code, ChatGPT and Cursor models, and whether your installed CLI lists them yet: Listed by provider, Announced, Rolling out or Update required, with a Source link.

Troubleshooting

A model in the picker is dimmed with “The claude CLI isn’t installed.” Codz can’t find that CLI. Install it (see Set up a missing provider), or check where it lives against How Codz finds a CLI.

“Codz can’t unlock the saved key on this build of the app.” Codz can no longer read the OpenRouter or DeepSeek key it saved. Click Reconnect for OpenRouter, or paste the DeepSeek key again. Nothing was sent anywhere.

The OpenRouter sign-in fails. “Codz could not open a local port to finish the sign-in” and “The sign-in timed out” both leave you disconnected; try again, or paste a key from openrouter.ai/keys.

An install or update fails. The sheet says why: the installer couldn’t be downloaded, didn’t finish, or installed a CLI that didn’t report the expected version. Your existing installation is untouched.

A ChatGPT account says Same ChatGPT login. Both ChatGPT logins are signed in to one ChatGPT account, so they share one allowance. Sign in again on that row with a different account.

A Cursor account’s API key is missing from the Keychain. The row says Key missing. Paste the key again on that account’s row.