Install • Configuration • Specifications
Run the opencode coding TUI on top of your local amplifier-agent, one command to install, one command to start coding:
# 1. install (also installs everything it needs)
curl -fsSL https://raw.githubusercontent.com/microsoft/amplifier-app-opencode/main/install.sh | bash
# 2. set up the connection and jump into opencode
amplifier-opencode launchamplifier-opencode discovers which models your amplifier-agent serves, writes a working opencode config from that discovery, and opens opencode, re-synced every time, with no config to maintain by hand.
- Self-managing. Installs and updates amplifier-agent and opencode, and walks you through connecting a provider on first run.
- Always-live models. The model picker is rediscovered from
GET /v1/modelson every launch, so it never drifts from what amplifier-agent is actually serving. - Zero-config bridge. amplifier-agent's server is auto-started in the background if it isn't already running.
- Skills as commands. amplifier-agent skills show up as opencode slash commands, no extra setup.
- Modes as agents. amplifier-agent modes show up as opencode agents, shown as
<mode> (Amplifier). - Built-in
doctor. Diagnoses any setup issue in one command.
curl -fsSL https://raw.githubusercontent.com/microsoft/amplifier-app-opencode/main/install.sh | bashThis installs uv if missing, and the amplifier-opencode CLI itself. It does not install amplifier-agent or opencode; those come from the first launch.
Prefer to review the script before running it:
curl -fsSL https://raw.githubusercontent.com/microsoft/amplifier-app-opencode/main/install.sh -o install.sh
less install.sh
bash install.shThen run amplifier-opencode launch. On first run it self-heals the rest of the stack: it installs amplifier-agent and opencode if either is missing, and walks you through connecting a provider if none is configured. Anything already installed and healthy is left untouched. Once the stack is healthy, opencode opens with the model picker under the Amplifier section, re-synced on every future run. Want just the setup without launching? Run amplifier-opencode setup.
For pinning a version, manual install steps, and uninstalling, see docs/INSTALL.md.
macOS, Linux, and WSL are fully supported. Native Windows is not supported, run amplifier-opencode inside WSL instead. If a component can't be auto-installed on your platform, amplifier-opencode tells you what to do instead of failing silently.
You usually don't need to do anything here. On first run, if no provider is configured, amplifier-opencode walks you through picking one and stores the credential for you.
To set one yourself, export a key before running launch:
export ANTHROPIC_API_KEY=sk-ant-...amplifier-agent also supports OpenAI, Azure OpenAI, Ollama, and GitHub Copilot. Run amplifier-opencode doctor to see which providers will actually be served.
The gh CLI bridge is the easiest way to connect Copilot:
export GITHUB_TOKEN=$(gh auth token)Copilot models appear namespaced as github-copilot/<model>, shown as <model> (GitHub) in the picker.
For the full env var table, the persistent credential file, and host_config.json, see docs/CONFIGURATION.md.
Every launch also bridges amplifier-agent's skills and modes into opencode:
- Skills become slash commands. Each user-invocable skill becomes a
/<name>command that runs the skill server-side in amplifier-agent. - Modes become agents. Each mode becomes a selectable opencode agent, shown as
<mode> (Amplifier)in the agent picker.
Files land next to your opencode config, at ~/.config/opencode/command/ and ~/.config/opencode/agent/ globally, or under .opencode/ with --project-dir. amplifier-opencode only manages the files it generated; a command or agent file you wrote yourself is never overwritten.
opencode's own commands are untouched. /models, /connect, and everything else it ships with keep working as they always did.
See docs/spec/skills-and-modes-bridge.md for the exact file shapes and conflict handling.
amplifier-opencode launch # set up the bridge and open the opencode TUI
amplifier-opencode # refresh the bridge only, no launch (same as `prepare`)
amplifier-opencode setup # install/heal the stack and connect a provider, no launch
amplifier-opencode update # update amplifier-opencode, amplifier-agent, and opencode
amplifier-opencode doctor # diagnose every prerequisite in one shotRun the plain refresh any time you change providers, add a credential, or restart amplifier-agent. Pass arguments straight through to opencode after --:
amplifier-opencode launch -- run "summarise this codebase"The full command and flag reference is in docs/spec/cli.md.
Run the doctor before asking anyone for help:
amplifier-opencode doctorIt reports on every prerequisite in one shot, from binaries on PATH to which providers will actually resolve.
A couple of common fixes:
opencode not on PATH:curl -fsSL https://opencode.ai/install | bash, then open a new terminal.No provider credentials resolvable: exportANTHROPIC_API_KEY, or runamplifier-agent auth set anthropic <key>.
For the meaning of every other failure, see docs/ISSUES.md. Logs live at <tempdir>/amplifier-agent.log (the backend server) and ~/.local/share/opencode/log/opencode.log (opencode itself).
opencode TUI
|
amplifier-opencode adapter (this repo: discover, translate, bridge)
|
amplifier-agent HTTP face (multi-provider chat-completions server)
|
providers (Anthropic, OpenAI, Azure OpenAI, Ollama, GitHub Copilot)
amplifier-opencode is the adapter layer only. No model logic, no prompt content, no tool-calling logic lives here; every intelligent behavior happens server-side in amplifier-agent. See docs/ARCHITECTURE.md for the full design notes.
| Document | Covers |
|---|---|
| Install | Reviewing the script, manual install, pinning a version, updating, uninstalling |
| Configuration | Provider env vars, the credential file, host_config.json, raw payload capture |
| Specifications | Normative contracts: CLI surface, install/update, providers, generated config, skills/modes bridge, agent integration, file locations |
| Architecture | Why it works the way it does: the launch sequence, live config generation, the two bridges |
| Known issues | Tracked gaps between the stated contract and current behavior |
| E2E testing | The DTU end-to-end test framework and how to add a suite |
| Development | Local setup and the make command surface |
End-to-end suites drive the real installed amplifier-opencode binary, and in TUI suites the real opencode TUI, inside an isolated DTU container. See DEVELOPMENT.md for local setup and the make command surface.
Note
This project is not currently accepting external contributions, but we're actively working toward opening this up. We value community input and look forward to collaborating in the future. For now, feel free to fork and experiment!
Most contributions require you to agree to a Contributor License Agreement (CLA) declaring that you have the right to, and actually do, grant us the rights to use your contribution. For details, visit Contributor License Agreements.
When you submit a pull request, a CLA bot will automatically determine whether you need to provide a CLA and decorate the PR appropriately (e.g., status check, comment). Simply follow the instructions provided by the bot. You will only need to do this once across all repos using our CLA.
This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.
This project may contain trademarks or logos for projects, products, or services. Authorized use of Microsoft trademarks or logos is subject to and must follow Microsoft's Trademark & Brand Guidelines. Use of Microsoft trademarks or logos in modified versions of this project must not cause confusion or imply Microsoft sponsorship. Any use of third-party trademarks or logos are subject to those third-party's policies.