Connect an AI account
The people in the town are AI agents. Until CAST can reach a model through an AI account, nobody can read, write or run anything.
For CAST 0.1.0
Until you connect one, the top bar shows an amber Connect AI button, people wear a not connected chip and their chat box stays locked. You can still place projects, add jobs and pick each person's model meanwhile. They start working once their model's account is connected.
While CAST checks your accounts the button says Checking…, which can take a minute. If the check fails it says Check failed and CAST tries again by itself. If the CAST engine isn't built yet (source install), it says No agent: run bun run build in the CAST folder.
Sign in
Open Models & providers: the Connect AI button in the top bar (it shows how many providers are live once one is connected), or the Talent Agency building in the town. Press Sign in on a vendor's card.
- Claude Pro/Max: sign in on the page that opens, then copy the code Claude shows and paste it into CAST. The whole address of that page works too. Your browser never has to reach the CAST machine.
- Other browser sign-ins (ChatGPT, Google): the sign-in ends on a
http://localhost:…page, which doesn't load when your browser isn't on the CAST machine. Copy that page's address from the address bar and paste it into CAST. - A sign-in shows how much time is left and gives up after 15 minutes ("This sign-in timed out — start again").
You can also sign in from a terminal on the CAST machine, then press Refresh in Models & providers. Use agent/bin/cast-agent in a source install, or the cast-agent next to cast-server in the Linux build:
cast-agent login anthropic # Claude Pro/Max
cast-agent login openai-codex # ChatGPT Plus/Pro
cast-agent login google-gemini-cli # Google account
cast-agent login openrouter # OpenRouter
Claude, GPT, Gemini, DeepSeek and OpenRouter
These five have a card of their own in Models & providers. Claude, GPT, Gemini and DeepSeek also wear their own colour in the town.
| Vendor | Sign in with an account | Or an API key |
|---|---|---|
| Anthropic | Claude Pro/Max | Paste API key on the card, or ANTHROPIC_API_KEY |
| OpenAI | ChatGPT Plus/Pro | Paste API key on the card, or OPENAI_API_KEY |
| Google Gemini | Google account | Paste API key on the card, or GEMINI_API_KEY |
| DeepSeek | – | DEEPSEEK_API_KEY |
| OpenRouter | OpenRouter account | OPENROUTER_API_KEY |
API keys
- Paste API key (Anthropic, OpenAI, Google) checks the key with its vendor once and keeps it in
<data folder>/config.json, readable only by you. The CAST engine gets it from there, without a restart. The browser never sees it again, and Remove on the card deletes it. - A key in CAST's environment wins over a pasted one. Export it before you start CAST (
bun run startor./cast-server). A key exported later needs a CAST restart. The Mac app starts its server with an environment of its own, so on a Mac paste keys on the card instead. - With a Claude sign-in as well as a key, the engine uses the sign-in first.
Every other provider
Grok, Mistral, Kimi, GLM, GitHub Copilot, Amazon Bedrock and dozens more can be connected too. CAST is tested with Claude, GPT, Gemini and DeepSeek; people on other providers' models wear grey in the town.
- Connect another account in Models & providers lists every sign-in the CAST engine offers, searchable and grouped, the connected ones first. Connect runs the same sign-in as
cast-agent login. - Every other provider you are signed in to (GitHub Copilot, Cursor, Cerebras, …) gets a card of its own, with its accounts and models.
- Providers with an API key: export the key before you start CAST, then press Refresh. Some common ones:
| Provider | Environment variable |
|---|---|
| xAI (Grok) | XAI_API_KEY |
| Mistral | MISTRAL_API_KEY |
| Moonshot (Kimi) | MOONSHOT_API_KEY or KIMI_API_KEY |
| Z.ai (GLM) | ZAI_API_KEY |
| MiniMax | MINIMAX_API_KEY |
| Groq | GROQ_API_KEY |
| Cerebras | CEREBRAS_API_KEY |
| Together AI | TOGETHER_API_KEY |
| Fireworks | FIREWORKS_API_KEY |
| Hugging Face | HF_TOKEN |
| NVIDIA | NVIDIA_API_KEY |
The full list is in the CAST engine's own docs, agent/docs/providers.md.
Model servers on your network
Run models yourself with llama.cpp, Ollama, LM Studio or any OpenAI-compatible server.
- On another machine of your LAN or tailnet: use the Model servers on your network card. Give it a name, the kind and the address (for example
http://192.168.1.20:8080), plus a key if the server has one. Test connection lists the models it finds, and Save adds them as<name>/<model>to every model picker. - The other machine's server must listen on the network:
llama-server --host 0.0.0.0,OLLAMA_HOST=0.0.0.0for Ollama, or LM Studio's Serve on Local Network. - On this machine: use the llama.cpp, Ollama or LM Studio entry under Connect another account. Those entries reach this machine only.
- CAST writes model servers into the engine's
models.yml(in~/.omp/agent). Rewriting it drops comments there.
Small local models often get tool calls wrong. The CAST engine works best with a model trained for tool use and 32k or more of context.
Google accounts
- Some Google accounts (Workspace, paid tiers) need a Google Cloud project to sign in. When Sign in with Google says so, enter the project's ID in the field that appears. The project needs the Gemini for Google Cloud API turned on, and work accounts a Gemini Code Assist licence; see Google's setup guide. CAST saves it as
GOOGLE_CLOUD_PROJECTinconfig.jsonand signs in again. Change it later on the Google card. - Sign in with Antigravity is unofficial: Google may suspend accounts that use Antigravity sign-in from tools other than Google's own. Prefer the API key.
Picking models
- Pick each person's model on their card in the Workflow tab, or with the model chip in the chat.
- Before you connect, each vendor lists the few models CAST is tested with. Once an account is connected, every model the CAST engine offers through it is listed too.
- CAST never swaps a person's model for another vendor's behind your back. The one exception: a job made before any account was connected starts on Claude Opus as a stand-in, and moves to a model you connect (Opus if connected, else GPT-6.1 Sol, Gemini, DeepSeek, Sonnet) once you do. A model you picked yourself never changes, and a working job switches when it stops.
- Sign-ins are stored by the CAST engine in
~/.omp/agent, not by CAST. Each machine keeps its own.