Use case

Debug it together, in one live session.

Some bugs need more than one head. When that happens, the whole team drops into the *same running session*, shares the same terminal, logs, and localhost preview, and prompts one agent that already has the repo loaded.

One session, one agent, the whole team on the bug.

No screen-share, no copy-pasting stack traces, no re-loading context five times. Everyone works on the same running drive and prompts the same agent, and every line below is running in production today.

Everyone in the same running drive

A bug is hard to chase across five different laptops. On Coshell the whole team drops into one live session on one running drive, the same filesystem, the same processes, the same state. You are all looking at the real thing, not a copy of it.

Shared terminal and logs

The terminal is shared. When someone tails the logs or reruns the failing command, everyone sees the same output as it streams. No screen-share, no pasting stack traces into chat, no asking what someone else is seeing.

Integrated localhost browser to reproduce

Run the app and open its localhost preview right inside the session, shared with everyone and auto-reloading as the agent works. Inspect the broken element, comment on it, and send that straight to the agent so it is working from the exact thing you saw.

The agent already has the codebase

One agent reads the repo once and keeps it warm for the whole team, so nobody re-explains the codebase to a cold context just to ask their own version of the question. You all prompt the same agent, which already knows its way around the code.

Follow a teammate to the bug fast

Presence shows who is in the session. Follow a teammate to land on their exact view, and use the in-session chat overlay to point at what matters, so the person who found the bug can pull everyone else to it in a click.

Overlap detection while you dig

When two agents reach for the same lines of the same file, the overlap layer catches it and steers the second one before it clobbers the first. Several people can chase the same bug at once without losing each other's fix.

A500s on /v2/orders after deploy
Open
Who can access
Openeveryone on the drive
SharedTom, Lena
Privatejust me
500s on /v2/orders after deploy
hotfix/guest-currency TRLF
Prod is throwing 500s on /v2/orders since the 14:02 deploy. Trace: TypeError: Cannot read properties of undefined (reading 'currency') at priceOrder (src/orders/priceOrder.ts:38).Tom Reyes
Shellgit log --oneline -5 -- src/orders
ReadpriceOrder.ts
Grepcurrency

The 14:02 deploy added a currency lookup on order.customer.currency. Guest checkouts have no customer, so every guest order hits line 38. Signed-in orders are fine.

Guest orders only started using that path this morning, that’s my change. Don’t touch the guest flow, add a fallback in priceOrder.Lena Fischer
EditpriceOrder.ts /src/orders/+4−1
EditpriceOrder.test.ts /src/orders/+21−0
Shellbun test orders

Guest orders fall back to the store currency. 3 new tests cover guest, signed-in, and a customer with no currency set. 27 passing.

Ship it. I’m watching the error rate on the dashboard.Priya Nair
Shellgit commit -am 'orders: fall back to store currency for guest checkout'
Shellgit push origin hotfix/guest-currency

Pushed hotfix/guest-currency. The PR is open with the trace and the three of us on it.

Claude Sonnet 5
Model
Claude Sonnet 5
Claude Opus 5
GPT-5.5
Gemini 3.5 Pro
Muse Spark 1.3 Free
Big Pickle
ChatPlanDeep ReviewReview
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
CheckoutForm.tsxfile
priceOrder.tsfile
rateLimit.tsfile
webhooks.tsfile
dod.mdfile
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/rate-limit 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
2 Changed files+25 −1
src/orders/priceOrder.ts+4−1
36 const customer = order.customer
37- const currency = customer.currency
37+ const currency = customer?.currency ?? store.currency
38+ // guest checkout has no customer since the 14:02 deploy
39 return convert(total, currency)
src/orders/priceOrder.test.ts+21−0
58+ test('guest order uses the store currency', () => {
59+ expect(priceOrder(guestOrder).currency).toBe('USD')
60+ })
Browser or CLI, same live session.

Open the drive in any browser, or log in once from your terminal with a device code and attach to it by name. Either way you land in the same live session, with presence, follow, and an in-session chat overlay so the person who found the bug can pull everyone else onto it. Your stock OpenCode CLI attaches unchanged, and every action is attributed to a verified identity.

Debugging together, answered

Open the drive in the browser, or attach from the CLI after a device login. Everyone who joins lands in the same live session on the same running drive: the same filesystem, terminal, logs, and localhost preview. Presence shows who is in, and you can follow a teammate to land on their exact view. The stock OpenCode CLI attaches to the same drive unchanged.

Yes. You all prompt one agent on one running environment, not parallel copies. When two agents reach for the same lines, the overlap layer catches it and steers the second before it clobbers, so several people can chase the same bug at once without overwriting each other. The repo is read in once and stays warm, so the agent already has the context everyone needs.

Yes. Sessions have per-session access control: keep one private to you, share it with named teammates, or open it to the whole drive. So a sensitive incident can stay with the on-call group while routine work stays open to the team.

The next hard bug, debugged together.

Open a drive, share the link, and put your whole team in one live session with one agent that already has the repo. Reproduce it, chase it, and fix it without anyone leaving the room.