2025-06-13 20:47:15 +00:00
[](https://github.com/sst/opencode)
2025-06-13 20:43:53 +00:00
AI coding agent, built for the terminal.
2025-06-15 19:23:18 +00:00
⚠️ **Note:** version 0.1.x is a full rewrite, and we do not have proper documentation for it yet. Should have this out week of June 17th 2025 📚
2025-06-13 20:43:53 +00:00
2025-06-14 16:12:56 +00:00
### Installation
2025-06-13 20:37:58 +00:00
2025-06-14 16:12:56 +00:00
```bash
# YOLO
2025-06-13 20:42:31 +00:00
curl -fsSL https://opencode.ai/install | bash
2025-06-14 16:12:56 +00:00
# Package managers
npm i -g opencode-ai@latest # or bun/pnpm/yarn
brew install sst/tap/opencode # macOS
paru -S opencode-bin # Arch Linux
2025-06-13 20:42:31 +00:00
```
2025-06-14 16:12:56 +00:00
> **Note:** Remove previous versions < 0.1.x first if installed
2025-06-13 20:37:58 +00:00
2025-06-14 16:12:56 +00:00
### Providers
2025-06-13 20:37:58 +00:00
2025-06-15 19:23:18 +00:00
The recommended approach is to sign up for claude pro or max and do `opencode auth login` and select Anthropic. It is the most cost-effective way to use this tool.
2025-06-13 20:37:58 +00:00
2025-06-15 19:23:18 +00:00
Additionally, opencode is powered by the provider list at [models.dev ](https://models.dev ) so you can use `opencode auth login` to configure api keys for any provider you'd like to use. This is stored in `~/.local/share/opencode/auth.json`
2025-06-13 20:37:58 +00:00
2025-06-14 16:12:56 +00:00
```bash
$ opencode auth login
2025-06-13 20:37:58 +00:00
2025-06-14 16:12:56 +00:00
┌ Add credential
│
◆ Select provider
│ ● Anthropic (recommended)
│ ○ OpenAI
│ ○ Google
│ ○ Amazon Bedrock
│ ○ Azure
│ ○ DeepSeek
│ ○ Groq
│ ...
└
2025-06-13 20:37:58 +00:00
```
2025-06-13 21:24:45 +00:00
2025-06-14 16:12:56 +00:00
The models.dev dataset is also used to detect common environment variables like `OPENAI_API_KEY` to autoload that provider.
If there are additional providers you want to use you can submit a PR to the [models.dev repo ](https://github.com/sst/models.dev ). If configuring just for yourself check out the Config section below
### Project Config
2025-06-15 19:23:18 +00:00
Project configuration is optional. You can place an `opencode.json` file in the root of your repo, and it will be loaded.
2025-06-14 16:12:56 +00:00
```json title="opencode.json"
{
2025-06-14 16:22:07 +00:00
"$schema": "http://opencode.ai/config.json"
2025-06-14 16:12:56 +00:00
}
```
2025-06-13 21:24:45 +00:00
2025-06-14 18:52:02 +00:00
#### MCP
```json title="opencode.json"
{
"$schema": "http://opencode.ai/config.json",
"mcp": {
"localmcp": {
"type": "local",
"command": ["bun", "x", "my-mcp-command"],
"environment": {
"MY_ENV_VAR": "my_env_var_value"
}
},
"remotemcp": {
"type": "remote",
"url": "https://my-mcp-server.com"
}
}
}
```
#### Providers
2025-06-14 18:45:59 +00:00
You can use opencode with any provider listed at [here ](https://ai-sdk.dev/providers/ai-sdk-providers ). Use the npm package name as the key in your config. Note we use v5 of the ai-sdk and not all providers support that yet.
```json title="opencode.json"
{
2025-06-14 22:55:39 +00:00
"$schema": "https://opencode.ai/config.json",
2025-06-14 18:45:59 +00:00
"provider": {
"@ai-sdk/openai-compatible": {
2025-06-14 22:55:39 +00:00
"name": "ollama",
2025-06-14 18:45:59 +00:00
"options": {
2025-06-14 22:55:39 +00:00
"baseURL": "http://localhost:11434/v1"
2025-06-14 18:45:59 +00:00
},
"models": {
2025-06-14 22:55:39 +00:00
"llama2": {
"name": "llama2"
2025-06-14 18:45:59 +00:00
}
}
}
}
}
```
2025-06-14 16:45:26 +00:00
### Contributing
To run opencode locally you need
- bun
- golang 1.24.x
To run
```
$ bun install
$ cd packages/opencode
$ bun run src/index.ts
```
2025-06-14 18:39:06 +00:00
### FAQ
2025-06-14 22:58:27 +00:00
#### How do I use this with OpenRouter
2025-06-14 18:39:06 +00:00
2025-06-15 19:23:18 +00:00
OpenRouter is not yet in the models.dev database, but you can configure it manually.
2025-06-14 18:39:06 +00:00
```json title="opencode.json"
{
"$schema": "https://opencode.ai/config.json",
"provider": {
"@openrouter/ai-sdk-provider": {
"name": "OpenRouter",
"options": {
"apiKey": "sk-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
},
"models": {
"anthropic/claude-3.5-sonnet": {
2025-06-14 18:45:59 +00:00
"name": "Claude 3.5 Sonnet"
2025-06-14 18:39:06 +00:00
}
}
}
}
}
```