Install
macOS (Apple Silicon and Intel) and Linux (x64 and arm64):
curl -fsSL https://ablit.app/install | bash
Windows 10/11 (x64, PowerShell):
irm https://ablit.app/install.ps1 | iex
The installer detects your system, downloads the matching build, verifies its SHA-256 checksum against the published SHA256SUMS, installs it into ~/.ablit-code/bin (%USERPROFILE%\.ablit-code\bin on Windows) and adds that directory to your PATH. The command is ablit (ablit-code is the same program, for scripts that prefer the full name). The terminal you installed from does not see the new PATH yet: run export PATH=$HOME/.ablit-code/bin:$PATH there once, or open a new terminal. A specific version: curl -fsSL https://ablit.app/install | bash -s -- --version 2.3.2, or $env:ABLIT_CODE_VERSION = "2.3.2" before the PowerShell command.
Requirements: 64-bit Linux with glibc (Ubuntu 18.04+, Debian 10+, Fedora, Arch and similar; Alpine/musl is not supported yet), a recent macOS, or Windows 10/11 x64. On Windows on ARM the x64 build runs through emulation. On an x64 CPU without AVX2 the installer picks the -baseline build automatically.
You can also download the archives yourself from the releases page and verify them against SHA256SUMS:
| Build | File |
|---|---|
| macOS Apple Silicon | ablit-code-darwin-arm64.tar.gz |
| macOS Intel | ablit-code-darwin-x64.tar.gz |
| Linux x64 | ablit-code-linux-x64.tar.gz (-baseline without AVX2) |
| Linux arm64 | ablit-code-linux-arm64.tar.gz |
| Windows x64 | ablit-code-windows-x64.zip (-baseline without AVX2) |
Each archive holds the ablit-code executable and the ablit short command. Put it anywhere on your PATH; on macOS clear the download quarantine once with xattr -d com.apple.quarantine ablit-code (the installer does this for you).
Upgrade in place with ablit upgrade; remove it with ablit uninstall (sessions and configuration are kept unless you delete them).
Connect your Ablit key
Create a key in Settings → API access on ablit.app. The default permissions (run, read, cancel) are enough; run is what the model API needs. The complete key is shown once. Then, in a terminal:
ablit auth login ablit
Paste the key when asked. It is stored in the CLI's own credential store on your machine and never written to a project. Alternatives: export ABLIT_API_KEY in your shell or CI (the environment variable wins over a stored key), or type /connect inside the agent. ablit auth list shows what is connected and ablit auth logout ablit removes the key.
Keys expire after 90 days by default (up to 365 when you create them) and can be revoked in Settings at any time; the next request then fails with 401 and you connect a new key the same way.
Start coding
cd my-project
ablit
The first start asks for your Ablit API key (the same form opens with /connect); nothing else is offered until a key is connected, and there are no free or third-party models in the box. Afterwards this opens the agent in your project. Describe what you want ("add input validation to the signup form and cover it with tests"); the agent reads the relevant files, proposes edits, runs the commands it needs and shows you every change. File writes and shell commands outside your project, deletions and other risky actions ask for approval first. /help lists the commands available inside the session; /models switches the model; /connect adds a provider or key.
Ablit Flash is the default model once Ablit is connected. Model ids are written ablit/<model>, for example ablit/ablit-flash, ablit/ablit (Ablit Max), ablit/cheap-gpt-6-luna or ablit/stable-claude-sonnet-5.5; ablit models prints the current list. Every model offers reasoning-effort variants (low, medium, high, max) in the model picker.
Run a task without the interactive screen, for scripts and CI:
ablit run "Summarise what this repository does and list its entry points"
ablit run -m ablit/ablit "Refactor src/billing.ts into smaller functions; keep behaviour identical"
ablit run -c "Now add tests for the functions you extracted" # continue the last session
ablit run -f design.png "Build this screen as a React component" # attach a file
Useful flags: -m, --model picks the model, -c, --continue resumes the last session, -s, --session <id> a specific one, -f, --file attaches files or images, --thinking prints the model's reasoning, --title names the session. ablit --auto approves permissions that are not explicitly denied, for unattended runs you trust. ablit session list shows past sessions and ablit debug paths prints where the CLI keeps its configuration, sessions, logs and cache.
Models and pricing
The model list and prices come from Ablit and refresh automatically (the CLI fetches https://ablit.app/api/catalog/opencode on start and every few minutes), so a model added to the router appears without reinstalling. Prices are per million tokens and are charged to your Ablit credits exactly as the API charges them:
| Model | Input | Cached input | Output |
|---|---|---|---|
ablit-flash (Ablit Flash) | $0.75 | $0.075 | $3 |
ablit (Ablit Max) | the former Ablit pricing | ||
cheap-… and stable-… library models | that model's platform list price with Ablit's markup |
The current figures for every model are in the API docs and in GET https://ide.ablit.app/api/v1/models (pricing field). Responses are capped at 32,768 output tokens; Ablit Flash and Ablit Max work with a 1M-token context, other models with their own window, which the picker shows.
Tools, permissions and MCP
The agent's tools (read, edit, shell, search, web fetch) run locally with your user's permissions and your approval; the Ablit API never executes anything on your computer. Connect MCP servers with ablit mcp add or in the project's opencode.json; their tools appear in the session like built-in ones. Ablit's optional cloud tools (durable cloud tasks, remote Kali workspace) are available as a remote MCP server at https://ide.ablit.app/api/v1/mcp; see the API docs. Because the CLI sends its own tool definitions, the router does not attach cloud tools to its requests by itself.
Project instructions work the way they do in OpenCode: an AGENTS.md in the repository is read on every session, and ablit debug agents lists the agent modes. Configuration lives in opencode.json in the project or in the user configuration directory that ablit debug paths shows (~/.config/ablit-code on macOS and Linux). ABLIT CODE keeps its own directories, so it never shares state with an installed OpenCode.
Troubleshooting
| Symptom | What it means and what to do |
|---|---|
ablit: command not found right after installing | The terminal you installed from has the old PATH. Run export PATH=$HOME/.ablit-code/bin:$PATH there, or open a new terminal. |
401 or "invalid key" | The key is wrong, expired or revoked. Create a new key in Settings → API access and run ablit auth login ablit again. |
402 Insufficient credits | Top up credits on ablit.app; model requests reserve credits before they run. |
403 | The key lacks the run permission or the account cannot use the API. Create a key with run. |
| macOS: "cannot be opened" or "is damaged" | A manually downloaded binary is quarantined. Run xattr -d com.apple.quarantine ~/.ablit-code/bin/ablit-code. The binaries are signed; the installer clears this for you. |
| Windows SmartScreen warning | The executable is not yet signed with a Windows certificate. Choose "More info → Run anyway", or run Unblock-File on it; the installer does this. |
Linux: Illegal instruction | Your CPU has no AVX2. Install the -baseline build (ablit-code-linux-x64-baseline.tar.gz); the installer detects this automatically. |
| Alpine or another musl distribution | Not supported yet; use a glibc image such as debian:bookworm-slim. |
| Behind a proxy | Set HTTPS_PROXY (and NO_PROXY as needed); the CLI uses the system certificate store. |
context_length_exceeded | Start a new session or drop large files from the conversation; or pick a model with a larger window in /models. |
model_unavailable or 503 | The provider is busy; retry shortly or switch models. |
| A new router model is missing | The list refreshes on start and every few minutes; ablit models after a restart shows it. |
ABLIT_API_KEY is set but no ablit/… models appear | The CLI talks to a background service that keeps the environment it was started with. Run ablit service restart, or store the key with ablit auth login ablit so it applies everywhere. |
Logs and every directory the CLI uses: ablit debug paths. When you contact support, send the request id from the error, never your API key.
Privacy and limits
Your repository stays on your machine. What reaches Ablit is what the agent sends to the model: your messages, the parts of files it reads to do the task, tool results and command output, under Ablit's terms and privacy policy. Each account can run as many local sessions as it likes; spend is bounded by your credit balance, and API keys are not request-rate limited. Durable cloud work that should continue after you close the terminal is a separate feature of the API (POST /v1/runs and the cloud MCP tools), not of the local agent.