Kay is a terminal coding agent built around local, scriptable, multi-provider workflows.
Its defining difference is first-class provider architecture: credentials, provider selection, and model routing are built into the product instead of being bolted on later.
It carries forward the ergonomics of the Codex CLI lineage and the multi-provider direction from Every Code, but it is its own project with its own release line, UI decisions, and isolated home directory under ~/.kay.
- The main reason Kay exists separately is that provider selection, credential management, and model routing are first-class architecture here, not add-ons.
- Codex gave this project its original CLI and agent workflow shape.
- Every Code introduced the multi-provider direction and the idea that provider/model support should be a core capability.
- Kay exists so that architecture can evolve independently without being forced into a rename-only or compatibility-only release model.
- Kay keeps the upstream lineage visible, but it is not the same project as Codex or Every Code.
- Runs as a local coding agent in your terminal.
- Coordinates multi-step tasks with Auto Drive.
- Supports browser-driven workflows through internal browser mode or CDP/Chrome.
- Provides multi-agent commands such as
/plan,/kay,/solve, and/auto. - Exposes a provider workflow for adding, updating, and removing credentials.
- Keeps its own state under
~/.kayinstead of inheriting a local Codex or Every Code environment. - Integrates with MCP tools, custom agents, and safety controls directly in the TUI.
- Records transcript JSONL so sessions remain inspectable and attributable.
Install Kay from npm:
npm install -g @alo-labs/kayThe primary command is kay. The package also installs codex and coder aliases, and installs the legacy code alias when doing so would not override another code command already on PATH.
Provider credentials you save with kay login are stored in $KAY_HOME/auth.json (defaults to ~/.kay/auth.json), so once configured they work from any directory.
GitHub Releases also provide standalone archives.
- Open the latest release: alo-labs/kay releases
- Download the asset for your platform:
- macOS arm64:
kay-aarch64-apple-darwin.tar.gzorkay-aarch64-apple-darwin.zst - macOS x64:
kay-x86_64-apple-darwin.tar.gzorkay-x86_64-apple-darwin.zst - Linux arm64 musl:
kay-aarch64-unknown-linux-musl.tar.gzorkay-aarch64-unknown-linux-musl.zst - Linux x64 musl:
kay-x86_64-unknown-linux-musl.tar.gzorkay-x86_64-unknown-linux-musl.zst - Windows x64:
kay-x86_64-pc-windows-msvc.exe.zip
- macOS arm64:
- Extract the archive and run the
kaybinary. Release assets also includecode-*compatibility archives during the migration.
Example for macOS or Linux:
tar -xzf kay-x86_64-apple-darwin.tar.gz
./kayExample for Windows PowerShell:
Expand-Archive .\kay-x86_64-pc-windows-msvc.exe.zip
.\kay.exe-
Launch Kay:
kay
-
Set up a provider from inside the TUI with
/provider.- Add the provider API key for OpenCode Go, MiniMax, or OpenAI.
- If you prefer to avoid the TUI flow, you can provide the key from the CLI instead:
kay login --provider opencode-go --api-key <KEY> kay login --provider minimax --api-key <KEY> kay login --provider openai --api-key <KEY>
If you want stdin-safe entry:
printenv OPENCODE_GO_API_KEY | kay login --provider opencode-go --with-api-key printenv MINIMAX_API_KEY | kay login --provider minimax --with-api-key printenv OPENAI_API_KEY | kay login --provider openai --with-api-key
These commands save the credentials into
$KAY_HOME/auth.jsonso Kay can reuse them the next time you launch the CLI, even from a different directory. -
Pick a model with
/model.- Kay shows the models available for the providers you have configured.
- For OpenCode Go, that is the OpenCode Go model list we already support.
- For MiniMax, that is MiniMax M2.7.
- For OpenAI, that is the upstream OpenAI model set supported by Codex.
-
Start a task:
- Type a prompt directly into the TUI, for example:
refactor this module - Or run a one-shot command with
kay exec "...". - Use
/kay,/plan,/solve, or/autowhen you want a specialized workflow.
- Type a prompt directly into the TUI, for example:
-
Review the transcript later if you need provenance or debugging context. Kay stores JSONL transcripts under
~/.kay/, and the transcript viewer makes them easy to inspect.
git clone https://github.com/alo-labs/kay.git
cd kay
# Install Rust if you do not already have it.
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh -s -- -y
source "$HOME/.cargo/env"
# Build everything the same way CI validates it.
./build-fast.sh
# Launch the TUI.
./target/debug/kay -- "explain this codebase to me"Kay currently supports these provider credentials in the UI and CLI, in this order:
- OpenCode Go
- MiniMax
- OpenAI
Manage provider credentials from the TUI with:
/providerfor provider credential CRUD/modelfor model selection from the providers you have configured/loginfor the existing account flow
You can also set a provider key directly from the CLI:
kay login --provider opencode-go --api-key <KEY>
kay login --provider minimax --api-key <KEY>
kay login --provider openai --api-key <KEY>If you prefer stdin-safe entry:
printenv OPENCODE_GO_API_KEY | kay login --provider opencode-go --with-api-key
printenv MINIMAX_API_KEY | kay login --provider minimax --with-api-key
printenv OPENAI_API_KEY | kay login --provider openai --with-api-key/autohands a task to Auto Drive for multi-step coordination./planis for collaborative planning before implementation./solveis for fast multi-agent problem solving./kayis the main coding workflow.
/chromeconnects to an external Chrome session./browseropens the internal browser experience.
/themesswitches the visual theme./reasoningadjusts reasoning effort./approvalscontrols when Kay can proceed automatically./newstarts a fresh conversation.
- Conversation history is recorded as JSONL under
~/.kay/. - The transcript viewer provides a lightweight way to inspect sessions after the fact.
- This makes it easier to debug model behavior, inspect provenance, and review what happened in a previous Kay session.
Kay is distributed under the repository license in LICENSE.
This project acknowledges and preserves the lineage of both Codex and Every Code. Any upstream code, concepts, or notices that Kay inherits remain governed by their original terms and attributions. This README is an overview of the project, not a replacement for the applicable license files or notices.
If you are redistributing or extending Kay, please review the included license files and any upstream notices before shipping changes.