Claude Code (Claude Agent)
TatsuCode hosts Claude Code as a first-class CLI provider. If you have a Claude Pro, Max, Team, or Enterprise subscription, you can enable Claude Code inside TatsuCode and use its full agentic capabilities — without paying API token rates on top of your existing subscription.
You sign in to Claude Code through the Claude Code CLI itself, not through TatsuCode. TatsuCode only enables and drives the CLI once it's already authenticated — we deliberately stay out of the Anthropic login to respect Anthropic's terms of service.
This is the headline feature of the v0.9.107 release for Claude subscribers.
What You Get
- Use your subscription, not your wallet. Once the Claude Code CLI is signed in with the Anthropic account behind your Claude Pro / Max / Team / Enterprise plan, TatsuCode uses that subscription directly. No API key billing.
- Claude Code's native tools. Claude's own
Read,Edit,Bash,Glob,Grep,WebSearch, andWebFetch, its task list, and multi-agent workflows when you ask for one — all available in your TatsuCode session. - Plus TatsuCode's tools. Search and Find & Replace, screenshots, DevBrowser, Office documents, image generation, the game-engine plugins, the rest of the
tatsu_*tools — exposed to Claude Code via MCP. - Streaming, durable file diffs, session restore. First-class chat experience, just like API-backed providers.
- Cross-Agent Relay. Every Claude Code run is archived as
report.mdand can hand off to other agents (or future runs) viacontinueFrom. - Sessions that talk to each other. TatsuCode windows running Claude Code can message one another — and so can a
claudesession in your terminal. See Talking Between Sessions.
Set Up
Authentication happens in the Claude Code CLI itself, not in TatsuCode. To respect Anthropic's terms of service, TatsuCode never handles your Anthropic login — it only enables the already-authenticated CLI.
- Sign in to Claude Code first. If you haven't already, install the
claudeCLI and run its own login flow (claude→/login) using the Anthropic account behind your Claude Pro / Max / Team / Enterprise plan. Claude Code stores the auth token under~/.claude/. - Send one message in Claude Code directly, before using it in TatsuCode. Open a terminal, run
claude, and send a single message (e.g. "hello"). This completes any first-run setup — the trust prompt, the one-time "Bypass Permissions" acknowledgement, theme selection, and the login flow — so the CLI is fully ready. TatsuCode drives Claude Code non-interactively and can't complete these one-time browser/login steps for you. - In TatsuCode, open
/connectand select Claude Agent (Claude Code) to enable it. - The Claude Code models now appear in
/models.
The CLI owns the auth token — TatsuCode never sees, stores, or transmits your Anthropic credentials. If the CLI isn't signed in yet, enabling Claude Agent won't connect until you complete the CLI login.
If TatsuCode says "Claude Code isn't fully set up yet": it detected that the CLI isn't authenticated or still has a first-run prompt pending. Open Claude Code on its own, send a single message to clear it, then try again in TatsuCode.
Requirements
- An active Claude Pro, Max, Team, or Enterprise subscription. (Free Claude.ai accounts cannot run Claude Code.)
- A working internet connection. Like other cloud providers, Claude Code is online-only.
Two Ways to Use It
1. As your main chat model
Pick a Claude Code model from /models and chat normally. Claude Code drives the whole turn — picking which tools to call (its own and TatsuCode's), streaming output back to you, and producing a final response.
This is the simplest path and the one most users want.
2. Delegated to from another main model
When your main chat is running on a different model (say GPT-6.1 Sol or Gemini), you can still get Claude Code involved for a specific subtask — just ask the main model to delegate. The main model has a ClaudeAgent tool available and will call it on your behalf.
You don't write the tool call yourself. You ask in plain language:
"Use Claude Code to find every place the auth middleware decides whether to issue a session token. We're investigating CVE-2026-0001 — see /docs/incident.md."
"Delegate steps 1 through 5 to Claude Agent, get a full report back, then review its work."
"Have Claude Code continue from the previous exploration and propose a fix."
The main model picks up the request, packages it as a delegation, and runs Claude Code in the background. When Claude Code finishes, the main model receives a structured report.md and folds the findings back into your conversation. You can hand that same report.md to another agent later — that's the relay.
The same pattern applies in reverse: when Claude Code is your main chat, you can ask it to delegate to GPT, Gemini, or any other CLI provider you have connected.
Turning delegation off
If you want Claude Code only as a main model, and never called by your other models, open /connect → Claude Code → Manage and set Delegation to Off. OpenAI, OpenRouter, Gemini and local models then no longer get the ClaudeAgent tool, in every window and session. Claude Code stays connected, and you can still switch to a Claude Code model in /models whenever you like. The change applies from the next message; set it back to On to allow delegation again.
Models
Every Claude Code model comes in two forms:
- Pinned (for example Claude Code: Sonnet 5.5) always runs that exact version.
- Following (for example Claude Code: Sonnet) runs whatever your subscription treats as the current model of that family, so it moves up when Anthropic releases a new one.
Sonnet 5.5 needs Claude CLI v2.1.284 or later, and Haiku 5.5 needs v2.1.293 or later. If either fails to start, run claude update in a terminal (or use Update CLI in /connect → Claude Code). The full lineup is on Models.
Seeing Claude Code at Work
The task checklist
When Claude Code plans work with its own task tools, you see one checklist card (done, in progress, and up next, with a progress bar) instead of a card for every task update. If you switch to another model mid-plan, the new model continues the open steps, and the other way round. See Task Checklist.
The agents panel
When Claude Code runs a workflow (several helper agents working in parallel, which you can ask for: "use a workflow to review these changes"), a panel above the message box shows them live: one group per run, a workflow's phases in its header, and a row per agent with what it's doing right now, then a check mark with its tool count and tokens when it's done. The chat no longer looks frozen while agents work, and you can keep typing.
Finished groups move into the chat as a card and are saved with the session, so a reopened session shows them where they ran. A group that finishes between your messages waits in the panel and moves into the chat with your next turn. Claude Agent runs delegated from another main model keep their own progress block in the chat.
Search and Find & Replace
Claude Code uses its own Grep and Glob inside the project, and TatsuCode's Search for everything beyond it: other folders, every drive, and searches by size or date. For changes across many files it has Find & Replace, with a preview of every edit and one-step undo. If it reaches for a shell search or a scripted rewrite instead, TatsuCode reminds it of these tools. News about a background search reaches it between tool calls.
Messages you type while it works
A message you send while Claude Code is working is queued, and Claude Code is reminded between its tool calls (its own built-in ones included) to read it at the next safe break. See Queued Messages.
Claude Code can also start work on its own, for example when a scheduled wake-up fires or a background task finishes. A message you send meanwhile is queued like any other; one that was already on its way when Claude Code started waits for it to finish, then goes through, instead of failing.
When the connection drops
Claude Code retries a failed request itself, but when a reply breaks off midway (a dropped connection, an overloaded or failing server) it stops and waits for you. TatsuCode picks the task back up on its own: an Auto-retry · API error notice appears in the chat, and the retry runs after 15 seconds, then 1 minute, then 5 minutes, up to three in a row. The agent checks any half-finished edit or command before redoing it. Sending your own message cancels a pending retry. Usage limits, sign-in and billing errors aren't retried, since retrying can't fix them.
What's Different from API-Key Claude
| Concern | Claude via API/OpenRouter | Claude Code (CLI provider) |
|---|---|---|
| Auth | TatsuCode holds API key | CLI owns subscription auth |
| Tool loop | TatsuCode drives | Claude Code drives |
| Tool surface | TatsuCode-internal tools | Claude Code's native tools + TatsuCode MCP tools |
| Cost reporting | Exact per-call dollars | Best-effort (subscription = no per-call cost) |
| Cross-Agent Relay archive | ❌ | ✅ — every run archived |
| Use as Task Agent assignee | ✅ | ❌ — see below |
Background Shells
When Claude Code launches a long-running shell command in the background (e.g., a ping, a build watcher, a dev server), TatsuCode tracks it across turn boundaries. While the shell is alive you'll see a small terminal badge near the input field showing how many background shells are running, with a tooltip listing each one and how long it's been alive.
If a turn ends with shells still running, the badge stays visible with a quiet "reply to follow up" hint. That tells you the input is live and a reply will route back into the same Claude session — so you can ask "is the build done?" or "kill that ping" and Claude addresses the same shell handle. The badge clears automatically when Claude reports the shell has terminated.
This is built on Claude Code's own background-shell tools — TatsuCode just makes them visible across the gap between turns.
Talking Between Sessions
When Claude Code is your main model, each TatsuCode window runs its own Claude Code session — and those sessions can talk to each other using Claude Code's built-in cross-session tools (ListAgents / SendMessage). Ask one window to "send the other session a summary of what you changed" and it does, without you copying anything between chats.
How it shows up in the chat
- Outgoing — a collapsible Send Message card whose header reads
sent → <session> · <first line>. Click it to read the full message. A failed delivery is tinted as an error. - Incoming — a distinct Message from <session> block, so a peer's message never looks like something you typed. Long messages clamp to a few lines behind Show more; the one-shot "is idle" notices start collapsed.
- List Agents — the card reports how many peer sessions it found.
If the receiving window is idle, the message wakes its Claude session and it acts on it on its own. If the window is mid-turn, the message is handed to the running turn instead.
Your session's address
The footer shows this window's Claude session name — the address other sessions use to reach it — and the window title carries it too, so two windows on the same project are easy to tell apart. Click the badge to copy the name. It's built from the project name plus the session's custom name (or its short id when it has none), so the same session keeps the same address across relaunches. Rename the session and the address updates on your next message.
Works with terminal Claude Code too
This isn't limited to TatsuCode windows. Any Claude Code session on the machine — including a plain claude session in your terminal — sees active TatsuCode agents in ListAgents under their readable names and can message them directly, and they can message it back. A prompt as simple as:
List agents, then send tatsucode-core-a1b2c3d4 a message asking it to run the test suite and report back.
is enough. Two things to know:
- Same machine, same user profile. This uses Claude Code's local session registry, not the network.
- The TatsuCode session must be live. Claude Code starts on the first message of a session, so a freshly opened window has no address until you've sent something.
Reaching windows on other providers
Native session messaging only reaches other Claude Code sessions. To message a TatsuCode window running Gemini, an OpenRouter model, Azure, or a local model, Claude Code uses TatsuCode's own Cross-Talk bus, which it sees as the tatsu_peers tool with the same list, send, status, and whoami actions every other provider has. Ask for "the other TatsuCode windows" and it picks the right channel; the incoming and outgoing cards look the same either way. See Cross-Talk.
Limitations
- Cannot be assigned as a Task Agent. Same reason as every other CLI provider — the Task Agent's tool whitelist doesn't apply when the CLI drives its own loop. Use the
ClaudeAgenttool instead for delegated exploration. See CLI vs API/Subscription Providers for the structural reasons. - Cannot run in parallel today. Single CLI run at a time. Parallel CLI execution is on the roadmap.
- Token / cost accounting is best-effort. Subscription auth means per-call cost isn't reported, so
/usagefor CLI turns shows estimates only. - TatsuCode's auto-compact doesn't apply. Claude Code manages its own context window and compacts its conversation by itself when it fills up. Compact Now tells you so instead of sending a command Claude Code would ignore.
- TatsuCode's undo history doesn't cover Claude's own edits. Changes made with Claude Code's built-in
EditandWritetools aren't in File History; its Find & Replace batches are. Use git, or ask Claude to put the text back.
Known Issues
- In-app "Update CLI" can time out on managed / enterprise Windows networks. The Update CLI button (
/connect → Claude Code) runsclaude updatein the background, which self-downloads and replaces the CLI binary. On corporate networks the background process doesn't inherit your terminal's proxy / TLS-interception certificate settings, so the download stalls and the update eventually times out — even though the sameclaude updateworks fine in a terminal on the same machine (the terminal has that network setup). Workaround: runclaude updatein a terminal, then click Refresh in the modal — TatsuCode picks up the new version with no app restart. (A proper in-app fix is being investigated.)
FAQ
Do I still need an Anthropic API key?
No. If your goal is to use Claude inside TatsuCode and you have a Claude subscription, sign in to the Claude Code CLI, enable Claude Agent in TatsuCode, and you're done.
Will my Claude Pro quota apply?
Yes. The CLI uses your subscription's quota directly. Heavy use will count against your plan's limits the same way it would inside Anthropic's own clients. You can check how much of your subscription quota is left from inside TatsuCode with /usage-quota.
Can I switch back to API-backed Claude mid-conversation?
Yes — switch the active model from /models. With Cross-Agent Relay, you can also hand off the conversation context cleanly.
What about Claude Free?
Claude Code requires an active paid subscription. Free Claude.ai accounts can't run it.
TatsuCode says Claude Code "isn't fully set up yet" — what do I do?
That message means the CLI isn't authenticated yet, or a first-run prompt (folder-trust, the one-time bypass-permissions acknowledgement, theme, or login) is still blocking it. Open a terminal, run claude, and send a single message to clear it. Once Claude Code replies on its own, it's ready — switch back to TatsuCode and try again.
Next Steps
- CLI Providers Overview — how CLI providers work, Cross-Agent Relay, stdin routing
- Providers — connect, disconnect, manage
- CLI vs API/Subscription Providers — full feature matrix