Skip to content

Extend OpenCode with skills and plugins

OpenCode supports two types of extensions:

  • Skills: Markdown instruction files that teach OpenCode how to handle domain-specific tasks. OpenCode loads them automatically based on context.
  • Plugins: JavaScript or TypeScript modules that add runtime capabilities. They run at startup and can hook into OpenCode's execution pipeline.

Both can be scoped globally or to individual projects.

Skills

OpenCode loads relevant skills automatically during a conversation, so you rarely need to manage them yourself.

Pre-installed skills

OpenCode on Olares ships with two skills:

SkillDescription
system-adminSystem package management via pkg-install
web-previewDev server preview through a built-in reverse proxy

system-admin

Ask OpenCode to install or remove a system package in the chat. For example, type "Install ffmpeg" or "Remove the curl package", and the system-admin skill runs the appropriate pkg-install command.

If the skill doesn't activate, load it manually with /skill load system-admin.

For the full command reference, see Manage packages.

web-preview

The web-preview skill starts a dev server inside the container and exposes it through a built-in reverse proxy.

Describe what you want in the chat:

text
Start the web project in this folder on port 5544

OpenCode starts the server, confirms it's running, and returns a preview URL:

text
https://<your-OpenCode-domain>/__preview/<port>/

The domain is the same one shown in your browser address bar when you access OpenCode.

If the skill doesn't activate, load it manually with /skill load web-preview.

Manage skills

List available skills or load one manually:

text
/skill list
/skill load <skill-name>

Skill files are Markdown files stored in the following locations:

ScopePath in Olares Files
Global (all projects)Application/Data/opencode/.config/opencode/skills/
Project-levelHome/Code/<project>/.opencode/skills/

Plugins

Plugins are npm packages or local scripts that extend OpenCode at runtime.

Install as npm packages

Declare plugins in the OpenCode config file:

ScopeConfig file in Files
GlobalApplication/Data/opencode/.config/opencode/opencode.json
Project-levelopencode.json at the project root

Example:

json
{
  "$schema": "https://opencode.ai/config.json",
  "plugin": [
    "opencode-helicone-session",
    "opencode-wakatime"
  ]
}

OpenCode resolves and installs declared packages on startup and caches them in ~/.cache/opencode/node_modules/.

Install as local files

Place .js or .ts files in a plugin directory. OpenCode loads them automatically on startup.

ScopePath in Olares Files
Global pluginsApplication/Data/opencode/.config/opencode/plugins/
Project-level pluginsHome/Code/<project>/.opencode/plugins/
PluginDescription
opencode-wakatimeTrack OpenCode usage time
opencode-firecrawlWeb crawling and search
oh-my-opencodeBackground Agent, LSP/AST tools, and preset Agents
opencode-supermemoryCross-session persistent memory
opencode-ptyLet AI run and interact with background processes in PTY

Learn more