What it does
Run alfa in a project folder and ask for something. It reads your code, edits
files and runs commands and tests, and every step stays in your terminal’s own
scrollback, with a diff for each edit. It can keep a plan, hand work to subagents, run
jobs in the background, and pick a session up where you left it. Before it says it is
done, it runs your project’s type check or build once, and if that fails it keeps
fixing. Skills, MCP and extensions are supported.
› Fix the config parser · read src/config.ts edit src/config.ts +2 -1 - oldValue + newValue Tests passed. The parser now preserves empty values. ›
Install
macOS / Linux
curl -fsSL https://github.com/alfa-plus-laboratory/alfa/releases/latest/download/install.sh | sh
Windows (PowerShell)
irm https://github.com/alfa-plus-laboratory/alfa/releases/latest/download/install.ps1 | iex
Then run alfa and it walks you through connecting your model. No Bun runtime
is needed, and the installer checks the binary’s checksum before installing. Update
with alfa upgrade.
Where it stands out
Any model, and nothing sent to us
alfa speaks three APIs: Anthropic’s, OpenAI’s Responses API, and the OpenAI-compatible Chat Completions API that many providers and gateways offer. So it works with models from many vendors, and with models you run yourself. There is no alfa account, no backend and no telemetry. Requests go straight from your computer to your provider, and sessions are stored on your disk.
Auto mode, with a review in the way
By default alfa works on its own. Reading and editing inside the project just happen. Anything else is scored on four questions: how clearly you asked for it, how much harm it could do, how far its effects reach, and whether it would expose private data. For a shell command, the review also sees the project scripts that command will actually run. If the review fails, the action is blocked, not allowed; secrets never skip it; and after three blocks in a row, auto pauses and asks you. It is judgement, not isolation: what alfa runs has your account’s access. One key switches to approving each step yourself, and an experimental sandbox for shell commands can be turned on.
Chinese and Japanese, properly
The interface comes in English, Chinese and Japanese, and the language it replies in is a separate setting, so an English interface with Chinese replies is one command away. It is built for input methods: approvals go through with Enter and Esc, which an input method leaves alone, and if yours is taking the letter keys, alfa says so instead of ignoring them.
Subagents that work as a pipeline
It hands work to subagents in the background and keeps talking to you meanwhile. A
subagent can wait for others: several search, one cross-checks what they found, one writes
it up, and only that last report comes back to the main conversation. With
/agentflow on, up to a hundred can be dispatched in one run, and any of them
can be suspended and woken later with its memory intact.
You can see what it costs
The footer shows how full the context is, the prompt-cache hit rate your provider actually
reported, and the output speed. --report writes a run’s requests,
tokens, approvals and timings to a JSON file.
Installs that check themselves
The installer and alfa upgrade verify the binary’s SHA-256 before
installing it, and if the checksum can’t be fetched they stop rather than install
something unchecked. alfa uninstall removes the binary together with its
configuration, credentials and session data. Extensions load only if their SHA-256 matches
the one you pinned.
Every decision written down
The repository carries a design log of over 5,000 lines: why each part works the way it does, what was tried and dropped, and what breaks if you take it out.
What we don’t claim
The repository comes with three small coding tasks that anyone can rerun, to measure it against. They are a starting point, not a benchmark, and we make no comparison with other agents.
Licence
alfa is released under Apache-2.0. A few files are adapted from opencode under the MIT licence, and the NOTICE file lists them. Forks are welcome; the licence does not cover the name, so a fork should go by its own.