Files
awesome-opencode/data/examples/plugin.yaml
T
John SmithandClaude Opus 5.5 56fad94c34 feat(schema): add kind, topics, compat, npm and path; reject unknown fields and non-root repo URLs
Entries gain a fixed kind and 1-3 topics (replacing 374 one-off tags as the categorization axis), an OpenCode API compat field (required for plugins), and npm/path for packages and monorepo folders. repo must be a repository root; unknown fields such as install: or repository: are rejected. Cross-entry rules (one entry per repo+path, kind must fit the category, no placeholder owners or mojibake) live in scripts/utils/catalog.js, and validate.js now always loads the whole catalog and fails on unparseable YAML. Adds npm run fmt for canonical formatting and drops the unused glob dependency.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-17 13:00:22 -04:00

86 lines
2.5 KiB
YAML

# Example Plugin Entry
# Plugins are JS/TS modules that extend OpenCode's core functionality.
# Place actual entries in: data/plugins/your-plugin-name.yaml
# ============================================================================
# REQUIRED FIELDS
# ============================================================================
name: Example Plugin
repo: https://github.com/example/opencode-example-plugin
tagline: A brief description of what this plugin does (max 120 chars)
description: A longer description explaining the plugin in detail.
-Can be multiple lines and include
- Feature highlights
- Use cases
- Key benefits
kind: plugin # plugin, theme, agent, skill, mcp-server, client, tool, config, guide, fork
topics: # 1-3 from the fixed list in data/schema.json; the first is used for README grouping
- workflow
compat: v2 # plugins only: v2, v1 or unknown (CI verifies it)
# ============================================================================
# OPTIONAL FIELDS
# ============================================================================
# Scope defines where the extension can be installed (defaults to [global])
# Most plugins work in both locations - omit or specify only what's relevant
scope:
- global # ~/.config/opencode/plugin/
- project # .opencode/plugin/
# Tags for filtering and discoverability
tags:
- productivity
- ai
- authentication
# Minimum OpenCode version required (semver format)
min_version: "1.0.0"
# Documentation URL if different from repository
homepage: https://example.com/docs/opencode-plugin
# Detailed installation instructions (markdown format)
# Include sections relevant to your plugin
installation: |
## Prerequisites
- OpenCode 1.0.0 or later
- Node.js 18+ (for local development)
## Installation
### Global (all projects)
```bash
# Clone to global plugins directory
git clone https://github.com/example/opencode-example-plugin ~/.config/opencode/plugin/example-plugin
```
### Project-only
```bash
# Clone to project plugins directory
git clone https://github.com/example/opencode-example-plugin .opencode/plugin/example-plugin
```
## Configuration
Add to your `opencode.json`:
```json
{
"plugins": {
"example-plugin": {
"enabled": true,
"option1": "value"
}
}
}
```
## Files Modified
- `~/.config/opencode/opencode.json` (config entry)
- `~/.config/opencode/plugin/example-plugin/` (plugin files)
## Removal
1. Remove the plugin directory
2. Remove the config entry from `opencode.json`