AgentSkillsCN

plugin-installer

从目录或社区中查找、安装并配置OpenCode插件。当用户询问插件、请求新功能,或提及扩展OpenCode功能时,应主动运用此功能。 示例: - 用户输入:“有没有Tailwind CSS的插件?” → 列出插件目录,阅读Tailwind插件详情,若存在则立即安装 - 用户输入:“如何添加自定义斜杠命令?” → 推荐使用command-creator技能,或指导用户完成opencode.json的配置 - 用户输入:“有哪些适合数据库工作的插件?” → 列出插件目录,筛选出与数据库相关的插件 - 用户输入:“安装Playwright插件” → 阅读插件文件,将其加入opencode.json,确认安装成功

SKILL.md
--- frontmatter
name: plugin-installer
description: |-
  Find, install, and configure OpenCode plugins from the catalog or community. Use proactively when user asks about plugins, requests new capabilities, or mentions extending OpenCode functionality.
  
  Examples:
  - user: "Is there a plugin for Tailwind CSS?" → list catalog, read tailwind plugin details, install if available
  - user: "How do I add a custom slash command?" → suggest command-creator skill or guide through opencode.json setup
  - user: "What plugins are available for database work?" → list catalog, filter for database-related plugins
  - user: "Install the playwright plugin" → read plugin file, add to opencode.json, verify installation
<overview> Help users discover, evaluate, and install OpenCode plugins from the community catalog. </overview> <workflow> <phase name="list">

1. List Available Plugins

Run the catalog script to see what's available:

bash
python3 ~/.config/opencode/skill/plugin-installer/scripts/list_plugins.py

Output shows name: description with path to detailed file.

</phase> <phase name="read-details">

2. Read Plugin Details

For relevant matches, read the full plugin file:

code
references/plugins/<filename>.md

Each file contains:

  • Installation config (copy-paste JSON)
  • Setup steps
  • Features and caveats
  • Links to docs
</phase> <phase name="install">

3. Recommend and Install

Show the user:

  • What the plugin does
  • Install snippet for opencode.json
  • Any setup steps (OAuth, config files, etc.)
</phase> </workflow> <guidelines>

Question Tool Usage

Batching: Use the question tool for 2+ related questions. Single questions use plain text.

Syntax: header max 12 chars, label 1-5 words, add "(Recommended)" to default.

When to ask: Multiple plugins match the need, or plugin has complex setup.

</guidelines> <rules>

Installation Format

Add to plugin array in opencode.json:

jsonc
{
  "plugin": [
    "package-name@version"
  ]
}

Config locations:

  • Global: ~/.config/opencode/opencode.json
  • Project: .opencode/opencode.json

Version Pinning

jsonc
// Pin version (RECOMMENDED)
"plugin": ["package@1.2.3"]

// Auto-update on restart
"plugin": ["package@latest"]

// Locked to first install (never updates)
"plugin": ["package"]

Force update when stuck:

bash
rm -rf ~/.cache/opencode/node_modules ~/.cache/opencode/bun.lock
</rules> <workflow> <phase name="document-new">

Adding New Plugins to the Catalog

When you discover a new OpenCode plugin (from web search, GitHub, npm, user mention), you MUST document it for future reference.

Step 1: Gather Plugin Information

Before creating the doc, collect:

InfoWhere to Find
Package namenpm registry, GitHub repo name
DescriptionREADME, package.json description
Install syntaxCheck if scoped (@org/pkg) or plain (pkg)
Version strategyDoes it recommend @latest or pinned?
Setup stepsOAuth flows, config files, env vars
Provider/model requirementsDoes it only work with specific providers?
Known issuesGitHub issues, compatibility notes

Step 2: Create the Plugin File

Location: ~/.config/opencode/skill/plugin-installer/references/plugins/<name>.md

Naming convention: Use the npm package name with / replaced by - for scoped packages:

  • opencode-fooopencode-foo.md
  • @org/opencode-barorg-opencode-bar.md

Step 3: Use This Template

markdown
---
name: package-name-or-@scope/package-name
description: One-line description for catalog listing (max ~80 chars)
---
# Plugin Display Name

Brief description of what this plugin does and why someone would use it.

## Installation

\`\`\`jsonc
{
  "plugin": ["package-name@latest"]
}
\`\`\`

## Setup

### Prerequisites
- List any requirements (accounts, API keys, other tools)

### Configuration
Step-by-step setup instructions.

## Features
- Key feature 1
- Key feature 2

## Caveats
- Known limitations
- Compatibility notes

## Links
- [GitHub](https://github.com/...)
- [npm](https://www.npmjs.com/package/...)

Step 4: Verify the Catalog

After creating, run the listing script to confirm it appears:

bash
python3 ~/.config/opencode/skill/plugin-installer/scripts/list_plugins.py
</phase> </workflow> <constraints>

Frontmatter Requirements

FieldRequiredPurpose
nameYesPackage name exactly as used in "plugin": []
descriptionYesOne-liner shown in catalog listings

The name field MUST match the npm package name exactly (including scope if any). This is what users will copy into their opencode.json.

</constraints> <examples>

Documenting a New Plugin

Say you found @cooldev/opencode-metrics on npm. Create:

File: ~/.config/opencode/skill/plugin-installer/references/plugins/cooldev-opencode-metrics.md

markdown
---
name: @cooldev/opencode-metrics
description: Track AI usage metrics and export to dashboards
---
# OpenCode Metrics

Export your OpenCode usage data to external dashboards...

## Installation

\`\`\`jsonc
{
  "plugin": ["@cooldev/opencode-metrics@latest"]
}
\`\`\`

...
</examples>