diff --git a/packages/core/src/plugin/skill/opencode.md b/packages/core/src/plugin/skill/opencode.md index 3ffc699cc2..c363b51816 100644 --- a/packages/core/src/plugin/skill/opencode.md +++ b/packages/core/src/plugin/skill/opencode.md @@ -29,10 +29,41 @@ V1 documentation and syntax may be consulted only when the user explicitly asks about V1 or when needed as migration input. Outputs and recommendations must still use V2 unless the user specifically requests a V1 result. -## [Configuration](https://opencode.ai/v2/docs/config) +## [CLI](https://opencode.ai/v2/docs/cli) -OpenCode configuration uses JSON or JSONC. Include the published schema so the -user's editor can validate fields and provide autocomplete: +For questions about the terminal interface, command-line invocation, `run`, +`mini`, terminal providers, or other CLI behavior, fetch the +[CLI guide](https://opencode.ai/v2/docs/cli) and the relevant page linked from +that section. + +CLI and TUI preferences are separate from OpenCode's server and project +configuration. They live in the global `~/.config/opencode/cli.json`, or +`$XDG_CONFIG_HOME/opencode/cli.json` when `XDG_CONFIG_HOME` is set. There is no +project-local CLI configuration. Most preferences can also be changed from the +TUI by pressing `Ctrl+P` and selecting **Open settings**. + +Fetch the full [CLI configuration guide](https://opencode.ai/v2/docs/cli/config) +before editing `cli.json`. It covers terminal-only settings such as themes, +keybindings, terminal plugins, scrolling, attention alerts, diff presentation, +and terminal integration. Do not put these settings in `opencode.json(c)`. + +### [Keybinds](https://opencode.ai/v2/docs/cli/keybinds) + +Configure keybindings under `keybinds` in `cli.json`. The leader key is the +`keybinds.leader` entry; leader timing is configured separately under +`leader.timeout`. Bindings can use a string, an array of strings, or an object +when event behavior such as `preventDefault` is required. Disable a binding +with `"none"` or `false`. + +Never guess a command ID, default binding, or accepted key syntax. Fetch the +full [keybind reference](https://opencode.ai/v2/docs/cli/keybinds), which lists +the current IDs and defaults, before answering or editing a binding. + +## [OpenCode configuration](https://opencode.ai/v2/docs/config) + +OpenCode's server and project configuration uses JSON or JSONC. Include the +published schema so the user's editor can validate fields and provide +autocomplete: ```jsonc { @@ -55,6 +86,10 @@ Common configuration fields include `model`, `default_agent`, `permissions`, `agents`, `commands`, `plugins`, `providers`, `mcp`, `skills`, `instructions`, `references`, `formatter`, and `lsp`. +This configuration is distinct from `cli.json`. Use the +[CLI configuration guide](https://opencode.ai/v2/docs/cli/config) for terminal +preferences, especially themes and keybindings. + Do not guess field names or shapes. Fetch the V2 configuration guide and its linked topic guide as the source of truth, and preserve unrelated settings when editing an existing file. Keep the published `$schema` URL in configuration