Compare

Claude Code made one person faster. Coshell makes the whole team work with the agent together.

Claude Code and Codex made each engineer faster, in their own session. Coshell is the layer that puts the whole team and the agent in one shared, live session, across more than 70 models.

Coshell is not a better single-player agent than Claude Code.

It works with it, and across more than 70 other models, to make the whole team work with the agent together.

Claude Code is an excellent agent for one person in one session. The moment a team works on the same codebase, that single-player model creates friction: duplicated context, work done in isolation nobody else can see, and no shared way of operating. Coshell does not replace the agent. It is the collaboration layer those tools do not have.

AOrders dashboard for acme-webARate limiter rolloutADev server on the VMDProject pending statusOCount to 120
Open
Who can access
Openeveryone on the drive
SharedTom, Lena
Privatejust me
Orders dashboard for acme-web
feat/orders TRLF
Add the orders overview to the dashboard: revenue today, order count, and average order value, then the recent orders table.Priya Nair
Explored4 reads
EditOrdersDashboard.jsx /src/pages/+77−0
Editindex.css /src/+33−0

Overview is in with the three stat cards and the recent orders table. Live on http://localhost:5173.

2 Changed files+110 −0
src/pages/OrdersDashboard.jsx+77−0
src/index.css+33−0
Can the stat cards stretch to equal height? The average order card is shorter than the others.Lena Fischer
Editindex.css /src/+4−1

Cards stretch now. The grid uses align-items: stretch and each delta line is pinned to the bottom with margin-top: auto.

Add a 7 day / 30 day toggle above the chart. Default to 7 days.Tom Reyes
EditOrdersDashboard.jsx /src/pages/+31−4
Shellbun test

Added the toggle. 30 days aggregates by week and the axis relabels. 8 tests pass.

Move the delta onto the card’s top row, right aligned against the label.Priya Nair
Editindex.css /src/+6−2

Delta sits on the top row now, right aligned, so the numbers line up down the column.

Use var(--brand) for the Export button, not a hardcoded hex.Tom Reyes
EditOrdersDashboard.jsx /src/pages/+1−1
1 prompt queuedClear queue
Lena FischerMake the Refunded pill amber. Red reads like an error.
Claude Sonnet 5
Model
Claude Sonnet 5
Claude Opus 5
GPT-5.5
Gemini 3.5 Pro
Muse Spark 1.3 Free
Big Pickle
Rate limiter rollout
feat/rate-limit TR
Start the rate limiter plan. Token bucket per API key, 100 a minute.Priya Nair
Explored6 reads
EditrateLimit.ts /src/middleware/+64−0
Shellbun test

Token bucket middleware is in with 12 tests. Step 1 verified.

Keep the bucket in Redis, we run three replicas.Tom Reyes
EditrateLimit.ts /src/middleware/+22−9

Moved the bucket to Redis with a Lua script so the check is atomic across replicas. 14 passing. Steps 2 and 3 verified.

Execute step 4. Start with the webhooks route, I already reviewed the limiter.Lena Fischer
ReadrateLimit.ts
Editwebhooks.ts /src/routes/+14−2
Shellbun test

Webhooks now share the limiter. 16 passing. Marking step 4 verified and moving to the flag rollout.

Thinking
Claude Sonnet 5
Model
Claude Sonnet 5
Claude Opus 5
GPT-5.5
Gemini 3.5 Pro
Muse Spark 1.3 Free
Big Pickle
Dev server on the VM
main TRLF
Start the dev server on this VM so the team can preview the orders dashboard.Priya Nair
Shellwhich node npm bun

Node.js isn’t installed on this VM, so I can’t start the dev server yet. I can install it with the system package manager and then run it. Want me to?

Yes, but use the LTS build, the API image pins Node 22.Lena Fischer

Understood, Node 22 LTS from NodeSource.

go ahead and install it and get the server started.Tom Reyes
Shellcat /etc/os-release 2>/dev/null | head -5; which apt-get
Shellsudo apt-get update -qq && sudo apt-get install -y -qq nodejs npm
Shellnode --version && npm --version
Shellnpm install
Shellnpm run dev &

Server is running at http://localhost:5173/, Vite dev server ready in 284ms.

