HomeBlog › Rysh vs Claude Code: many agents behind one input box vs many agents in coordinated panes
Blog

Rysh vs Claude Code: many agents behind one input box vs many agents in coordinated panes

Jul 19, 20266 min readBy the Rysh team

Claude Code already runs many agents. The ceiling isn't capability — it's coordination. Here's the workspace I built on top of it.

Your coding agent already runs many agents.

Claude Code spawns subagents. So the tired line "it's just one agent" is wrong, and if you've used it past a toy task, you know it.

But watch where all that agent activity actually happens: it funnels through one terminal and one input box. Subagents report back to a single conversation. You type in one place, you read in one place. That's not a capability ceiling — the agents are real and they're good. It's a coordination ceiling. You can't watch two agents at once, can't give each its own view, can't hand the running session to a teammate, can't point one agent at the exact output another just produced without copy-pasting it yourself.

I've been building rysh around exactly that gap. Quick honesty up front, because it's the whole frame: rysh runs on Claude. I'm not claiming a smarter model. Same model, your own Anthropic key. What I'm building is the workspace around the agent — many of them, in their own panes, coordinated, and governed.

The one idea: a pane is a conversation, not a shell

tmux gives you panes that are dumb shells. Rysh gives you panes where each one is a conversation that can be a shell, an autonomous agent, a chat, or a live external channel — and they can talk to each other. Everything below falls out of that one decision.

Under the hood, every pane is an actor with its own mailbox, and panes coordinate by publishing to NATS subjects (embedded, in-process, one broker per session). "Agent A reads agent B's output" isn't a bolted-on feature — it's two actors and a subject.

Fan one task out to a team, each agent in its own pane

Write your agents as markdown skill files, then spawn the whole team at once:

##agent spawn-all ./team     # one .md per agent: reviewer.md, tests.md, docs.md

Address any of them by name, and point them at each other's work:

@reviewer look at the diff @tests just produced and check the error paths
##pane listen reviewer       # this pane now streams the reviewer's output live

With a single input box, that workflow is you, being the message bus. Here it's ##pane listen and a NATS subject.

Headless works too, which is where it earns its keep on a server:

rysh send mysession "run the smoke suite and summarize failures" --pane 3 --mode shell

Hand the live session to a teammate

This is the one a single-input CLI structurally can't do. Share a running pane — read-only or full control:

##share pane control         # or: ##share pane view

On the other side: ##upstream subscribe <shareID>. Real people and real agents pair in the same workspace, live. Shared sessions can be restricted to a command allowlist, enforced at the messaging-proxy layer — not in the UI where it'd be trivial to bypass.

The quick table

Claude Code rysh
Model Claude Claude — same model, your key
Agents Many, via subagents Many, each in its own pane
Where they report One conversation, one input box Coordinated panes with separate streams
Agent-to-agent handoff You copy-paste ##pane listen, pipeline events
Live session sharing ##share pane view|control
Beyond the terminal The repo loop Slack/email/webchat humanoids, browser agent
Secrets on the wire Provider sees what you paste ##snat swaps secrets for tokens client-side
Self-hosting Anthropic's CLI on your machine Self-hostable, your infra, your key

A footprint note, because people ask: in my own day-to-day use, rysh averaged ~49 MB per session (5 instances, 12 days) vs ~345 MB for Claude Code sessions (27 sessions, 7 days) — about 7× lighter. That's my real usage, not a benchmark. Footprint decides how many agents fit on one box, and on a server that matters.

Secrets, loops, and other surfaces — the short version

Three more things that come from being the workspace layer, not the agent:

When to pick Claude Code

Genuinely, often. If you're one developer working one repo in one terminal, Claude Code is excellent and you don't need a coordination layer — extra structure would just be ceremony. Anthropic iterates on it fast, the subagent model is strong, and the ecosystem around it (hooks, MCP, skills) is the best in class. Rysh doesn't replace any of that; it's the layer above, and honestly — the two compose. I wrote up running Claude Code inside a rysh pane separately.

Pick rysh when the one-input-box wall is the thing you keep hitting: a second agent you can watch, a session you can hand off, secrets that never touch the vendor's wire, an agent your support team can reach on a real channel.

What's not done (don't believe me if I imply otherwise)


Rysh is in private beta. Access is through the design-partner program: free access, a direct line to me, and your feedback sets the roadmap → apply here.

More in this series: Better together: running Claude Code inside a rysh pane · Every pane is a conversation

Try Rysh

Every pane is a shell and an AI agent — install takes one command.

Get started free →