opencode
⚠️ There are 2 different CLIs:
opencode-ai/opencode
Good
- Can execute multiple sub-agents in parallel.
- Can open an editor to customize complex prompt.
- Can manage sessions in the same session.
- The cost is always displayed at the bottom, so it’s easier to track the spending.
- Can have custom ccommands.
- Can symlink custom commands ⇒ can add custom commands in dotfiles.
- Can have unique placeholders for each arguments.
- LSP integration ⇒ LLM have more context on the code, e.g. knows if there any linter or compiler errors…
- Nice UX to change the model and provider during a session.
- Have vim keys to navigate the options.
Bad
- Cannot edit keymaps
- Related issue: https://github.com/opencode-ai/opencode/issues/89.
- Lots of keymaps are in conflict with my tmux / window manager keymaps…
- Bad experience with tmux.
- No output copy, and tmux will copy the white space around, so not ideal.
sst/opencode
Good
- Can edit keymaps.
- Have the “spirit” of vim (e.g. “leader” key).
- Can open an external editor to create complex prompt, to avoid unwanted prompt submission.
- Can share chat sessions.
- Not that useful for private repositories.
- Offer enterprise self-hosting.
- UI/Theme can adapt to system.
- The cost is always displayed at the bottom, so it’s easier to track the spending.
- The config file has a json schema! So config file lint + autocompletion.
- Has a build and plan modes, and we can create custom modes.
- Can add custom system prompts for each mode, e.g. a code reviewer code for a review mode.
- Can use specific model for each mode.
Bad
- No “slash commands”.
- Related issue: https://github.com/sst/opencode/issues/299
- Cannot re-insert previous prompt with up arrow, i.e. no command history.
- Cannot execute multiple sub-agents in parallel.
- Bad experience with tmux.
- No output copy, and tmux will copy the white space around, so not ideal.
- Mitigated somewhat by using the tool native yank feature, navigating the messages and yanking the whole message.
Weird choice of having small width, i.e. 2 large white space around the chat, which degrade the readability.- Related issue: https://github.com/sst/opencode/issues/525
- Width can be configured now: https://opencode.ai/docs/troubleshooting/#tui-not-rendering-full-width
- Seem to follow the same behavior as claude code, e.g. use an internal task list, however, it did not manage to fix an issue, whereas claude code managed to find the bug and fix it.
- Maybe it’s because there was a
CLAUDE.md
but noAGENTS.md
in the project?
- Maybe it’s because there was a
- Canceling the ongoing operation does not work that well: I had to press multiple times “Escape”.
- Related issue: https://github.com/sst/opencode/issues/888