Everything works in your browser at coshell.ai and from your terminal with the CLI. Here is how to get in, what the session screen does, and the commands to go deeper.
Two ways in, and you can mix them: everything works in your browser at coshell.ai, and from your terminal with the CLI. Each step shows both.
Open coshell.ai, create an account, and name your org. The first screen asks where your first drive should run.
Install the CLI and run coshell signup. It creates the account, names the org, and enrolls this machine as your first drive in one go.
curl -fsSL https://coshell.ai/install | bash coshell signup
In the app, choose New drive, pick a machine you control or a one-click provider, and paste the two commands it shows you. The drive appears in the left column when it is online.
On any machine you want to use as a drive, run coshell host init. Name it after a project or workstream.
Click the drive, open a project folder, and start a session. You get the agent transcript on the left and the side panel on the right: Chat, Plan, Deep Review, Browser, and Review.
Attach to the same drive from your terminal. Same session, same presence, same chat.
Invite a teammate to the org. They join the drive from a browser, see the session in the list, and can prompt the same agent immediately.
Teammates can attach from their own terminals instead. Presence, chat, and follow work the same in the TUI.
Everything in the browser happens on one screen. The transcript is where the team prompts the agent; the side panel is where the team talks, plans, reviews, and looks at what the agent built.
Overview is in with the three stat cards and the recent orders table. Live on http://localhost:5173.
Cards stretch now. The grid uses align-items: stretch and each delta line is pinned to the bottom with margin-top: auto.
Added the toggle. 30 days aggregates by week and the axis relabels. 8 tests pass.
Delta sits on the top row now, right aligned, so the numbers line up down the column.
Token bucket middleware is in with 12 tests. Step 1 verified.
Moved the bucket to Redis with a Lua script so the check is atomic across replicas. 14 passing. Steps 2 and 3 verified.
Webhooks now share the limiter. 16 passing. Marking step 4 verified and moving to the flag rollout.
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?
Understood, Node 22 LTS from NodeSource.
Server is running at http://localhost:5173/, Vite dev server ready in 284ms.
Eight commits since main: the coupon model, the checkout hook, and a migration. No PR yet.
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.
Drafted docs/plans/discounts.md with five steps. It is waiting for approval in the Plan tab.
Hi. Big Pickle here, ready when you are.
2, 3, 5, 7, 11, 13, 17, 19, 23, 29.
1
2
3
4
5
6
7
8
9
10
11
12
bun test after every step, load test before the flag movesProtect /v2 from bursty API keys without slowing normal traffic. One key should never be able to starve the others.
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.
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%.
Overview is in with the three stat cards and the recent orders table. Live on http://localhost:5173.
Cards stretch now. The grid uses align-items: stretch and each delta line is pinned to the bottom with margin-top: auto.
Added the toggle. 30 days aggregates by week and the axis relabels. 8 tests pass.
Delta sits on the top row now, right aligned, so the numbers line up down the column.
Token bucket middleware is in with 12 tests. Step 1 verified.
Moved the bucket to Redis with a Lua script so the check is atomic across replicas. 14 passing. Steps 2 and 3 verified.
Webhooks now share the limiter. 16 passing. Marking step 4 verified and moving to the flag rollout.
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?
Understood, Node 22 LTS from NodeSource.
Server is running at http://localhost:5173/, Vite dev server ready in 284ms.
Eight commits since main: the coupon model, the checkout hook, and a migration. No PR yet.
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.
Drafted docs/plans/discounts.md with five steps. It is waiting for approval in the Plan tab.
Hi. Big Pickle here, ready when you are.
2, 3, 5, 7, 11, 13, 17, 19, 23, 29.
1
2
3
4
5
6
7
8
9
10
11
12
/ for commands, @ for context. Pick the model per session; admins choose which models the team can use.@ a teammate to notify them, @ a file to point at it, and @coshell to ask the assistant what the team is working on.A drive is the machine your team works on: the repo, the environment, the running app, and every session. It runs wherever you choose, binds to localhost, and connects out to coshell.ai over one authenticated tunnel. Setting one up on a laptop, a Mac mini, a VM, or a one-click provider, and keeping it running, is covered in the self-host guide.
Coshell does not fork the protocol. The OpenCode CLI you already have attaches to a drive unchanged, so you are never locked to our interface.
coshell token new my-project export OPENCODE_SERVER_PASSWORD=cosh_pat_… opencode attach https://your-drive.coshell.ai
You can also mint a per-drive token from the dashboard, under CLI access.
Prefer the terminal? Everything here is also in the browser, but these are the commands you will use most. Run any command with --help for the full options.
| coshell signup | Create an account, name your org, and enroll this machine as your first drive, in one command. |
| coshell login | Sign in. Add --web to sign in through the browser, including GitHub. |
| coshell attach <name> | Open a drive in your terminal. Run coshell with no command to pick one. |
| coshell drives | List your drives and their status. |
| coshell drives info <name> | Show a drive's details. |
| coshell host init | Enroll this machine as a self-hosted drive. Run coshell host add to enroll another one on the same machine. |
| coshell host status | Show the self-hosted drives running on this machine. |
| coshell host update | Update a drive's runtime to the latest published version and restart it. Updates every drive enrolled here when you leave the slug off. |
| coshell host unenroll <slug> | Stop a self-hosted drive, delete it on Coshell, and remove its local state. |
| coshell host doctor | Check this machine's fitness for self-hosting before you enroll it. |
| coshell run "<prompt>" | Run an agent task on a drive. Add --detach to keep it running in the background. |
| coshell runs / coshell logs <id> -f | List agent runs, or stream a run's output live. |
| coshell token new <drive> | Mint a per-drive access token for attaching the stock OpenCode CLI. |
| coshell upgrade | Update Coshell to the latest version. |
A self-hosted drive uses the machine it runs on, so there is no size to pick. See pricing: free to self-host, and Enterprise when you need SSO, an audit trail, or Coshell on your own infrastructure at scale.
Coshell runs 70+ models. Bring your own provider keys, use the included models, or, on Enterprise, route every model call through Amazon Bedrock in your own AWS account. Admins choose the allowed set of models per drive.
Work in a drive lands in your own repositories as normal git commits and pushes, so your existing branches, reviews, and CI keep working as they do today. Nothing you build is trapped in Coshell: your code stays in the git you already use.
Overlap. Everyone in a drive works on one shared filesystem, so there is no diverging copy to lose. And when two agents reach for the same lines of the same file, Overlap catches it and steers the second edit before it lands: proceed if the changes are compatible, take other lines, wait, or let the first land first. It runs across every model and fails open, so it never blocks editing.
Yes. Coshell does not fork the protocol, so the stock OpenCode CLI attaches to a drive unchanged. Mint a per-drive token with coshell token new, set OPENCODE_SERVER_PASSWORD, and run opencode attach against your drive's address.
Launch a drive in the browser, or attach from the CLI. Your whole team works in the same live session, on the same codebase.