Big Pickle
Model
Claude Sonnet 5
Claude Opus 5
GPT-5.5
Gemini 3.5 Pro
Muse Spark 1.3 Free
Big Pickle
Project pending status
feature/discounts LFTR
What is the status of the discounts branch?Tom Reyes
Shellgit log --oneline feature/discounts -8

Eight commits since main: the coupon model, the checkout hook, and a migration. No PR yet.

Do we have a written plan for the discounts work?Priya Nair

No. You have no PLAN, TODO, or roadmap file.

Your closest thing to a plan is .coshell/review/dod.md: integer cents, handled promises, no focused tests, no dead exports.

Draft one from the commits and the dod file, then open it in the Plan tab.Lena Fischer
Readdod.md
Editdiscounts.md /docs/plans/+48−0

Drafted docs/plans/discounts.md with five steps. It is waiting for approval in the Plan tab.

Muse Spark 1.3 Free
Model
Claude Sonnet 5
Claude Opus 5
GPT-5.5
Gemini 3.5 Pro
Muse Spark 1.3 Free
Big Pickle
Count to 120
main LFTR
Quick sanity check on Big Pickle before we let it near the repo. Say hi.Tom Reyes

Hi. Big Pickle here, ready when you are.

Without using any tools, list the first ten primes.Priya Nair

2, 3, 5, 7, 11, 13, 17, 19, 23, 29.

Without using any tools, count from 1 to 120, one number per line, then stop.Lena Fischer

1
2
3
4
5
6
7
8
9
10
11
12

Thinking
Big Pickle
Model
Claude Sonnet 5
Claude Opus 5
GPT-5.5
Gemini 3.5 Pro
Muse Spark 1.3 Free
Big Pickle
Chat2PlanDeep ReviewBrowserReview
Morning. Plan is approved, I’m starting the orders dashboard on acme-web.8:52
TR
Tom Reyes8:55I’ll take the limiter then. Which drive?
office-mac-mini has Redis running, use that one.8:55
LF
Lena Fischer9:10Back online. Anything blocked?
TR
Tom Reyes9:11Nope. OrdersDashboard.jsx is Priya’s, limiter is mine, webhooks are free if you want them
LF
Lena Fischer9:12Taking webhooks.
Lena the Refunded pill should be amber, not red. I queued a prompt for it9:30
TR
Tom Reyes9:41Picking up rateLimit.ts for the webhooks route
LF
Lena Fischer9:42Tom I already touched the 429 path there, check the overlap note before you push
Step 4 in the plan is mine, I’ll ping when the tests are green
Sounds good. I’ll review after, then we roll the flag.9:44
Mention
CScoshellassistant
TRTom Reyeson the drive
LFLena Fischeron the drive
OrdersDashboard.jsxfile
index.cssfile
rateLimit.tsfile
webhooks.tsfile
App.jsxfile
Rate limiter rolloutDetailsWorking
Spec approvedPlan approvedExecuting 3/5

Goal

Protect /v2 from bursty API keys without slowing normal traffic. One key should never be able to starve the others.

Approach

A token bucket per API key, 100 requests per minute, stored in Redis so all three replicas share state. Over-limit requests get a 429 with a Retry-After header. Ship behind the rate_limit_v2 flag and roll out gradually.

Constraints

  • No new dependencies beyond ioredis, which we already run.
  • p99 latency budget: +2 ms on the hot path.
  • Existing tests stay green at every step.

Verification

bun test after every step. Load test with 1k keys before the flag moves to 50%. Watch 429 rate and p99 in the dashboard for a day at 10%.

