Skip to main content
These docs are for the beta version of OpenCode, which will become OpenCode 2.0. The beta is still changing: we may wipe your data, things may break, and APIs, configuration, and plugin APIs may change.
OpenCode is an open source AI coding agent. It’s available as a terminal-based interface or desktop app. OpenCode TUI with the opencode theme Let’s get started.

Prerequisites

To use OpenCode in your terminal, you’ll need:
  1. A modern terminal emulator like:
  2. API keys for the LLM providers you want to use.

Install

The curl install script is not available in beta.
You can also install it with the following package managers.
npm install -g @opencode-ai/cli@next
During beta, the executable is named opencode2.

Homebrew

Homebrew installation is not available in beta.

Arch Linux

Arch Linux installation is not available in beta.

Windows

For the best experience on Windows, install Windows Subsystem for Linux (WSL), open your Linux distribution, and use one of the beta package manager commands above.
Chocolatey installation is not available in beta.
Standalone binaries are not available in beta.

Connect

With OpenCode you can use any LLM provider by configuring its API key. Run /connect in the TUI and select your provider.
/connect
If you’d like easy access to all the best coding models you can try out OpenCode Console. You can also try OpenCode Go a $10/month subscription plan that grants you access to the best open source models. Use /models to browse the providers and models available to your project. See Providers for connection and configuration details.

Usage

You are now ready to use OpenCode in your project. Here are a few common workflows.

Ask questions

Ask OpenCode to explain your codebase.
Use @ to fuzzy search for files in the project.
How is authentication handled in @packages/functions/src/api/index.ts

Add features

Ask OpenCode to add a feature by describing the desired behavior and providing relevant context.
When a user deletes a note, flag it as deleted in the database.
Create a screen that shows recently deleted notes.
From this screen, the user can restore a note or permanently delete it.
Give OpenCode plenty of context and examples.

Undo changes

Use /undo when a change isn’t what you wanted.
/undo
OpenCode stages a conversation revert and restores your original message so you can revise it. In a Git repository, it also restores file changes when snapshots were captured successfully. Run /undo multiple times to move the conversation boundary back, or use /redo to restore the staged conversation and files. See Undo for limitations and safety details.
/redo

Customize

Make OpenCode your own by picking a theme, customizing keybinds, configuring formatters, creating commands, or editing the OpenCode config.