CAST
Docs menu

Use CAST

Each project folder is a house, each job a room in it, and each agent a person who lives there. What a person does in the town is what the real agent is doing on your files.

For CAST 0.1.0

Your first project

  1. Connect an AI account. Until one is connected, nobody can work.
  2. Click a For sale lot in the town and pick a project folder, or create a new project from a template. New projects go to ~/CAST.
  3. Click the new house to walk in. The chat with its lead opens: say what you want done.

Getting around

In the town, drag to orbit, right-drag to pan and scroll to zoom. Click a house to walk in, and the front door to walk out.

Inside the todo-api house, seen from above: a kitchen, bookshelves, a sofa facing the TV, desks and a dining table, with people labelled Decoder, Reviewer, Developer and Implementer. On the right, the side panel with a chat with the Developer.
Reading at the bookshelf, editing at a desk, shell commands at the kitchen counter, the web on the sofa, and a raised hand when someone waits for you.

Chatting

Click a person to chat with them. Entering a house opens the chat with its lead: the Assistant, Developer, Writer or Researcher, depending on the job. You can attach images, stop a reply, and start a new chat or reopen an older one from the bar above the chat. Every chat survives a server restart, and the model remembers a chat you reopen.

Permission modes

The chip under the message box sets how often people ask before they act. Alt+M in the message box cycles the first three.

ModeWhat it does
Ask firstAsks before every edit and command.
Accept edits defaultEdits files freely, asks before commands, running code and helpers.
AutoCAST checks each step with rules and asks only about risky ones: sudo, deleting folders, git push, files outside the project, servers open to every network. A best-effort pattern check, not a sandbox: what the rules don't recognise runs without asking. What Auto checks in the menu lists the rules, and the steps Auto let through are marked Auto-approved in the chat.
BypassNever asks. Only for folders you could lose. Only from the menu, with a confirmation.

When a person waits for you, they raise a hand, the house gets an amber beacon, and an approval card shows up. With the card focused, A approves and D denies. Approvals wait until you answer.

Jobs, rooms and floors

A job is a separate line of work in the same folder, with its own people, chats and team: say, one job writes the novel and another builds a website for it. Each job has a room. Every house starts with one job, Main, in room 1A.

Teams (workflows)

A workflow is a team: each step is a different person and can be a different model, and review steps can send work back.

A finished team run in the todo-api house. The Workflow tab lists Decoder on Claude Opus 5.5, Implementer on DeepSeek V4 Pro and Reviewer on GPT-6.1 Sol, who requested changes.
A Decode → Implement → Review run on three vendors.

Each house has its own workflows

A new house has none until you or the lead make one. The lead puts a team together for each task; Keep this team on such a run saves it, and Create with the Assistant (or whoever leads the job) in the Workflow tab designs one with the lead in chat. A saved workflow belongs to the house it was made in: only that house lists it, runs it and can make it a job's team.

To share one, open it in the Workflow tab and press Put in the library (the book button by the Team heading). Every house's Workflow tab lists the Library under its own workflows, and Import copies one into that house. From then on it is that house's own: changing it there changes nothing else. Removing a house removes its workflows; the library keeps what was put in it.

Goals

Set a goal… in a lead's chat gives it an objective, and optionally a token budget. It keeps working turn after turn until the goal is done or the budget runs out. Pause, resume or drop it from the bar at the top of the chat.

Changes, files and the terminal

The terminal is not an agent: nothing typed there goes to a model, and nothing is sandboxed. Shells keep running when you hide the dock, reload the page or lose the connection; a server restart ends them. Turn it off with CAST_TERMINAL=0 (Configuration).

Settings and graphics

Keyboard

KeysWhat they do
Ctrl+K / ⌘KCommand palette
`Switch between the 3D town and the Board
?Help: the town's words and every shortcut
JSwitch jobs
PageUp PageDownSwitch floors
Alt+MCycle permission modes (in the message box)
A / DApprove or deny the focused approval card
Ctrl+`Open the terminal
DDrive a car around town

Help (?) lists every shortcut.

More than one machine

Each machine running CAST is a city with its own houses, agents and AI accounts. Pick one CAST as your home (the one your browsers are paired with) and add the others to it:

  1. Install and start CAST on the other machine, and make it reachable from the home machine: Tailscale, your LAN, or an SSH tunnel (below).
  2. On the home CAST, open the city menu (top left, before the house name) and choose Add a city….
  3. Enter the other machine's address (for example https://workstation.your-tailnet.ts.net or http://192.168.1.20:4860) and paste its pairing link or token (Pair your browser).

Switch cities from the same menu. Your browser only ever talks to the home CAST, which forwards each city's pages and connections to that machine, so phones and other devices need no extra pairing.

Phones and other devices

CAST works on phones and tablets: the side panel becomes a bottom sheet, and Help and the dialogs fit small screens. On the Board a phone gets more: a chat is a whole page, the board lists Waiting for you first, the house you are in comes first, and a job whose people answered while its chat was closed says New reply. Use Low quality on phones.

Every device must be paired once. Ways to reach CAST from another device, best first:

Once one browser is paired, pair the rest from Settings:

Never expose CAST to the public internet. Behind your own reverse proxy, add its public origin to CAST_ALLOWED_ORIGINS, or the browser's live connection is refused.

Install CAST on your phone

CAST installs as an app (a PWA): its own icon and window, no address bar, a badge with the number of answers you owe, and notifications when someone needs you. It needs a secure address: your tailscale serve address (https://…ts.net), or http://127.0.0.1:4860 on the computer running CAST. Settings → Pair a phone → Install CAST on this device shows the steps for the browser you are in.

iPhone and iPad (Safari, iOS 16.4 or later)

  1. Pair Safari as usual: scan the QR code from Settings → Pair a phone on your computer.
  2. Tap Share (□↑) → Add to Home Screen. Keep Open as Web App on.
  3. Open CAST from the Home Screen. The app keeps its own sign-in, separate from Safari: in Safari, Settings → Pair a phone → Copy a link for the app, then paste it in the app. Or type the 12-character code shown under the QR code on your computer. Either works once, within 10 minutes.
  4. In the app, Settings → Notifications & app → Turn on notifications for this device, allow them, and Send a test notification. iPhone shows notifications from web apps only once they are on the Home Screen.

Android, Windows, Linux, ChromeOS and Mac

What you get

If the installed app misbehaves, Settings → Notifications & app → Reset the app's cache (the device stays paired). In a browser, adding ?sw=off to the address does the same.