Steps
Token bucket middleware with testsVerified
Add
Redis-backed bucket, atomic across replicasVerified
Add
Retry-After header on 429 responsesVerified
Add
Apply the limiter to /v2/webhooksLena, in progress
Add
Roll out behind the rate_limit_v2 flagWaiting
Add
on step 5, Roll out behind the flag
PN
Priya Nair2m
Roll out to 10% of keys first, then 50%. Add both as substeps.
LF
Lena Fischernow
Agreed, updating the step before the agent gets there.
Deep Review
feat/orders against main
Run review
No review yet. Run one when the branch is ready.
HighExport button colour is hardcodedOrdersDashboard.jsx:41
The Export button sets #5B4CF0 inline while every other control reads var(--brand). Tom’s follow-up prompt fixes it; verify once that edit lands.
Send fix to agentDismiss
MediumNothing tests the stat cardsOrdersDashboard.jsx
No test asserts that the three stat cards render or that a delta shows its direction. A render test with the card labels would catch a regression.
Send fix to agentDismiss
LowUnused importApp.jsx:3
useMemo is imported and never used.
Send fix to agentDismiss
Port 5173
Dev servers on this drive
Port 5173vite
Port 3000next
Port 8080api
Port...ShareInspect
acme
DashboardOrdersCustomersSettings
Orders
Last 7 days · updated just now
FilterExport
Revenue today$18,420+12% vs last week
Orders342+8%
Average order$53.86−3%
Revenue, last 7 days7 days30 days
MonTueWedThuFriSatSun
OrderCustomerStatusTotal
#10428Maya Osei$128.40
#10427Theo LindqvistRefunded$64.00
#10426Ada Mensah$212.75
#10425Ravi ShankarPending$39.90
Tom
3 Changed files+112 −3
src/pages/OrdersDashboard.jsx+77−0
38 <div className="toolbar">
39+ <button className="btn">Filter</button>
40+ <button className="btn primary" style={{ background: '#5B4CF0' }}>
41+ Export
42 </div>
src/index.css+33−0
112+ .stat { border: 1px solid #e6e6e6; border-radius: 10px; }
113+ .stat .delta.up { color: var(--ok); }
114+ .status.refunded { background: var(--danger-bg); }
src/App.jsx+2−3
3- import { useMemo, useState } from 'react'
3+ import { useState } from 'react'
18- <Summary />
18+ <Summary />
19+ <OrdersDashboard />
Orders dashboard for acme-web
acme-vm
feat/orders
Add the orders overview to the dashboard: revenue today, order count, and average order value, then the recent orders table.Priya Nair
Explored4 reads
EditOrdersDashboard.jsx /src/pages/+77−0
Editindex.css /src/+33−0

Overview is in with the three stat cards and the recent orders table. Live on http://localhost:5173.

2 Changed files+110 −0
src/pages/OrdersDashboard.jsx+77−0
src/index.css+33−0
Can the stat cards stretch to equal height? The average order card is shorter than the others.Lena Fischer
Editindex.css /src/+4−1

Cards stretch now. The grid uses align-items: stretch and each delta line is pinned to the bottom with margin-top: auto.

Add a 7 day / 30 day toggle above the chart. Default to 7 days.Tom Reyes
EditOrdersDashboard.jsx /src/pages/+31−4
Shellbun test

Added the toggle. 30 days aggregates by week and the axis relabels. 8 tests pass.

Move the delta onto the card’s top row, right aligned against the label.Priya Nair
Editindex.css /src/+6−2

Delta sits on the top row now, right aligned, so the numbers line up down the column.

Use var(--brand) for the Export button, not a hardcoded hex.Tom Reyes
EditOrdersDashboard.jsx /src/pages/+1−1
Claude Sonnet 5
ChatPlanReviewDeep reviewBrowserTerminal
Rate limiter rollout
office-mac-mini
feat/rate-limit
Start the rate limiter plan. Token bucket per API key, 100 a minute.Priya Nair
Explored6 reads
EditrateLimit.ts /src/middleware/+64−0
Shellbun test

Token bucket middleware is in with 12 tests. Step 1 verified.

Keep the bucket in Redis, we run three replicas.Tom Reyes
EditrateLimit.ts /src/middleware/+22−9

Moved the bucket to Redis with a Lua script so the check is atomic across replicas. 14 passing. Steps 2 and 3 verified.

Execute step 4. Start with the webhooks route, I already reviewed the limiter.Lena Fischer
ReadrateLimit.ts
Editwebhooks.ts /src/routes/+14−2
Shellbun test

Webhooks now share the limiter. 16 passing. Marking step 4 verified and moving to the flag rollout.

Thinking
Claude Sonnet 5
ChatPlanReviewDeep reviewTerminal
Dev server on the VM
acme-vm
main
Start the dev server on this VM so the team can preview the orders dashboard.Priya Nair
Shellwhich node npm bun

Node.js isn’t installed on this VM, so I can’t start the dev server yet. I can install it with the system package manager and then run it. Want me to?

Yes, but use the LTS build, the API image pins Node 22.Lena Fischer

Understood, Node 22 LTS from NodeSource.

go ahead and install it and get the server started.Tom Reyes
Shellcat /etc/os-release 2>/dev/null | head -5; which apt-get
Shellsudo apt-get update -qq && sudo apt-get install -y -qq nodejs npm
Shellnode --version && npm --version
Shellnpm install
Shellnpm run dev &

Server is running at http://localhost:5173/, Vite dev server ready in 284ms.

Big Pickle
ChatPlanReviewDeep reviewBrowserTerminal
Project pending status
office-mac-mini
feature/discounts
What is the status of the discounts branch?Tom Reyes
Shellgit log --oneline feature/discounts -8

Eight commits since main: the coupon model, the checkout hook, and a migration. No PR yet.

Do we have a written plan for the discounts work?Priya Nair

No. You have no PLAN, TODO, or roadmap file.

Your closest thing to a plan is .coshell/review/dod.md: integer cents, handled promises, no focused tests, no dead exports.

Draft one from the commits and the dod file, then open it in the Plan tab.Lena Fischer
Readdod.md
Editdiscounts.md /docs/plans/+48−0

Drafted docs/plans/discounts.md with five steps. It is waiting for approval in the Plan tab.

Muse Spark 1.3 Free
ChatPlanReviewDeep reviewTerminal
Count to 120
acme-vm
main
Quick sanity check on Big Pickle before we let it near the repo. Say hi.Tom Reyes

Hi. Big Pickle here, ready when you are.

Without using any tools, list the first ten primes.Priya Nair

2, 3, 5, 7, 11, 13, 17, 19, 23, 29.

Without using any tools, count from 1 to 120, one number per line, then stop.Lena Fischer

1
2
3
4
5
6
7
8
9
10
11
12

Thinking
Big Pickle
ChatPlanReviewDeep reviewTerminal

Single-player versus multiplayer

One shared sessionSeveral people prompt the same live agent at once, not one private session each. See how multiplayer works.
Overlap, caughtWhen two agents reach for the same lines, an overlap layer catches it and steers the second agent before it clobbers the first.
Load the codebase onceA shared, warm session ingests context once for the team, not once per developer, over and over.

The comparison is not agent vs agent. It is single-player vs multiplayer.

Claude CodeCoshell
What it isA single-player AI coding agent for one engineer in one sessionA multiplayer cloud session where a whole team prompts one live agent together
Session modelOne private session per personOne shared live session several people work in at once
Real-time multiplayer presenceSessions are individual✓ See who is in the session, follow along, prompt the same agent
Overlap detectionParallel work diverges and is merged later in git✓ Catches overlapping edits before they clobber
Load the codebase onceEach session reloads context; every developer pays to load it again✓ A shared warm session loads context once and keeps it cached
Per-session privacy✓ Private to you, shared with teammates, or open to the drive
ModelsAnthropic models70+ models across providers, on your own keys
Works fromLocal terminalBrowser, CLI, or phone. The session lives in the cloud
Pushes to real git
Best forOne engineer moving fast in their own sessionA team that wants to work with the agent together on one codebase

Also compare

Built on OpenCode

Coshell vs Claude Code, answered

Coshell works with those agents rather than replacing them, and across more than 70 models. The single-player tools made each individual faster while leaving the team's coordination worse. Coshell is the layer that makes the team work with the agent together, through shared live sessions, overlap handling when code is written, shared context, and a standardized environment. It is the collaboration layer those tools do not have.

Those features run several agents, or give each teammate their own session. Coshell is the opposite shape: several people in one shared live session, prompting the same agent on the same running environment, with an overlap layer when code is written. It is humans collaborating with one agent, not many agents working alone. Read why multiplayer is the axis.

The core of Coshell is a coordination layer that works across agents and across vendors, including different model providers in the same session. A model provider is structurally disincentivized to build that, because it requires being model-agnostic, which works against their own model. Their job is to make their agent better on its own. The neutral layer that lets any agent coordinate with any other is something only a party that does not own a model is positioned to build, and it compounds on coordination data over time.

Usually less. A shared, long-running session ingests your codebase context once and keeps it warm, where a team in separate sessions each pay to load that same context over and over. Cached context is read at a fraction of the price of fresh input, so you pay to load the codebase once for the team rather than once per developer. Coshell is free to self-host and covers your whole team, so adding people is not penalized.

Get your team in the same session.

Open a drive in the browser, or attach from the CLI. Your whole team works in shared live sessions with the agent, on the same codebase. Need your own infrastructure? Coshell runs on yours on the Enterprise tier.