Connect a model
A teammate runs either on Hotline Agent, the built-in agent, with a model from a provider you connect, or on a harness such as Claude Code or Codex that brings its own sign-in. On a server, connecting providers is a one-time step you do on the server itself. Your phone can’t do it.
Every command here runs as the service account against the running desk.
hotline wire reads its parameters from standard input, never from the
command line, so a key stays out of your shell history and the process list.
Start with a variable for the account:
H="sudo -u hotline HOTLINE_DATA_DIR=/var/lib/hotline/room hotline"A provider with an API key
Section titled “A provider with an API key”List the providers and their ids:
echo '{}' | $H wire providers.listThen add a key, typing it at a hidden prompt so it doesn’t land in your history:
read -rs KEY && printf '{"providerId":"anthropic","label":"Server","secret":"%s"}' "$KEY" | $H wire credential.create; unset KEYIds include anthropic, openai, openrouter, google, xai, zai,
zai-coding-plan, groq, deepseek, mistral and ollama-cloud.
hotline status then lists the model under models.
A local model server
Section titled “A local model server”For Ollama, give its address. No key is stored:
echo '{"baseUrl":"http://127.0.0.1:11434"}' | $H wire credential.connect_localProviders that sign in
Section titled “Providers that sign in”ChatGPT, GitHub Copilot, and the sign-in forms of OpenRouter and xAI use a
browser sign-in that hotline wire can’t finish on its own yet. Use an API
key for now, or connect the provider in the desktop app and use that machine.
A harness that is already signed in
Section titled “A harness that is already signed in”A harness uses its own login, not Hotline’s, so a teammate on Claude Code
needs no provider at all if Claude Code is signed in for the hotline
account. Harnesses live under that account’s home (/var/lib/hotline),
not yours. Sign in as it, for example:
sudo -u hotline -H bash -lc 'npx -y @anthropic-ai/claude-code' # then /loginWhen you add a teammate on the phone, the harness list shows what this server can run. Choose the signed-in harness there.