The lead puts the team together
Ask in chat and the lead brings in helpers and whole teams on its own. Or press Create with the Assistant in the Workflow tab and design one together.
Open source · MIT · version 0.1.0
Claude, GPT, Gemini, DeepSeek, Grok, Qwen and many more live side by side here. Each project folder is a house, each agent a person in it, and workflows pass the work from one to the next: plan, build, review. What they do in the town is what they are doing on your files.
127.0.0.1
Every model, every vendor
Each person in CAST picks their own model. Bring the accounts you already have, the services you already pay for, or the models on your own machine, and they work side by side: in the same town, the same house, even the same team.
Model makers
Through services you already use
On your own machine
…and dozens more providers the CAST engine knows. Claude, GPT, Gemini and DeepSeek wear their own colours in the town; everyone else wears grey.
CAST is tested with a few models per vendor. Once an account is connected, every model the engine offers through it is listed too.
Workflows
A workflow is a team on the corkboard. Each step is a person on the model that suits it. Type the task, press Run, and the work moves from desk to desk until it is done. A review step can send it back for another pass.
An example. You choose the steps and the model for each one. When a review says revise, the work goes back to an earlier step, and every step from there runs again.
Ask in chat and the lead brings in helpers and whole teams on its own. Or press Create with the Assistant in the Workflow tab and design one together.
With Show me the plan first, a plan card shows who does what on which model and waits for Run. Prefer less asking? Pick Just go or Only when I ask.
A review step judges the work before it. Approved, the run moves on. Not yet, and the work returns to an earlier step with the reviewer's notes.
Stop run aborts it. Revert files puts the folder back to the checkpoint taken before the run. Your branches, HEAD and staged changes are never touched.
Keep this team saves a run's team as a workflow of that house. Put in the library shares it, and any other house can import its own copy.
Set a goal… in a lead's chat keeps it working turn after turn until the goal is done or its token budget runs out. Pause, resume or drop it any time.
When someone needs your OK, they raise a hand, their house lights an amber beacon, and an approval card shows up. With the card focused, A approves and D denies. Approvals wait until you answer.
How often they ask is the permission mode, chosen under the message box.
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.The map key
Your workspace is the town, and every piece of real work has a place in it you can see.
git diffInside a house
Click a house to walk in. Tool use becomes something a person does in the room, so you can tell at a glance who is reading, who is typing and who is waiting for you.
Reading files
Editing: typing at a desk
Shell commands
The web
Waiting for you
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. Every house starts with one job, Main, in room 1A. The + by the elevator adds a floor with four more rooms, up to five floors.
In a git project a new job can work in its own copy of the files (a git worktree on its own branch), so jobs don't step on each other. Bring the copy's changes into the house when you are happy with them.
Entering a house opens the chat with its lead: the Assistant, Developer, Writer or Researcher, depending on the job. Chats survive a server restart.
The Changes tab and the living-room TV show the project's git diff, side by side or line by line. Browse files opens a file viewer that also shows .html files as live, sandboxed pages.
Every house also has a real terminal docked at the bottom (Ctrl+`). It is your login shell, not an agent: nothing typed there goes to a model, and nothing is sandboxed.
No 3D required
Everything you can do in 3D can also be done from the 2D panels and the command palette. The Board lists every house instead of the 3D town: quicker on slow computers and easiest with a keyboard or screen reader. CAST remembers the choice, and a Board start never loads the 3D town. Without WebGL it still works on the Board.
Cities, phones, a Mac app
Each machine running CAST is a city with its own houses, agents and AI accounts. Pick one as your home and add the others to it from the city menu. Your browser only ever talks to the home machine, which forwards each city's pages, so phones and other devices need no extra pairing.
AI accounts are not shared: each city's agents run on that machine, with the accounts signed in there. Only add machines you control.
On phones and tablets the side panel becomes a bottom sheet. CAST installs as a PWA: its own icon and window, a badge with the number of answers you owe, and notifications when someone needs you. Notifications say only who needs you and where, never commands, code or what was asked.
Reach your machine from your phone over Tailscale (tailscale serve, tailnet only), an SSH tunnel, or your LAN, and pair each device once.
On an Apple Silicon Mac (M1 or newer, macOS 13 or newer) CAST is one download. CAST.app lives in the menu bar, starts the server for you and shows how the town is doing: a plain icon when all is quiet, a dot while people work, an orange badge with a count when someone waits for you. It carries its own Bun and CAST engine, uses the Mac's git, and updates itself from its menu.
The app is signed with a Developer ID and notarized by Apple, so it opens like any other app. The Mac app in the install guide →
Download
Free and open source. Take the download for your machine, or build it from source. On Windows, use WSL 2 with the Linux build. Run it as a normal user, never as root.
Apple Silicon (M1 or newer), macOS 13 or newer
CAST.app for the menu bar. It carries its own Bun and CAST engine.
Download .dmgCAST-0.1.0-arm64.dmg
64-bit Intel or AMD
The CAST server in one file, with the CAST engine and the web app. No Bun needed.
Download .tar.gzcast-0.1.0-linux-x64.tar.gz
Checksums and older versions are on the Releases page.
On Linux or macOS, Intel Macs included, with Bun 1.3.14 or newer and git. The CAST engine comes with CAST and builds in the same step.
git clone https://github.com/JirapatWov/cast-town cast
cd cast
bun install
bun run build
bun run start
CAST lets in only browsers paired once with a secret link. The Mac app does it for you.
Sign in with Claude, ChatGPT or Google, paste a key, or add a model server.
Click a For sale lot and pick a folder, or start from a template.
Read this before you open the door
Whoever can open your CAST can do anything your account can do on that machine: read and change files, run any command, and spend money on the AI accounts signed in there. Treat access to it like an SSH login to your account.
127.0.0.1:4860. Nothing on your network can reach it until you choose a way in.tailscale serve (never tailscale funnel) or an SSH tunnel.Young, open and in good company
Every person in the town runs on the CAST engine (cast-agent): CAST's own fork of the open-source coding agent oh-my-pi. It ships with CAST and is pinned to the release CAST is tested with, so an upstream change can't break your town. MIT-licensed, © Mario Zechner, Can Bölük, Stencil Labs, Inc. Thanks to its authors.
It is young. It is developed on Linux; macOS should work but is less tested. Windows is not supported (use WSL 2). Rendering is tuned for integrated GPUs on Medium; very old GPUs and phones need Low. Agents idle for 10 minutes are stopped (at most 10 run at once) and start again on your next message.
CAST's code is MIT-licensed. It ships work by others under their own licences: Microsoft Rocketbox avatars, Quaternius animations, Poly Haven, ambientCG and Kenney assets, Khronos sample models, EZ-Tree, three.js and more, listed in THIRD-PARTY-NOTICES.md.