Compare

Warp shares your machine's session. Coshell is one neutral session for the team.

Warp is a fast agentic terminal, and it can share a live session from a host's machine. Coshell is a different shape: a *neutral cloud session* the whole team owns and works in together, with one agent.

Host-shared session vs neutral team session

Warp is a great agentic terminalA fast, modern terminal turned agentic development environment, with strong in-terminal agents, cloud orchestration, and an open-source client. As a per-developer tool it is genuinely excellent.
Warp can share a sessionIt is not single-player only. A host can publish their session and let others view or run commands. The difference is what is shared, and where it lives.
Coshell is neutral and sharedThe session lives in a team drive in the cloud, not on anyone's machine. Everyone joins the same one and prompts one agent together.

Warp shares one developer's session, running on their machine.

Coshell puts the whole team in one neutral cloud session with one agent.

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

What Coshell adds for a team.

Not a terminal per developer, and not a session anchored to one machine. A neutral cloud session the team shares, with one agent. Every line below is running in production today.

One team-owned session, not someone's machine shared out

In Warp, a host shares their own session, running on their machine, and others operate it remotely. In Coshell the session lives in a cloud drive the team owns, so no laptop has to stay on and everyone is a first-class participant in the same running environment.

Your whole team on one drive, one price

Warp is priced per user with metered AI credits. Coshell is free to self-host, no seats: run a drive on your own machine, your whole team in your org, unmetered, and no per-seat charge.

The workspace stays warm, on any device

A drive stays warm in the cloud with your files, terminal, and an integrated browser preview, reachable from any browser or the CLI. There is nothing to install and no host session to keep alive for teammates to work.

Bring your own keys across 70+ models

Coshell runs 70+ models on your own provider keys, scoped per drive, billed by your provider. It is built on OpenCode, which, fittingly, is also one of the agent harnesses Warp can run.

Coshell vs Warp, side by side.

WarpCoshell
What it isA fast agentic terminal and dev environment, per developerA shared cloud session a whole team works in with one agent
Where the session runsOn the host's machine; cloud agents orchestrate in the backgroundIn a team-owned cloud drive: shared filesystem, terminal, browser preview
Live collaborationHost shares their session; others view or run commandsEveryone joins one neutral session and prompts one agent together
Anchored toThe host developer's machineA team-owned drive, no laptop dependency
Pricing basisPer user, plus metered AI creditsFree to self-host, no seats
Team sizePriced per userYour whole team, one drive
ModelsBring your own key; multiple agent harnessesBring your own keys, 70+ models, built on OpenCode
Where you workA terminal app on your machineAny browser, or the CLI, nothing to install
Best forA best-in-class agentic terminal per developerA team working with one agent in one shared session

Also compare

Keep your terminal. Add the shared session.

Many engineers keep a fast terminal for their own work and join a shared Coshell drive when the work is shared. Coshell runs your own repo on your own model keys, pushes to your real git, and is free to self-host, so the whole team can be in one session without a per-head bill.

Built on OpenCode

Coshell vs Warp, answered

It does, and it is good. The difference is architecture. In Warp, one person hosts their session, running on their own machine, and grants others view or edit access, so collaborators operate the host's environment remotely. In Coshell the session lives in a cloud drive the team owns, so there is no host machine to depend on, everyone is a first-class participant in the same persistent environment, and there are no seats to buy.

Yes. Many engineers keep a fast terminal like Warp for their own work and join a shared Coshell drive when the work is shared: pairing, debugging together, onboarding, live review. Coshell is built on OpenCode, which Warp can also run as an agent harness, so they sit comfortably in the same toolbox.

Warp is priced per user with metered AI credits, so cost scales with headcount and usage. Coshell is free to self-host, no seats: run a drive on your own machine, your whole team in your org, unmetered. Bring your own model keys on either, billed by your provider.

Yes. Coshell runs 70+ models on your own keys, scoped per drive, and a drive pushes to your real git as ordinary git. Self-host it on your own machine and your code never leaves it, free; the Enterprise tier adds org-wide on-prem, so your code never leaves your environment.

Get your team in the same session.

Keep your terminal for solo work. When the work is shared, open a drive and put the whole team in one neutral live session with one agent.