mirror of
https://github.com/Heretek-AI/awesome-opencode.git
synced 2026-11-07 10:45:57 -10:00
Merge branch 'main' into upstream-pr/802
This commit is contained in:
585 files changed
+27605
-2384
No files matched your search
@@ -0,0 +1,134 @@
|
||||
name: Add an entry
|
||||
description: Submit a plugin, theme, agent, project or resource. A bot validates it and opens the pull request for you.
|
||||
title: "Add: "
|
||||
labels: ["submission"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Fill in the fields below; you never have to write YAML or touch the README. A bot checks the entry within a minute, comments here, and opens a pull request when it passes. Edit this issue to fix anything it reports.
|
||||
|
||||
**Plugins must be built on OpenCode V2**: depend on `@opencode/plugin` and export `Plugin.define({ id, setup(ctx) })`. The check reads your package.json (or npm package) to verify this. See the [catalog policy](https://github.com/Heretek-AI/awesome-opencode/blob/main/docs/policy.md).
|
||||
- type: input
|
||||
id: name
|
||||
attributes:
|
||||
label: Name
|
||||
description: Display name (max 80 characters).
|
||||
placeholder: Quota Board
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: repo
|
||||
attributes:
|
||||
label: Repository URL
|
||||
description: The repository root, e.g. https://github.com/owner/repo. For a package inside a monorepo, use the next field for its folder.
|
||||
placeholder: https://github.com/owner/repo
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: path
|
||||
attributes:
|
||||
label: Folder inside the repository
|
||||
description: Only for monorepos, e.g. packages/my-plugin.
|
||||
- type: input
|
||||
id: npm
|
||||
attributes:
|
||||
label: npm package
|
||||
description: The package users install, if any (e.g. opencode-my-plugin). Strongly recommended for plugins.
|
||||
- type: dropdown
|
||||
id: category
|
||||
attributes:
|
||||
label: Category
|
||||
options:
|
||||
- plugins
|
||||
- themes
|
||||
- agents
|
||||
- projects
|
||||
- resources
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: kind
|
||||
attributes:
|
||||
label: Kind
|
||||
description: "plugins → plugin; themes → theme; agents → agent or skill; projects → client, tool, mcp-server, skill, agent or fork; resources → guide, config, mcp-server, skill or tool."
|
||||
options:
|
||||
- plugin
|
||||
- theme
|
||||
- agent
|
||||
- skill
|
||||
- mcp-server
|
||||
- client
|
||||
- tool
|
||||
- config
|
||||
- guide
|
||||
- fork
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: topics
|
||||
attributes:
|
||||
label: Topics
|
||||
description: Pick 1 to 3. The first one decides where it appears in the README.
|
||||
multiple: true
|
||||
options:
|
||||
- memory
|
||||
- context
|
||||
- orchestration
|
||||
- workflow
|
||||
- providers
|
||||
- cost
|
||||
- notifications
|
||||
- sessions
|
||||
- code-quality
|
||||
- security
|
||||
- git
|
||||
- remote
|
||||
- web
|
||||
- ui
|
||||
- voice
|
||||
- media
|
||||
- docs
|
||||
- environment
|
||||
- observability
|
||||
- integrations
|
||||
- code-intel
|
||||
- prompting
|
||||
- domain
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: tagline
|
||||
attributes:
|
||||
label: Tagline
|
||||
description: One short line, max 120 characters.
|
||||
placeholder: Provider quotas and reset countdowns in the OpenCode sidebar
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: description
|
||||
attributes:
|
||||
label: Description
|
||||
description: What it does and why it's useful (max 1500 characters).
|
||||
validations:
|
||||
required: true
|
||||
- type: input
|
||||
id: homepage
|
||||
attributes:
|
||||
label: Documentation URL
|
||||
description: Only if the docs live somewhere other than the repository.
|
||||
- type: textarea
|
||||
id: installation
|
||||
attributes:
|
||||
label: Installation
|
||||
description: Optional short install snippet (markdown).
|
||||
render: markdown
|
||||
- type: checkboxes
|
||||
id: policy
|
||||
attributes:
|
||||
label: Checklist
|
||||
options:
|
||||
- label: The repository is public and maintained by me or the project I'm representing, or I'm a user recommending it.
|
||||
required: true
|
||||
- label: It is not a cryptocurrency, token, or trading project (these are not accepted).
|
||||
required: true
|
||||
@@ -1,35 +1,17 @@
|
||||
## Submission Type
|
||||
<!--
|
||||
Easiest path: use the "Add an entry" issue form instead of a PR. A bot writes the YAML and opens the PR for you:
|
||||
https://github.com/Heretek-AI/awesome-opencode/issues/new?template=add-entry.yml
|
||||
|
||||
- [ ] Plugin
|
||||
- [ ] Project
|
||||
- [ ] Theme
|
||||
- [ ] Agent
|
||||
- [ ] Resource
|
||||
Editing by hand? Add data/<category>/<name>.yaml (see contributing.md). Do not edit README.md; it is generated.
|
||||
`npm run new -- --category plugins --repo <url> --tagline "..." --topics memory` writes a valid file for you.
|
||||
-->
|
||||
|
||||
## Details
|
||||
## What does this add or change?
|
||||
|
||||
**Name:**
|
||||
**Repository:**
|
||||
**Tagline:**
|
||||
<!-- One or two sentences. -->
|
||||
|
||||
## Checklist
|
||||
## Plugins only: OpenCode V2
|
||||
|
||||
- [ ] Relevant to OpenCode
|
||||
- [ ] Repository is public and accessible
|
||||
- [ ] Actively maintained
|
||||
- [ ] Not a duplicate
|
||||
- [ ] YAML file in correct folder (`data/{category}/`)
|
||||
- [ ] Filename is kebab-case (e.g., `my-plugin.yaml`)
|
||||
- [ ] The plugin depends on `@opencode/plugin` (not the legacy `@opencode-ai/plugin` 1.x) and exports `Plugin.define({ id, setup(ctx) })`.
|
||||
|
||||
## YAML Format
|
||||
|
||||
Create a file in `data/{category}/your-entry.yaml`:
|
||||
|
||||
```yaml
|
||||
name: Your Entry Name
|
||||
repo: https://github.com/owner/repo
|
||||
tagline: Short punchy summary (shown in collapsed view)
|
||||
description: Longer description explaining what it does.
|
||||
```
|
||||
|
||||
See [contributing.md](contributing.md) for full instructions.
|
||||
New V1 plugins are not accepted. The `validate` check verifies this automatically and explains anything it can't confirm. See [docs/policy.md](https://github.com/Heretek-AI/awesome-opencode/blob/main/docs/policy.md).
|
||||
@@ -6,10 +6,18 @@ on:
|
||||
- main
|
||||
paths:
|
||||
- 'data/**'
|
||||
- 'templates/**'
|
||||
- 'scripts/**'
|
||||
workflow_dispatch:
|
||||
|
||||
# main requires a passing "validate" check, which rulesets only accept through a pull request merge.
|
||||
# The regenerated README therefore goes through a bot PR from bot/readme-<sha>: this job approves the
|
||||
# PR's held validate run, waits for it, and squash-merges the PR once the check passes.
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
actions: write
|
||||
checks: read
|
||||
|
||||
concurrency:
|
||||
group: auto-generate-readme-main
|
||||
@@ -21,49 +29,93 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
ref: ${{ github.ref }}
|
||||
ref: main
|
||||
# Full history: "Recently added" is derived from when each entry file was first committed
|
||||
fetch-depth: 0
|
||||
persist-credentials: true
|
||||
|
||||
- name: Setup Node.js 20
|
||||
uses: actions/setup-node@v4
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '20'
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Generate and push README/registry
|
||||
- name: Generate, validate and merge README/registry
|
||||
env:
|
||||
GH_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
set -euo pipefail
|
||||
|
||||
git config user.name "github-actions[bot]"
|
||||
git config user.email "41898282+github-actions[bot]@users.noreply.github.com"
|
||||
|
||||
for attempt in 1 2 3 4 5; do
|
||||
echo "Generation attempt ${attempt}"
|
||||
git fetch origin main
|
||||
git reset --hard origin/main
|
||||
|
||||
node scripts/generate-readme.js
|
||||
node scripts/export-json.js --pretty --output dist/registry.json
|
||||
|
||||
if git diff --quiet -- README.md dist/registry.json; then
|
||||
echo "README.md and dist/registry.json are already current."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
git add README.md dist/registry.json
|
||||
git commit -m "docs: auto-regenerate README and registry data"
|
||||
|
||||
if git push origin HEAD:main; then
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Push raced with another main update; retrying..."
|
||||
sleep 2
|
||||
# Close bot README PRs left open by earlier failed runs; this run supersedes them
|
||||
for old in $(gh pr list --state open --search "head:bot/readme-" --json number,headRefName \
|
||||
--jq '.[] | select(.headRefName | startswith("bot/readme-")) | .number'); do
|
||||
gh pr close "$old" --delete-branch --comment "Superseded by a newer README regeneration." || true
|
||||
done
|
||||
|
||||
echo "Failed to push regenerated README/registry after retries" >&2
|
||||
# Both scripts validate the whole catalog and exit non-zero without writing on any error
|
||||
node scripts/generate-readme.js
|
||||
node scripts/export-json.js --pretty --output dist/registry.json
|
||||
|
||||
if git diff --quiet -- README.md dist/registry.json; then
|
||||
echo "README.md and dist/registry.json are already current."
|
||||
exit 0
|
||||
fi
|
||||
|
||||
git add README.md dist/registry.json
|
||||
git commit -m "docs: auto-regenerate README and registry data"
|
||||
sha="$(git rev-parse HEAD)"
|
||||
branch="bot/readme-${sha:0:12}"
|
||||
git push --force origin "HEAD:refs/heads/${branch}"
|
||||
|
||||
pr="$(gh pr create --base main --head "${branch}" \
|
||||
--title "docs: auto-regenerate README and registry data" \
|
||||
--body "Automated by \`generate-readme.yml\` after ${GITHUB_SHA:0:12}. Merged automatically once \`validate\` passes.")"
|
||||
echo "Opened ${pr}"
|
||||
|
||||
# GitHub holds pull_request runs on bot-opened PRs for approval; approve our own validate run
|
||||
approved=""
|
||||
for i in $(seq 1 18); do
|
||||
sleep 5
|
||||
run_id="$(gh api "repos/${GITHUB_REPOSITORY}/actions/workflows/validate-pr.yml/runs?head_sha=${sha}&event=pull_request" \
|
||||
--jq '[.workflow_runs[] | select(.conclusion == "action_required")][0].id // ""')"
|
||||
if [ -n "${run_id}" ]; then
|
||||
gh api -X POST "repos/${GITHUB_REPOSITORY}/actions/runs/${run_id}/approve" >/dev/null
|
||||
approved="${run_id}"
|
||||
break
|
||||
fi
|
||||
# Already running without approval (policy change): nothing to approve
|
||||
if [ -n "$(gh api "repos/${GITHUB_REPOSITORY}/actions/workflows/validate-pr.yml/runs?head_sha=${sha}&event=pull_request" --jq '.workflow_runs[0].id // ""')" ]; then
|
||||
break
|
||||
fi
|
||||
done
|
||||
echo "validate run approved: ${approved:-none needed}"
|
||||
|
||||
conclusion=""
|
||||
for i in $(seq 1 60); do
|
||||
sleep 10
|
||||
conclusion="$(gh api "repos/${GITHUB_REPOSITORY}/commits/${sha}/check-runs?check_name=validate" \
|
||||
--jq '[.check_runs[] | select(.status == "completed") | .conclusion][0] // ""')"
|
||||
[ -n "${conclusion}" ] && break
|
||||
done
|
||||
if [ "${conclusion}" != "success" ]; then
|
||||
echo "validate on ${sha} finished with '${conclusion:-timeout}'; leaving ${pr} open for a maintainer" >&2
|
||||
exit 1
|
||||
fi
|
||||
|
||||
# The required check can take a moment to register on the PR
|
||||
for i in 1 2 3 4 5 6; do
|
||||
if gh pr merge "${pr}" --squash --delete-branch --subject "docs: auto-regenerate README and registry data"; then
|
||||
exit 0
|
||||
fi
|
||||
sleep 10
|
||||
done
|
||||
echo "Could not merge ${pr}; leaving it open for a maintainer" >&2
|
||||
exit 1
|
||||
@@ -0,0 +1,41 @@
|
||||
# Nightly catalog health: updates the "Catalog health report" issue, and opens bot PRs that follow
|
||||
# renamed repos and remove entries dead for 30+ days (or V1-only plugins after the sunset date).
|
||||
name: Catalog health
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '17 5 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
issues: write
|
||||
actions: write
|
||||
|
||||
concurrency:
|
||||
group: catalog-health
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
health:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Check health and open bot PRs
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
run: node scripts/health-check.js --issue --open-prs
|
||||
@@ -0,0 +1,78 @@
|
||||
# Issue automation:
|
||||
# - "Add an entry" form submissions (label: submission) become PRs on submission/<issue>.
|
||||
# - Ticked candidates in Scout issues (label: scout) become PRs on scout/<name>.
|
||||
#
|
||||
# Security: issue text is untrusted. It is only read by the Node scripts as data (via the API);
|
||||
# nothing from the issue is interpolated into shell commands.
|
||||
name: Issue automation
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened, edited, reopened, labeled]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: issue-${{ github.event.issue.number }}
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
submission:
|
||||
if: contains(github.event.issue.labels.*.name, 'submission') && github.event.issue.state == 'open'
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
issues: write
|
||||
actions: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Build entry and open PR
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
||||
run: node scripts/submit-entry.js --issue "$ISSUE_NUMBER"
|
||||
|
||||
scout-accept:
|
||||
if: github.event.action == 'edited' && contains(github.event.issue.labels.*.name, 'scout')
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
issues: write
|
||||
actions: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Open PRs for ticked candidates
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
ISSUE_NUMBER: ${{ github.event.issue.number }}
|
||||
SENDER: ${{ github.event.sender.login }}
|
||||
run: node scripts/scout.js accept --issue "$ISSUE_NUMBER" --sender "$SENDER"
|
||||
@@ -0,0 +1,51 @@
|
||||
# Nightly re-check of PRs labeled needs-v2: unblocks them once the target migrates to the V2 plugin
|
||||
# API, and closes them after 60 days on V1 (see docs/policy.md).
|
||||
name: Re-check V2 migrations
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '43 6 * * *'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
pr:
|
||||
description: 'Only this PR number (optional)'
|
||||
required: false
|
||||
|
||||
permissions:
|
||||
contents: write
|
||||
pull-requests: write
|
||||
issues: write
|
||||
actions: write
|
||||
|
||||
concurrency:
|
||||
group: reprobe
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
reprobe:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Re-check held PRs
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
ONLY_PR: ${{ inputs.pr }}
|
||||
run: |
|
||||
if [ -n "${ONLY_PR:-}" ]; then
|
||||
node scripts/reprobe.js --pr "$ONLY_PR"
|
||||
else
|
||||
node scripts/reprobe.js
|
||||
fi
|
||||
@@ -0,0 +1,36 @@
|
||||
# Weekly discovery of OpenCode V2 plugins and SDK tools on npm that are not in the catalog yet.
|
||||
# Opens a "Scout" issue; ticking a candidate's box opens a PR (see issues.yml).
|
||||
name: Scout V2 packages
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 8 * * 1'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: read
|
||||
issues: write
|
||||
|
||||
jobs:
|
||||
scout:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Find candidates
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
run: node scripts/scout.js run
|
||||
@@ -0,0 +1,69 @@
|
||||
# Builds the search site (site/ + registry.json + fresh health.json) and deploys it to GitHub Pages.
|
||||
name: Deploy search site
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
paths:
|
||||
- 'data/**'
|
||||
- 'site/**'
|
||||
- 'scripts/**'
|
||||
schedule:
|
||||
- cron: '30 5 * * *'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: pages
|
||||
cancel-in-progress: false
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Build site
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
run: |
|
||||
node scripts/health-check.js --out "$RUNNER_TEMP/health.json" || echo "::warning::health check failed; deploying without health data"
|
||||
if [ -f "$RUNNER_TEMP/health.json" ]; then
|
||||
node scripts/build-site.js --health "$RUNNER_TEMP/health.json"
|
||||
else
|
||||
node scripts/build-site.js
|
||||
fi
|
||||
|
||||
- name: Upload artifact
|
||||
uses: actions/upload-pages-artifact@v5
|
||||
with:
|
||||
path: _site
|
||||
|
||||
deploy:
|
||||
needs: build
|
||||
permissions:
|
||||
pages: write
|
||||
id-token: write
|
||||
runs-on: ubuntu-latest
|
||||
environment:
|
||||
name: github-pages
|
||||
url: ${{ steps.deployment.outputs.page_url }}
|
||||
steps:
|
||||
- name: Deploy to GitHub Pages
|
||||
id: deployment
|
||||
uses: actions/deploy-pages@v5
|
||||
@@ -0,0 +1,43 @@
|
||||
# Labels PRs (needs-v2 / needs-metadata / needs-human / ready, plus category) and keeps one comment
|
||||
# with the check results up to date.
|
||||
#
|
||||
# Security: pull_request_target runs with a write token, so this workflow checks out the BASE branch
|
||||
# only. PR files are fetched through the API and parsed as data; PR code is never executed here.
|
||||
name: Triage PR
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
types: [opened, synchronize, reopened, ready_for_review]
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
pull-requests: write
|
||||
issues: write
|
||||
|
||||
concurrency:
|
||||
group: triage-${{ github.event.pull_request.number }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
triage:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout base branch
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Label and comment
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
PR_NUMBER: ${{ github.event.pull_request.number }}
|
||||
run: node scripts/triage.js --pr "$PR_NUMBER"
|
||||
@@ -1,39 +1,59 @@
|
||||
name: Validate PR YAML Files
|
||||
# The required "validate" status check. Runs on every PR (including README-only and non-data PRs, so
|
||||
# hand edits to generated files get feedback). Runs on PRs opened by github-actions[bot] are held for
|
||||
# approval by GitHub; the bot workflows approve their own. workflow_dispatch is for manual runs.
|
||||
name: Validate PR
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
paths:
|
||||
- 'data/**'
|
||||
workflow_dispatch:
|
||||
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
concurrency:
|
||||
group: validate-${{ github.event.pull_request.number || github.ref }}
|
||||
cancel-in-progress: true
|
||||
|
||||
jobs:
|
||||
validate:
|
||||
name: validate
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v7
|
||||
with:
|
||||
fetch-depth: 0
|
||||
persist-credentials: false
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4
|
||||
uses: actions/setup-node@v7
|
||||
with:
|
||||
node-version: '20'
|
||||
node-version: '24'
|
||||
cache: npm
|
||||
|
||||
- name: Install dependencies
|
||||
run: npm ci
|
||||
run: npm ci --ignore-scripts
|
||||
|
||||
- name: Get changed YAML files
|
||||
id: changed-files
|
||||
uses: tj-actions/changed-files@v44
|
||||
with:
|
||||
files: |
|
||||
data/**/*.yaml
|
||||
- name: Unit tests
|
||||
run: npm test
|
||||
|
||||
- name: Validate YAML files
|
||||
- name: Check catalog changes
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ github.token }}
|
||||
# Compare against the current base branch, not pull_request.base.sha: on an older PR that is the base
|
||||
# commit from when the PR was opened, which would count everything merged since as part of the PR
|
||||
BASE_REF: origin/${{ github.event.pull_request.base.ref || 'main' }}
|
||||
# Only the README bot's own PRs (opened by github-actions[bot] from this repo's bot/readme-* branches)
|
||||
# may change the generated files
|
||||
ALLOW_GENERATED: ${{ github.event_name == 'pull_request' && github.event.pull_request.user.login == 'github-actions[bot]' && github.event.pull_request.head.repo.full_name == github.repository && startsWith(github.head_ref, 'bot/readme-') }}
|
||||
run: |
|
||||
if [[ -n "${{ steps.changed-files.outputs.all_changed_files }}" ]]; then
|
||||
node scripts/validate.js ${{ steps.changed-files.outputs.all_changed_files }}
|
||||
if [ "$ALLOW_GENERATED" = "true" ]; then
|
||||
node scripts/check-pr.js --base "$BASE_REF" --allow-generated
|
||||
else
|
||||
echo "No YAML files changed, skipping validation"
|
||||
node scripts/check-pr.js --base "$BASE_REF"
|
||||
fi
|
||||
|
||||
- name: README and registry still generate
|
||||
run: |
|
||||
node scripts/generate-readme.js
|
||||
node scripts/export-json.js --output "$RUNNER_TEMP/registry.json"
|
||||
@@ -16,3 +16,6 @@ Thumbs.db
|
||||
*.swo
|
||||
|
||||
# Generated (for local testing only - README.md is committed)
|
||||
|
||||
# Built search site (deployed by .github/workflows/site.yml)
|
||||
_site/
|
||||
@@ -0,0 +1,15 @@
|
||||
---
|
||||
description: Review an open PR or issue for quality and OpenCode v2 compatibility
|
||||
---
|
||||
|
||||
You are the maintainer review agent for `Heretek-AI/awesome-opencode`.
|
||||
Your task is to review the specified PR or issue (or the next item in the backlog queue) against the OpenCode V2 compatibility and quality standards.
|
||||
|
||||
Follow the guidelines defined in `prompts/opencode-review-loop.md`, including its "Deterministic Pre-Checks" and "Merging Rules" sections (labels and the `validate` check already cover schema, duplicates and V2 markers; merge only with `gh pr merge`, never by pushing to main):
|
||||
1. Check if the target repo is public, maintained, and safe (no crypto/spam).
|
||||
2. Check OpenCode V2 compatibility:
|
||||
- For plugins: does it use `@opencode/plugin` and `Plugin.define` (V2), or legacy `@opencode-ai/plugin` (V1)?
|
||||
- For projects/themes/agents/resources: does it work seamlessly with OpenCode V2?
|
||||
3. Validate YAML schema adherence against `data/schema.json`.
|
||||
4. Output the structured JSON assessment with verdict (`APPROVE_AND_MERGE`, `NEEDS_V2_UPDATE`, `NEEDS_METADATA_FIX`, `REJECT_ABANDONED`, `REJECT_POLICY`, `ISSUE_CONVERT_TO_PR`, or `ISSUE_CLOSE`).
|
||||
5. Provide a clear recommendation and draft GitHub review comment.
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
<!-- HEADER -->
|
||||
<div align="center">
|
||||
|
||||
<br>
|
||||
<!-- LOGO -->
|
||||
<img src="https://github.com/user-attachments/assets/aced1e8e-e6be-485a-9015-b822d01ab064" alt="Awesome Opencode" />
|
||||
<br><br>
|
||||
|
||||
<!-- TITLE -->
|
||||
<h1>Awesome Opencode</h1>
|
||||
|
||||
<!-- BADGES -->
|
||||
<p>
|
||||
<a href="https://github.com/sindresorhus/awesome"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" height="28" alt="Awesome" /></a>
|
||||
|
||||
<a href="https://github.com/anomalyco/opencode"><img src="https://img.shields.io/github/stars/anomalyco/opencode?style=social" height="28" alt="Opencode Stars" /></a>
|
||||
</p>
|
||||
|
||||
<!-- LANGUAGE SWITCHER -->
|
||||
<p>
|
||||
<a href="README.md"><img src="https://img.shields.io/badge/EN-English-blue" height="22" alt="English" /></a>
|
||||
|
||||
<a href="README.zh-CN.md"><img src="https://img.shields.io/badge/中文-简体-green" height="22" alt="简体中文" /></a>
|
||||
|
||||
<a href="README.ru-RU.md"><img src="https://img.shields.io/badge/Русский-версия-orange" height="22" alt="Русский" /></a>
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- DESCRIPTION -->
|
||||
<h3>Курируемый список плагинов, тем, агентов и ресурсов для <a href="https://opencode.ai/">Opencode</a>.</h3>
|
||||
<h3>AI-кодинг-агент для терминала, созданный командой <a href="https://github.com/anomalyco">Anomaly</a>.</h3>
|
||||
|
||||
<br>
|
||||
|
||||
[**ОФИЦИАЛЬНЫЕ**](#официальные) • [**ПЛАГИНЫ**](#plugins) • [**ТЕМЫ**](#themes) • [**АГЕНТЫ**](#agents) • [**ПРОЕКТЫ**](#projects) • [**РЕСУРСЫ**](#resources)
|
||||
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- CONTENT -->
|
||||
|
||||
<div id="официальные"></div>
|
||||
|
||||
<h3>⭐️ Официальные репозитории</h3>
|
||||
|
||||
| Проект | Stars | Описание |
|
||||
| :--- | :--- | :--- |
|
||||
| **[opencode](https://github.com/anomalyco/opencode)** |  | Официальный AI-кодинг-агент Opencode. |
|
||||
| **[opencode-sdk-js](https://github.com/anomalyco/opencode-sdk-js)** |  | Официальный JavaScript/TypeScript SDK для Opencode. |
|
||||
| **[opencode-sdk-go](https://github.com/anomalyco/opencode-sdk-go)** |  | Официальный Go SDK для Opencode. |
|
||||
| **[opencode-sdk-python](https://github.com/anomalyco/opencode-sdk-python)** |  | Официальный Python SDK для Opencode. |
|
||||
|
||||
<br>
|
||||
|
||||
<div id="plugins"></div>
|
||||
|
||||
<details open>
|
||||
<summary><strong>🧩 ПЛАГИНЫ</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 Содержание списка плагинов автоматически генерируется из основного README на английском.
|
||||
> Полный список см. в [English README](README.md#plugins).
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ Добавить плагин через PR</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="themes"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>🎨 ТЕМЫ</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 Содержание списка тем автоматически генерируется из основного README на английском.
|
||||
> Полный список см. в [English README](README.md#themes).
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ Добавить тему через PR</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="agents"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>🤖 АГЕНТЫ</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 Содержание списка агентов автоматически генерируется из основного README на английском.
|
||||
> Полный список см. в [English README](README.md#agents).
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ Добавить агента через PR</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="projects"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>🛠 ПРОЕКТЫ</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 Содержание списка проектов автоматически генерируется из основного README на английском.
|
||||
> Полный список см. в [English README](README.md#projects).
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ Добавить проект через PR</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="resources"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>📚 РЕСУРСЫ</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 Содержание списка ресурсов автоматически генерируется из основного README на английском.
|
||||
> Полный список см. в [English README](README.md#resources).
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ Добавить ресурс через PR</b></a>
|
||||
</details>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div align="center">
|
||||
<h3>🤝 Участие</h3>
|
||||
Нашли отличный проект для Opencode? <br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>Отправьте Pull Request</b></a>, чтобы добавить его в список!
|
||||
<br><br>
|
||||
<sub>Выпущено под лицензией <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal</a>.</sub>
|
||||
</div>
|
||||
+139
@@ -0,0 +1,139 @@
|
||||
<!-- HEADER -->
|
||||
<div align="center">
|
||||
|
||||
<br>
|
||||
<!-- LOGO -->
|
||||
<img src="https://github.com/user-attachments/assets/aced1e8e-e6be-485a-9015-b822d01ab064" alt="Awesome Opencode" />
|
||||
<br><br>
|
||||
|
||||
<!-- TITLE -->
|
||||
<h1>Awesome Opencode</h1>
|
||||
|
||||
<!-- BADGES -->
|
||||
<p>
|
||||
<a href="https://github.com/sindresorhus/awesome"><img src="https://cdn.rawgit.com/sindresorhus/awesome/d7305f38d29fed78fa85652e3a63e154dd8e8829/media/badge.svg" height="28" alt="Awesome" /></a>
|
||||
|
||||
<a href="https://github.com/anomalyco/opencode"><img src="https://img.shields.io/github/stars/anomalyco/opencode?style=social" height="28" alt="Opencode Stars" /></a>
|
||||
</p>
|
||||
|
||||
<!-- LANGUAGE SWITCHER -->
|
||||
<p>
|
||||
<a href="README.md"><img src="https://img.shields.io/badge/EN-English-blue" height="22" alt="English" /></a>
|
||||
|
||||
<a href="README.zh-CN.md"><img src="https://img.shields.io/badge/中文-简体-green" height="22" alt="简体中文" /></a>
|
||||
|
||||
<a href="README.ru-RU.md"><img src="https://img.shields.io/badge/Русский-версия-orange" height="22" alt="Русский" /></a>
|
||||
</p>
|
||||
|
||||
<br>
|
||||
|
||||
<!-- DESCRIPTION -->
|
||||
<h3>Opencode 插件、主题、智能体和资源的精选列表。</h3>
|
||||
<h3>Opencode 是终端上的 AI 编程智能体,由 <a href="https://github.com/anomalyco">Anomaly</a> 团队打造。</h3>
|
||||
|
||||
<br>
|
||||
|
||||
[**官方仓库**](#官方仓库) • [**插件**](#plugins) • [**主题**](#themes) • [**智能体**](#agents) • [**项目**](#projects) • [**资源**](#resources)
|
||||
|
||||
<br>
|
||||
<hr>
|
||||
|
||||
</div>
|
||||
|
||||
<!-- CONTENT -->
|
||||
|
||||
<div id="官方仓库"></div>
|
||||
|
||||
<h3>⭐️ 官方仓库</h3>
|
||||
|
||||
| 项目 | Stars | 描述 |
|
||||
| :--- | :--- | :--- |
|
||||
| **[opencode](https://github.com/anomalyco/opencode)** |  | 官方 Opencode AI 编程智能体。 |
|
||||
| **[opencode-sdk-js](https://github.com/anomalyco/opencode-sdk-js)** |  | Opencode 官方 JavaScript/TypeScript SDK。 |
|
||||
| **[opencode-sdk-go](https://github.com/anomalyco/opencode-sdk-go)** |  | Opencode 官方 Go SDK。 |
|
||||
| **[opencode-sdk-python](https://github.com/anomalyco/opencode-sdk-python)** |  | Opencode 官方 Python SDK。 |
|
||||
|
||||
<br>
|
||||
|
||||
<div id="plugins"></div>
|
||||
|
||||
<details open>
|
||||
<summary><strong>🧩 插件</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 插件列表由英文主 README 自动生成。
|
||||
> 完整列表请查看 [English README](README.md#plugins)。
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ 通过 PR 添加插件</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="themes"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>🎨 主题</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 主题列表由英文主 README 自动生成。
|
||||
> 完整列表请查看 [English README](README.md#themes)。
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ 通过 PR 添加主题</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="agents"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>🤖 智能体</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 智能体列表由英文主 README 自动生成。
|
||||
> 完整列表请查看 [English README](README.md#agents)。
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ 通过 PR 添加智能体</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="projects"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>🛠 项目</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 项目列表由英文主 README 自动生成。
|
||||
> 完整列表请查看 [English README](README.md#projects)。
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ 通过 PR 添加项目</b></a>
|
||||
</details>
|
||||
|
||||
<br>
|
||||
|
||||
<div id="resources"></div>
|
||||
|
||||
<details>
|
||||
<summary><strong>📚 资源</strong></summary>
|
||||
<br>
|
||||
|
||||
> 📖 资源列表由英文主 README 自动生成。
|
||||
> 完整列表请查看 [English README](README.md#resources)。
|
||||
|
||||
<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>➕ 通过 PR 添加资源</b></a>
|
||||
</details>
|
||||
|
||||
<br><br>
|
||||
|
||||
<div align="center">
|
||||
<h3>🤝 贡献</h3>
|
||||
发现了优秀的 Opencode 相关项目?<br>
|
||||
<a href="https://github.com/Heretek-AI/awesome-opencode/blob/main/contributing.md"><b>提交 Pull Request</b></a> 将其添加到列表中!
|
||||
<br><br>
|
||||
<sub>基于 <a href="https://creativecommons.org/publicdomain/zero/1.0/">CC0 1.0 Universal</a> 发布。</sub>
|
||||
</div>
|
||||
+53
-42
@@ -1,60 +1,71 @@
|
||||
# Contribution Guidelines
|
||||
|
||||
Thank you for contributing to `awesome-opencode`! Add your entries via YAML files—no need to edit README.md directly.
|
||||
Thank you for contributing to `awesome-opencode`! Every entry is a YAML file under `data/`; the README and the [search site](https://heretek-ai.github.io/awesome-opencode/) are generated from those files. **Never edit `README.md` directly**: PRs that do are rejected by the `validate` check.
|
||||
|
||||
## How to Add an Entry
|
||||
## Option 1: the issue form (recommended)
|
||||
|
||||
### Step 1: Fork & Clone
|
||||
[Open an "Add an entry" issue](https://github.com/Heretek-AI/awesome-opencode/issues/new?template=add-entry.yml). A bot validates the fields, checks OpenCode V2 compatibility for plugins, comments with the result, and opens the pull request for you. To fix something, edit the issue; the PR updates itself.
|
||||
|
||||
```bash
|
||||
git clone https://github.com/YOUR-USERNAME/awesome-opencode.git
|
||||
cd awesome-opencode
|
||||
```
|
||||
## Option 2: a pull request
|
||||
|
||||
### Step 2: Create YAML File
|
||||
1. Fork and clone the repo, then run `npm ci`.
|
||||
2. Create the entry. The scaffolder writes a correctly formatted file and runs the V2 check:
|
||||
|
||||
Create a YAML file in the appropriate category folder under `data/`:
|
||||
- `data/plugins/` - OpenCode plugins and extensions
|
||||
- `data/themes/` - Color schemes and visual themes
|
||||
- `data/agents/` - AI agents and subagents
|
||||
- `data/projects/` - Tools, GUIs, integrations, and utilities
|
||||
- `data/resources/` - Guides, templates, and configurations
|
||||
```bash
|
||||
npm run new -- --category plugins --repo https://github.com/owner/repo \
|
||||
--tagline "Short summary" --topics memory,context [--npm package-name] [--path packages/x]
|
||||
```
|
||||
|
||||
**Filename:** kebab-case (e.g., `my-plugin.yaml`)
|
||||
Or write `data/<category>/<name>.yaml` by hand (kebab-case filename):
|
||||
|
||||
### Step 3: Add YAML Content
|
||||
```yaml
|
||||
name: Quota Board
|
||||
repo: https://github.com/owner/opencode-quota-board
|
||||
npm: opencode-quota-board
|
||||
tagline: Provider quotas and reset countdowns in the OpenCode sidebar
|
||||
description: Adds quota bars, reset countdowns and credit balances to the OpenCode V2 TUI.
|
||||
kind: plugin
|
||||
topics:
|
||||
- cost
|
||||
- providers
|
||||
compat: v2
|
||||
```
|
||||
|
||||
```yaml
|
||||
name: Your Plugin Name
|
||||
repo: https://github.com/owner/repo-name
|
||||
tagline: Short punchy summary (max 120 chars, shown in collapsed view)
|
||||
description: Longer description explaining what it does and why it's useful.
|
||||
```
|
||||
3. Run `npm run validate`, then open the PR. CI runs the same checks and comments with anything to fix.
|
||||
|
||||
### Step 4: Submit PR
|
||||
## Fields
|
||||
|
||||
```bash
|
||||
git checkout -b add-my-plugin
|
||||
git add data/plugins/my-plugin.yaml
|
||||
git commit -m "docs: add my-plugin to plugins"
|
||||
git push origin add-my-plugin
|
||||
```
|
||||
| Field | Required | Notes |
|
||||
| :--- | :--- | :--- |
|
||||
| `name` | yes | Max 80 characters |
|
||||
| `repo` | yes | Repository **root** URL (GitHub, GitLab, Codeberg, Gitee; gists allowed). No `/tree/`, `/blob/`, npm pages or websites |
|
||||
| `path` | no | Folder inside a monorepo, e.g. `packages/my-plugin` |
|
||||
| `npm` | no | Package name; strongly recommended for plugins (used for the V2 check and health checks) |
|
||||
| `tagline` | yes | Max 120 characters. Quote it if it contains `: ` (e.g. `tagline: "Plain: no jargon"`) |
|
||||
| `description` | yes | Max 1500 characters |
|
||||
| `kind` | yes | `plugin`, `theme`, `agent`, `skill`, `mcp-server`, `client`, `tool`, `config`, `guide` or `fork` |
|
||||
| `topics` | yes | 1–3 of: memory, context, orchestration, workflow, providers, cost, notifications, sessions, code-quality, security, git, remote, web, ui, voice, media, docs, environment, observability, integrations, code-intel, prompting, domain. The first is used for README grouping |
|
||||
| `compat` | plugins | `v2`, `v1` or `unknown`; CI verifies it. Other categories may omit it |
|
||||
| `also` | no | Secondary kinds, e.g. `[mcp-server]` for a plugin that also ships an MCP server |
|
||||
| `scope`, `tags`, `min_version`, `homepage`, `installation` | no | See [docs/schema-design.md](docs/schema-design.md) |
|
||||
|
||||
Open a Pull Request on GitHub.
|
||||
Unknown fields are rejected, so typos like `repository:` or `install:` are caught.
|
||||
|
||||
## Entry Requirements
|
||||
Which category? `plugins` for OpenCode plugin packages, `themes` for color themes, `agents` for agent configs and skill packs, `projects` for clients, GUIs, MCP servers, tools and forks, `resources` for guides, configs and starters.
|
||||
|
||||
- [ ] **Relevant** - Directly related to OpenCode
|
||||
- [ ] **Public** - Repository is publicly accessible
|
||||
- [ ] **Maintained** - Active commits within the last 6 months
|
||||
- [ ] **Unique** - Not a duplicate of existing entry
|
||||
- [ ] **Complete** - All required fields included
|
||||
## What gets accepted
|
||||
|
||||
## What Happens After PR?
|
||||
See the [catalog policy](docs/policy.md). In short:
|
||||
|
||||
1. **Validation runs** - Automated checks verify YAML format
|
||||
2. **Maintainer review** - Content and relevance verified
|
||||
3. **Merge** - Once approved
|
||||
4. **README auto-generates** - List updates automatically
|
||||
- **Relevant**: works with OpenCode.
|
||||
- **Public**: the repository is public and not archived.
|
||||
- **V2 for new plugins**: depends on `@opencode/plugin` and uses `Plugin.define`. V1 plugin PRs are held with the `needs-v2` label; a nightly job re-checks them and unblocks the PR automatically once the plugin migrates.
|
||||
- **Unique**: one entry per repository (per `path` for monorepos).
|
||||
- **No crypto**: no cryptocurrency, token or trading projects.
|
||||
|
||||
No need to edit README.md—it regenerates from YAML files.
|
||||
## What happens after you submit
|
||||
|
||||
1. **`validate` check**: schema, duplicates, generated-file edits and the V2 check. Required to merge.
|
||||
2. **Triage**: a bot labels the PR (`ready`, `needs-v2`, `needs-metadata` or `needs-human`) and comments with the results.
|
||||
3. **Maintainer review and merge.**
|
||||
4. **README, registry and search site regenerate automatically.**
|
||||
@@ -2,3 +2,7 @@ name: Agentic
|
||||
repo: https://github.com/Cluster444/agentic
|
||||
tagline: Modular AI agents
|
||||
description: Modular AI agents and commands for structured software development with opencode.
|
||||
kind: agent
|
||||
topics:
|
||||
- orchestration
|
||||
compat: n/a
|
||||
@@ -0,0 +1,8 @@
|
||||
name: AwareCode
|
||||
repo: https://github.com/Wudi12317/aware-code
|
||||
tagline: Documentation-aware coding protocol for OpenCode
|
||||
description: A 5-phase meta-skill that enforces documentation-first coding. Scans project docs before writing code, remembers root causes of errors, reviews code quality and security, synchronizes docs after changes, and outputs structured summaries. Designed for OpenCode's skill system.
|
||||
kind: skill
|
||||
topics:
|
||||
- docs
|
||||
compat: n/a
|
||||
@@ -2,3 +2,7 @@ name: Claude Subagents
|
||||
repo: https://github.com/VoltAgent/awesome-claude-code-subagents
|
||||
tagline: Claude Code subagents
|
||||
description: Comprehensive reference repository for production-ready Claude Code subagents.
|
||||
kind: agent
|
||||
topics:
|
||||
- orchestration
|
||||
compat: n/a
|
||||
@@ -1,13 +1,12 @@
|
||||
name: deliberation
|
||||
repo: https://github.com/antonbabenko/deliberation
|
||||
tagline: Ask GPT, Gemini, Grok, or OpenRouter for a second opinion or a fix, as expert subagents over MCP
|
||||
description: >-
|
||||
Get a delegated second opinion or an actual fix from GPT (Codex), Gemini, Grok (xAI),
|
||||
or OpenRouter. Seven expert subagents - Architect, Plan Reviewer, Scope Analyst, Code
|
||||
Reviewer, Security Analyst, Researcher, and Debugger - plus the ask-gpt, ask-gemini,
|
||||
ask-grok, ask-openrouter, ask-all, and consensus commands. Each one can advise
|
||||
(read-only) or implement. ask-all asks every model at once and compares the answers;
|
||||
consensus runs an arbiter loop until the models agree.
|
||||
description: Get a delegated second opinion or an actual fix from GPT (Codex), Gemini, Grok (xAI), or OpenRouter. Seven expert subagents - Architect, Plan Reviewer, Scope Analyst, Code Reviewer, Security Analyst, Researcher, and Debugger - plus the ask-gpt, ask-gemini, ask-grok, ask-openrouter, ask-all, and consensus commands. Each one can advise (read-only) or implement. ask-all asks every model at once and compares the answers; consensus runs an arbiter loop until the models agree.
|
||||
kind: agent
|
||||
topics:
|
||||
- orchestration
|
||||
- providers
|
||||
compat: n/a
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
|
||||
@@ -2,3 +2,8 @@ name: Gem Team
|
||||
repo: https://github.com/mubaidr/gem-team
|
||||
tagline: Self-Learning Multi-agent orchestration harness for spec-driven development and automated verification.
|
||||
description: Self-Learning Multi-agent orchestration harness for spec-driven development and automated verification.
|
||||
kind: agent
|
||||
topics:
|
||||
- orchestration
|
||||
- workflow
|
||||
compat: n/a
|
||||
@@ -0,0 +1,9 @@
|
||||
name: Goblin-Logic-Manager
|
||||
repo: https://github.com/es-3581100/Goblin-Logic-Manager
|
||||
tagline: Model-aware OpenCode agent with skill routing, bounded execution, durable closeout, and cold-session recovery.
|
||||
description: A model-expandable OpenCode development-agent system that separates stable development behavior from thin model-specific overlays, with skill routing, bounded waits, evidence-backed verification, durable chunk closeout, and cold-session recovery.
|
||||
kind: agent
|
||||
topics:
|
||||
- workflow
|
||||
- providers
|
||||
compat: n/a
|
||||
@@ -0,0 +1,8 @@
|
||||
name: iamhumans
|
||||
repo: https://github.com/hoainho/iamhumans
|
||||
tagline: Teaches Claude to stop performing empathy and start being present. 99/100 on a 100-case eval.
|
||||
description: An opencode skill (~200 lines) that removes sycophancy, lecturing, and performed empathy from Claude's emotional responses. Teaches the shape of human conversation — when to be short, when to sit with something, when the right reply is "oh." Ships with a 100-case eval corpus and a baseline comparison showing +89.4 point skill delta over default Claude (1/20 PASS baseline vs 99/100 with skill). Load for human-shaped conversations (grief, decisions, vent, small talk). Don't load for code generation.
|
||||
kind: skill
|
||||
topics:
|
||||
- prompting
|
||||
compat: n/a
|
||||
@@ -0,0 +1,21 @@
|
||||
name: llm-roundtable
|
||||
repo: https://github.com/dinhkarate/llm-roundtable
|
||||
homepage: https://dinhkarate.github.io/llm-roundtable/
|
||||
tagline: Six models from five vendors vote on choices, plans and PRs when an unattended agent would stop to ask you
|
||||
description: "Agent Skill plus a stdlib-only Python script (MIT). When an unattended coding agent would stop to ask its user to choose, approve, or review, it convenes a council through each vendor's CLI: Claude Fable and Opus (claude), GPT (codex), Grok (grok), Gemini (agy), and the newest free OpenCode model (opencode, no login needed). Round 1 is blind, round 2 is an anonymous cross-examination (M1..Mn), peers rate each other's evidence 0-2, and a weighted vote decides with no chairman model; an undecided council falls back to a safe default. Seats run read-only and sandboxed. Review mode returns APPROVE/CHANGES/REJECT for plans and PRs. Runs from OpenCode as the host too; --private drops free-model seats that may train on prompts."
|
||||
kind: skill
|
||||
topics:
|
||||
- orchestration
|
||||
- code-quality
|
||||
compat: n/a
|
||||
tags:
|
||||
- skill
|
||||
- multi-model
|
||||
- council
|
||||
- voting
|
||||
- code-review
|
||||
installation: |
|
||||
```bash
|
||||
npx skills add dinhkarate/llm-roundtable --skill llm-roundtable
|
||||
npx llm-roundtable doctor --probe
|
||||
```
|
||||
@@ -1,4 +1,9 @@
|
||||
name: NERV
|
||||
repo: https://github.com/juanmanueldaza/nerv
|
||||
repo: https://github.com/juanmanueldaza/n3rv
|
||||
tagline: Invisible engineering infrastructure for AI agents
|
||||
description: Spec-Driven Development pipeline, A2A task delegation hub, persistent semantic memory (MAGI), and 9 specialized subagents for OpenCode. Scaffolds 45+ files via `nerv init` including SDD skills, slash commands, MCP servers, and lifecycle plugins.
|
||||
kind: agent
|
||||
topics:
|
||||
- workflow
|
||||
- orchestration
|
||||
compat: n/a
|
||||
@@ -0,0 +1,9 @@
|
||||
name: OpenCode Agent Orchestration Kit
|
||||
repo: https://github.com/jcarlosrodicio/opencode-agent-orchestration-kit
|
||||
tagline: Structured product-development workflows
|
||||
description: A reproducible OpenCode configuration kit with specialized agents, structured handoffs for research, design, specification, implementation, and review, plus local skills, validation checks, safe installation, and optional design integrations.
|
||||
kind: skill
|
||||
topics:
|
||||
- orchestration
|
||||
- workflow
|
||||
compat: n/a
|
||||
@@ -1,4 +1,8 @@
|
||||
name: Opencode Agents
|
||||
repo: https://github.com/darrenhinde/opencode-agents
|
||||
repo: https://github.com/darrenhinde/OpenAgentsControl
|
||||
tagline: Enhanced workflows
|
||||
description: A set of opencode configurations, prompts, agents, and plugins for enhanced development workflows.
|
||||
kind: agent
|
||||
topics:
|
||||
- workflow
|
||||
compat: v1
|
||||
@@ -1,4 +1,8 @@
|
||||
name: Redstone
|
||||
repo: https://github.com/BackGwa/Redstone
|
||||
tagline: AI-built Minecraft plugins
|
||||
description: an Opencode agent that simplifies Minecraft plugin development and deployment.
|
||||
description: an Opencode agent that simplifies Minecraft plugin development and deployment.
|
||||
kind: agent
|
||||
topics:
|
||||
- domain
|
||||
compat: n/a
|
||||
@@ -0,0 +1,9 @@
|
||||
name: opencode-roundtable
|
||||
repo: https://github.com/NeoMei/opencode-roundtable
|
||||
tagline: Multi-agent roundtable discussion skill with per-member model routing and meeting minutes
|
||||
description: A roundtable discussion (圆桌讨论) skill for opencode — TUI, CLI and Desktop. Pick members one by one via inline cards (role, persona, model — any provider); each member is a real subagent run via opencode run -m provider/model, a neutral host summarizes each round, and on termination a structured meeting-minutes Markdown file is written. Uses only built-in primitives — no plugin required.
|
||||
kind: skill
|
||||
topics:
|
||||
- orchestration
|
||||
- providers
|
||||
compat: n/a
|
||||
@@ -0,0 +1,49 @@
|
||||
name: PDCA Skills
|
||||
repo: https://github.com/AlexeyShirshov/skills
|
||||
tagline: "PDCA orchestration skills: PLAN → DO → CHECK → ACT with evidence-based verification"
|
||||
description: |-
|
||||
A family of four OpenCode skills that drive a task through a PDCA cycle
|
||||
(PLAN → DO → CHECK → ACT) with transition gates, evidence-based verification,
|
||||
escalation accounting, durable status, and recovery after compaction.
|
||||
|
||||
- **pdca** — domain-neutral cycle; the task's PLAN selects the means and the verification method.
|
||||
- **pdca-coder** — stack-agnostic executor for software tasks (code, tests, docs, refactoring, config).
|
||||
- **pdca-dotnet** — the same cycle tuned for .NET/C# repositories.
|
||||
- **pdca-collection** — a batch of tasks run as parallel PDCA lanes (worktree per group, `--no-ff` merge of completed groups).
|
||||
|
||||
Roles (planner, coder, check, scout, escalate) are bound by the host, so the
|
||||
skills stay model- and provider-neutral.
|
||||
kind: skill
|
||||
topics:
|
||||
- workflow
|
||||
- code-quality
|
||||
compat: n/a
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
tags:
|
||||
- skills
|
||||
- pdca
|
||||
- orchestration
|
||||
- subagents
|
||||
- workflow
|
||||
- verification
|
||||
min_version: 1.0.0
|
||||
installation: |
|
||||
Copy the skills you want into an OpenCode skills directory.
|
||||
|
||||
Global (all projects):
|
||||
```sh
|
||||
git clone https://github.com/AlexeyShirshov/skills
|
||||
cp -r skills/opencode/pdca skills/opencode/pdca-coder \
|
||||
skills/opencode/pdca-dotnet skills/opencode/pdca-collection \
|
||||
~/.config/opencode/skills/
|
||||
```
|
||||
|
||||
Per project:
|
||||
```sh
|
||||
mkdir -p .opencode/skills
|
||||
cp -r skills/opencode/pdca* .opencode/skills/
|
||||
```
|
||||
|
||||
Invoke a skill by name, for example `pdca-coder` for "by the cycle" code tasks.
|
||||
@@ -2,3 +2,7 @@ name: Python Expert Agent for OpenCode
|
||||
repo: https://github.com/amrahman90/python-expert-agent
|
||||
tagline: Python Expert Agent toolkit for OpenCode with subagents and skills
|
||||
description: A custom configurable agent toolkit includes 1 Primary Custom Agent python-expert with intelligent skill loading, Predefined Specialized Subagents for Code generation, review, testing, and exploration, On-Demand Skills for Python development projects, Context Files for Standards, patterns, and security guidelines.
|
||||
kind: agent
|
||||
topics:
|
||||
- code-intel
|
||||
compat: n/a
|
||||
@@ -0,0 +1,18 @@
|
||||
name: review-pro
|
||||
repo: https://github.com/tufantunc/review-pro
|
||||
tagline: Tiered code review - triage picks the relevant specialists, they run in parallel, synthesis returns one verdict
|
||||
description: Splits code review into three stages. A triage pass classifies the diff and selects which of thirteen specialist reviewers to dispatch - security, correctness, craft, ai-antipatterns, dry, performance, backend, frontend, a11y, db, api-contract, tests, spec - each with its own rubric and scoped context. The selected reviewers run in parallel, then a synthesis pass dedups overlapping findings, resolves conflicts by domain ownership, calibrates severity, and emits one verdict. Sixteen stack packs add language and framework specific signals from the repository's .review-pro/ directory.
|
||||
kind: agent
|
||||
topics:
|
||||
- code-quality
|
||||
- orchestration
|
||||
compat: n/a
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
tags:
|
||||
- code-review
|
||||
- subagents
|
||||
- skills
|
||||
- security
|
||||
- ai-code
|
||||
@@ -0,0 +1,9 @@
|
||||
name: SEC-AF
|
||||
repo: https://github.com/Agent-Field/sec-af
|
||||
tagline: Multi-agent security auditor — orchestrates a 250+ agent swarm that proves exploitability, SARIF for CI
|
||||
description: Multi-agent security auditor. Orchestrates a 250+ agent swarm to find vulnerabilities and prove they're exploitable — not just flag patterns. SARIF output for GitHub Actions integration. Apache 2.0.
|
||||
kind: agent
|
||||
topics:
|
||||
- security
|
||||
- orchestration
|
||||
compat: n/a
|
||||
@@ -1,7 +1,12 @@
|
||||
name: server-manager
|
||||
repo: https://github.com/workdocyeye/server-manager
|
||||
homepage: https://github.com/workdocyeye/server-manager
|
||||
tagline: Non-blocking background server management — start, track, and stop local dev servers without blocking your AI session.
|
||||
description: Start, track, and stop local dev servers in the background — without blocking your AI conversation. Supports Node.js, Python, Go, .NET, Java, Rust, PHP and any framework that runs a dev server. JSON state persistence, per-project log files, HTTP health checks, and log tail/grep for debugging.
|
||||
kind: agent
|
||||
topics:
|
||||
- environment
|
||||
compat: n/a
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
@@ -16,4 +21,3 @@ installation: |
|
||||
- OpenCode: `~/.config/opencode/skills/server-manager/`
|
||||
- Claude Code: `~/.claude/skills/server-manager/`
|
||||
- Project-level: `.opencode/skills/` or `.claude/skills/` in your project root
|
||||
homepage: https://github.com/workdocyeye/server-manager
|
||||
@@ -0,0 +1,19 @@
|
||||
name: ShipFrame
|
||||
repo: https://github.com/juanitourquiza/shipframe
|
||||
homepage: https://shipframe.hackeruna.com/
|
||||
tagline: AI coding workflows for OpenCode, Claude Code, and Codex
|
||||
description: AI coding workflow toolkit with installable OpenCode skills, converted agents, project profiles, release evidence, and disciplined PR/MR workflows.
|
||||
kind: skill
|
||||
topics:
|
||||
- workflow
|
||||
compat: n/a
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
tags:
|
||||
- workflow
|
||||
- skills
|
||||
- agents
|
||||
- release
|
||||
- codex
|
||||
- claude-code
|
||||
@@ -0,0 +1,8 @@
|
||||
name: StringRay
|
||||
repo: https://github.com/htafolla/StringRay
|
||||
tagline: OpenCode orchestration framework with AI agents
|
||||
description: A production-ready orchestration framework for OpenCode with multi-agent coordination, enforcement pipeline, codex compliance, and intelligent task routing. Includes 21 built-in processors, 60+ codex validators, and autonomous reporting.
|
||||
kind: agent
|
||||
topics:
|
||||
- orchestration
|
||||
compat: n/a
|
||||
@@ -0,0 +1,10 @@
|
||||
name: SWE-AF
|
||||
repo: https://github.com/Agent-Field/SWE-AF
|
||||
tagline: Autonomous software engineering agent team — orchestrates a 400+ agent swarm for planning, coding, testing, and review
|
||||
description: Autonomous software engineering agent team. Orchestrates a 400+ agent swarm across the full development lifecycle from a single API call. Apache 2.0.
|
||||
kind: agent
|
||||
topics:
|
||||
- orchestration
|
||||
- workflow
|
||||
- code-quality
|
||||
compat: n/a
|
||||
@@ -15,7 +15,7 @@ When adding a new entry to `data/{category}/`, use the corresponding example as
|
||||
| `data/agents/` | [agent.yaml](agent.yaml) |
|
||||
| `data/projects/` | [project.yaml](project.yaml) |
|
||||
| `data/resources/` | [resource.yaml](resource.yaml) |
|
||||
| `data/forks/` | [fork.yaml](fork.yaml) |
|
||||
| `data/projects/` (`kind: fork`) | [fork.yaml](fork.yaml) |
|
||||
|
||||
## Required vs Optional Fields
|
||||
|
||||
|
||||
@@ -16,6 +16,10 @@ description: A custom agent configuration for security-focused code review.
|
||||
- Predefined tools for vulnerability scanning
|
||||
- Skills for OWASP Top 10 detection
|
||||
|
||||
kind: agent # 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
|
||||
- orchestration
|
||||
|
||||
# ============================================================================
|
||||
# OPTIONAL FIELDS
|
||||
# ============================================================================
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Example Fork Entry
|
||||
# Forks are modified builds of OpenCode with custom features or patches.
|
||||
# Place actual entries in: data/forks/your-fork-name.yaml
|
||||
# Place actual entries in: data/projects/your-fork-name.yaml
|
||||
|
||||
# ============================================================================
|
||||
# REQUIRED FIELDS
|
||||
@@ -17,6 +17,10 @@ description: A fork of OpenCode designed for enterprise environments.
|
||||
- Custom model routing
|
||||
- Air-gapped deployment support
|
||||
|
||||
kind: fork # 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
|
||||
- environment
|
||||
|
||||
# ============================================================================
|
||||
# OPTIONAL FIELDS
|
||||
# ============================================================================
|
||||
|
||||
@@ -15,6 +15,11 @@ description: A longer description explaining the plugin in detail.
|
||||
- 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
|
||||
# ============================================================================
|
||||
|
||||
@@ -18,6 +18,10 @@ description: A standalone web application for monitoring and managing
|
||||
- Token usage analytics
|
||||
- Multi-project overview
|
||||
|
||||
kind: client # 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
|
||||
- sessions
|
||||
|
||||
# ============================================================================
|
||||
# OPTIONAL FIELDS
|
||||
# ============================================================================
|
||||
|
||||
@@ -17,6 +17,10 @@ description: A Model Context Protocol (MCP) server that provides
|
||||
- Read-only query execution
|
||||
- Schema introspection
|
||||
|
||||
kind: guide # 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
|
||||
- docs
|
||||
|
||||
# ============================================================================
|
||||
# OPTIONAL FIELDS
|
||||
# ============================================================================
|
||||
|
||||
@@ -13,6 +13,10 @@ description: A dark theme designed for extended coding sessions.
|
||||
Features high contrast syntax highlighting and
|
||||
carefully chosen colors to reduce eye strain.
|
||||
|
||||
kind: theme # 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
|
||||
- ui
|
||||
|
||||
# ============================================================================
|
||||
# OPTIONAL FIELDS
|
||||
# ============================================================================
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
name: AccInt
|
||||
repo: https://github.com/maxbaluev/accreted-intelligence
|
||||
tagline: Local Work Model memory for OpenCode agents
|
||||
description: Accreted scored memory for OpenCode sessions with MCP retrieval and action verbs, lifecycle hooks, and cross-project acc.db continuity for agent work.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
compat: v1
|
||||
@@ -0,0 +1,17 @@
|
||||
name: Aegis-DevOps
|
||||
repo: https://github.com/moneytool/aegis-devops
|
||||
tagline: Blocks kubectl delete, terraform destroy or DROP TABLE unless your signed policy allows it
|
||||
description: A tool.execute.before plugin that checks every bash command OpenCode wants to run (kubectl, terraform/tofu, aws/az/gcloud, helm, argocd, git, SQL) against a signed, authority-checked policy before it runs. A rule only counts if it hasn't been edited since it was signed and its author was allowed to write that kind of rule, so a line planted in a ticket can't become policy. Only active in projects with a .aegis/ policy. Install with `pip install aegis-devops && aegis install opencode`.
|
||||
kind: plugin
|
||||
topics:
|
||||
- security
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
tags:
|
||||
- security
|
||||
- devops
|
||||
- kubernetes
|
||||
- terraform
|
||||
- guardrails
|
||||
@@ -0,0 +1,49 @@
|
||||
name: Aftermath
|
||||
repo: https://github.com/moah0911/aftermath
|
||||
tagline: Post-failure recovery for agents — stop, revert cheap damage, return to last-known-good
|
||||
description: Aftermath is a post-failure recovery skill for OpenCode. When something breaks — a test suite goes green to red, the same error recurs, a destructive command looms, or the user says "you broke it" — it stops forward motion, reverts the actual bad hunk instead of patching around it, and returns the session to last-known-good. Includes four intensity levels (lite/full/ultra/off), four slash commands (status, revert, audit, log), and lifecycle tripwires for test failures, repeat errors, and destructive commands.
|
||||
kind: plugin
|
||||
topics:
|
||||
- security
|
||||
- workflow
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
tags:
|
||||
- productivity
|
||||
- testing
|
||||
- debugging
|
||||
- safety
|
||||
installation: |
|
||||
## Prerequisites
|
||||
- OpenCode 1.0.0 or later
|
||||
- Node.js 18+
|
||||
- git
|
||||
|
||||
## Installation
|
||||
|
||||
### Via curl (global)
|
||||
```bash
|
||||
curl -fsSL https://raw.githubusercontent.com/moah0911/aftermath/main/scripts/install.sh \
|
||||
| bash -s --
|
||||
```
|
||||
|
||||
### Via npm
|
||||
Add to your `opencode.json`:
|
||||
```json
|
||||
{ "plugin": ["@moah0911/aftermath"] }
|
||||
```
|
||||
|
||||
### Project-only
|
||||
```bash
|
||||
git clone https://github.com/moah0911/aftermath
|
||||
node aftermath/scripts/install.js --project
|
||||
```
|
||||
|
||||
Restart OpenCode after installing (config loads at startup).
|
||||
|
||||
## Removal
|
||||
```bash
|
||||
node scripts/install.js --uninstall
|
||||
```
|
||||
@@ -1,4 +1,8 @@
|
||||
name: Agent Memory
|
||||
repo: https://github.com/joshuadavidthomas/opencode-agent-memory
|
||||
tagline: Letta-inspired memory
|
||||
description: Gives the agent persistent, self-editable memory blocks inspired by Letta agents.
|
||||
repo: https://github.com/Ghilteras/opencode-agent-memory
|
||||
tagline: Persistent, self-editable memory and a local semantic journal
|
||||
description: Maintained OpenCode plugin providing shared global and project memory blocks, dedicated memory tools, and an opt-in append-only journal with local multilingual semantic search.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
compat: v2
|
||||
@@ -2,3 +2,7 @@ name: Agent Skills (JDT)
|
||||
repo: https://github.com/joshuadavidthomas/opencode-agent-skills
|
||||
tagline: Dynamic skills loader
|
||||
description: Dynamic skills loader that discovers skills from project, user, and plugin directories.
|
||||
kind: plugin
|
||||
topics:
|
||||
- prompting
|
||||
compat: v1
|
||||
@@ -0,0 +1,10 @@
|
||||
name: AIDevOps
|
||||
repo: https://github.com/marcusquinn/aidevops
|
||||
homepage: https://aidevops.sh
|
||||
tagline: AI DevOps framework and OpenCode plugin
|
||||
description: OpenCode-first AI DevOps framework with agents, skills, workflows, safety hooks, memory, GitHub worker dispatch, and integrations for code, infrastructure, content, SEO, and operations.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
- environment
|
||||
compat: v2
|
||||
@@ -0,0 +1,22 @@
|
||||
name: AION
|
||||
repo: https://github.com/ztxtech/aion
|
||||
homepage: https://github.com/ztxtech/aion
|
||||
tagline: Time-series harness with multi-agent review, skills, tools, and hooks
|
||||
description: A compiled TypeScript OpenCode plugin that turns OpenCode into a time-series research harness. Bundles six specialized agents (orchestrator, requirements analyst, information collector, coder, and two critic roles), seventeen skills, twenty-plus tools, and eight coordination protocols into one self-contained bundle installed via a one-command CLI. Enforces a four-layer model (task, workspace, execution, review) with hard gates for data-leakage detection, ablation-backed statistical rigor, and dual-critic governance before any output ships.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
- code-quality
|
||||
compat: v2
|
||||
scope:
|
||||
- project
|
||||
tags:
|
||||
- agents
|
||||
- time-series
|
||||
- research
|
||||
- review
|
||||
- governance
|
||||
- skills
|
||||
- tools
|
||||
- multi-agent
|
||||
min_version: 0.9.0
|
||||
@@ -2,3 +2,7 @@ name: Antigravity Auth
|
||||
repo: https://github.com/NoeFabris/opencode-antigravity-auth
|
||||
tagline: Google Antigravity models
|
||||
description: Use Gemini and Anthropic models for free via Google Antigravity IDE authentication.
|
||||
kind: plugin
|
||||
topics:
|
||||
- providers
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: Antigravity Multi-Auth
|
||||
repo: https://github.com/theblazehen/opencode-antigravity-multi-auth
|
||||
tagline: Multiple Google accounts
|
||||
description: Fork of opencode-antigravity-auth that allows using multiple Google accounts with automatic rotation when rate limited.
|
||||
kind: plugin
|
||||
topics:
|
||||
- providers
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: Autotitle
|
||||
repo: https://github.com/pawelma/opencode-autotitle
|
||||
tagline: AI-powered automatic session naming
|
||||
description: Two-phase session titling - instant keyword titles on user message, refined AI titles after response. Auto-selects cheapest model (flash/haiku/fast), respects custom titles, zero configuration needed.
|
||||
kind: plugin
|
||||
topics:
|
||||
- sessions
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: Background Agents
|
||||
repo: https://github.com/kdcokenny/opencode-background-agents
|
||||
tagline: Async agent delegation
|
||||
description: Claude Code-style background agents with async delegation and context persistence.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: Background
|
||||
repo: https://github.com/zenobi-us/opencode-background
|
||||
tagline: Background process management
|
||||
description: Background process management plugin for opencode.
|
||||
kind: plugin
|
||||
topics:
|
||||
- environment
|
||||
compat: v1
|
||||
@@ -0,0 +1,19 @@
|
||||
name: basemind
|
||||
repo: https://github.com/Goldziher/basemind
|
||||
npm: basemind-opencode
|
||||
tagline: Full AI context layer over MCP — code-map, document RAG, agent memory, web crawl, git history
|
||||
description: Full AI context layer over MCP — tree-sitter code-map, document RAG, shared agent memory, web crawl, and git history. 300+ languages. Published to npm as basemind-opencode (https://www.npmjs.com/package/basemind-opencode).
|
||||
kind: plugin
|
||||
also:
|
||||
- mcp-server
|
||||
topics:
|
||||
- memory
|
||||
- context
|
||||
- code-intel
|
||||
compat: v2
|
||||
installation: |
|
||||
Add to your `opencode.json`:
|
||||
|
||||
```json
|
||||
{ "plugin": ["basemind-opencode@latest"] }
|
||||
```
|
||||
@@ -2,3 +2,8 @@ name: Beads Plugin
|
||||
repo: https://github.com/joshuadavidthomas/opencode-beads
|
||||
tagline: Beads issue tracker integration
|
||||
description: Integration for Steve Yegge's beads issue tracker with /bd-* commands.
|
||||
kind: plugin
|
||||
topics:
|
||||
- integrations
|
||||
- workflow
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: BRHP
|
||||
repo: https://github.com/ZanzyTHEbar/brhp
|
||||
tagline: Persistent planning state
|
||||
description: Structured, persistent planning for OpenCode with local session state, /brhp commands, bounded planner history, and a TUI sidebar.
|
||||
kind: plugin
|
||||
topics:
|
||||
- workflow
|
||||
compat: v1
|
||||
@@ -0,0 +1,9 @@
|
||||
name: cache-stats
|
||||
repo: https://github.com/nmdra/opencode-cache-stats
|
||||
tagline: Showing the active session's cache hit rate in a popup dialog
|
||||
description: This plugin shows the overall cache hit rate, a per-model breakdown, a per subagent breakdown and the associated cost, making it easy to understand cache performance at a glance.
|
||||
kind: plugin
|
||||
topics:
|
||||
- context
|
||||
- observability
|
||||
compat: v1
|
||||
@@ -1,4 +1,8 @@
|
||||
name: CC Safety Net
|
||||
repo: https://github.com/kenryu42/claude-code-safety-net
|
||||
repo: https://github.com/kenryu42/cc-safety-net
|
||||
tagline: Safety net catching destructive commands
|
||||
description: A Claude Code plugin that acts as a safety net, catching destructive git and filesystem commands before they execute.
|
||||
description: A Claude Code plugin that acts as a safety net, catching destructive git and filesystem commands before they execute.
|
||||
kind: plugin
|
||||
topics:
|
||||
- security
|
||||
compat: v2
|
||||
@@ -0,0 +1,18 @@
|
||||
name: Chisle
|
||||
repo: https://github.com/JayPokale/Chisle
|
||||
homepage: https://chisle.jaypokale.me
|
||||
tagline: Cuts token use with terse answers, smallest-code-that-works rules and tool-output compression
|
||||
description: Installs a ruleset for terse answers that keep every decisive fact and a "smallest code that works" ladder, Chisle skills, and a compression plugin that trims oversized tool output before it re-enters the context. The same ruleset ships for Claude Code, Cursor, Codex and Gemini CLI. Install with `npx chisle --only opencode`. MIT, zero dependencies, benchmarks with raw transcripts in the repository.
|
||||
kind: plugin
|
||||
topics:
|
||||
- context
|
||||
- cost
|
||||
- prompting
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
tags:
|
||||
- tokens
|
||||
- cost
|
||||
- context
|
||||
- productivity
|
||||
@@ -1,4 +1,9 @@
|
||||
name: Subagent Reporter
|
||||
repo: https://github.com/raisbecka/opencode-subagent-output
|
||||
tagline: See exactly what your subagents are up to (in the terminal) when invoked during an `opencode run _____` session.
|
||||
description: When opencode run <prompt> is invoked normally, the actions of the primary agent are visible in the terminal, but subagent actions are not. This makes it difficult to follow progress on the prompt, and makes it very difficult to use `opencode run` as part of an unattended process or script. This plugin pipes subagent actions/events directly to stdout, prefixes them with the subagents name, and enumerates subagents when run in parallel for easy identification. This allows the user to follow along in realtime when subagents are running, and effectively trace execution at a later time.
|
||||
description: When opencode run <prompt> is invoked normally, the actions of the primary agent are visible in the terminal, but subagent actions are not. This makes it difficult to follow progress on the prompt, and makes it very difficult to use `opencode run` as part of an unattended process or script. This plugin pipes subagent actions/events directly to stdout, prefixes them with the subagents name, and enumerates subagents when run in parallel for easy identification. This allows the user to follow along in realtime when subagents are running, and effectively trace execution at a later time.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
- observability
|
||||
compat: v1
|
||||
@@ -0,0 +1,10 @@
|
||||
name: codemem
|
||||
repo: https://github.com/kunickiaj/codemem
|
||||
homepage: https://codemem.sh
|
||||
tagline: Persistent coding memory across sessions, machines, and teammates
|
||||
description: Captures coding decisions, discoveries, and fixes, with automatic context injection in OpenCode, Claude Code, and Codex. Includes MCP tools for searching and managing memories, a viewer, optional cross-machine sync, and sharing of selected projects with teammates.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
- sessions
|
||||
compat: v2
|
||||
@@ -2,3 +2,7 @@ name: Command Inject
|
||||
repo: https://github.com/shihyuho/opencode-command-inject
|
||||
tagline: Auto-inject project commands into OpenCode
|
||||
description: Automatically discovers and injects Makefile targets, npm/pnpm/yarn/bun scripts, and local skills at startup. Type / to see and run all project commands.
|
||||
kind: plugin
|
||||
topics:
|
||||
- prompting
|
||||
compat: v1
|
||||
@@ -2,3 +2,8 @@ name: Context Analysis
|
||||
repo: https://github.com/IgorWarzocha/Opencode-Context-Analysis-Plugin
|
||||
tagline: Token usage analysis
|
||||
description: An opencode plugin that provides detailed token usage analysis for your AI sessions.
|
||||
kind: plugin
|
||||
topics:
|
||||
- context
|
||||
- cost
|
||||
compat: v1
|
||||
@@ -0,0 +1,8 @@
|
||||
name: Context Optimizer
|
||||
repo: https://github.com/evermeer/context-optimizer
|
||||
tagline: Coding Agent Context Optimizer Plugin
|
||||
description: Keep your coding agent's context small. When a session gets compacted, Context Optimizer reranks the relevant parts, drops duplicates, and compresses the rest with a local ML pipeline (LLMLingua-2 + Sentence Transformers) — so more of the window stays useful and fewer tokens get billed. Everything runs on your machine.
|
||||
kind: plugin
|
||||
topics:
|
||||
- context
|
||||
compat: v2
|
||||
@@ -0,0 +1,36 @@
|
||||
name: ContextStream
|
||||
repo: https://github.com/contextstream/mcp-server
|
||||
homepage: https://contextstream.io
|
||||
tagline: Shared project context for OpenCode, Cursor, Claude Code, Codex, and Grok via MCP
|
||||
description: Hosted MCP server that keeps coding agents on shared project context across sessions and teammates. Works with OpenCode and other MCP-compatible clients. Endpoint https://mcp.contextstream.io/mcp — Intelligence isn’t the bottleneck. Context is.
|
||||
kind: plugin
|
||||
also:
|
||||
- mcp-server
|
||||
topics:
|
||||
- context
|
||||
- memory
|
||||
compat: v2
|
||||
scope:
|
||||
- global
|
||||
tags:
|
||||
- mcp
|
||||
- context
|
||||
- productivity
|
||||
- collaboration
|
||||
installation: |
|
||||
## Hosted MCP (recommended)
|
||||
|
||||
Add to your OpenCode MCP config:
|
||||
|
||||
```json
|
||||
{
|
||||
"mcp": {
|
||||
"contextstream": {
|
||||
"url": "https://mcp.contextstream.io/mcp"
|
||||
}
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Site: https://contextstream.io
|
||||
OSS server: https://github.com/contextstream/mcp-server
|
||||
@@ -1,7 +1,13 @@
|
||||
name: Crawlberg
|
||||
repo: https://github.com/xberg-io/plugins
|
||||
repo: https://github.com/xberg-io/crawlberg
|
||||
npm: "@xberg-io/opencode-crawlberg"
|
||||
homepage: https://www.npmjs.com/package/@xberg-io/opencode-crawlberg
|
||||
tagline: Web crawling and scraping tools for opencode
|
||||
description: OpenCode plugin exposing crawlberg CLI tools for scraping pages, crawling sites, and mapping URLs to JSON or Markdown.
|
||||
kind: plugin
|
||||
topics:
|
||||
- web
|
||||
compat: v2
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
@@ -10,7 +16,6 @@ tags:
|
||||
- scraping
|
||||
- markdown
|
||||
- cli
|
||||
homepage: https://www.npmjs.com/package/@xberg-io/opencode-crawlberg
|
||||
installation: |
|
||||
Add the package to `opencode.json`:
|
||||
|
||||
|
||||
@@ -2,3 +2,7 @@ name: CrewBee
|
||||
repo: https://github.com/CrewBeeLab/CrewBee
|
||||
tagline: Task-specific Agent Teams for OpenCode
|
||||
description: CrewBee is an independent Agent Team framework for OpenCode. It lets users define reusable task/project-specific Agent Teams, project them into OpenCode agents, and switch between single-agent execution and multi-agent collaboration based on task complexity. It also includes built-in Team templates such as a Coding Team with review flow and completion criteria.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
compat: v1
|
||||
@@ -0,0 +1,9 @@
|
||||
name: Daily Journal
|
||||
repo: https://github.com/jianzhangg/opencode-daily-journal
|
||||
tagline: Auto-journal every conversation into daily/YYYY-MM-DD.md, record-only (never injects)
|
||||
description: "An OpenCode V2 plugin that keeps a daily journal of your conversations. When a session turn finishes, the exchange is summarized into a diary entry and appended to daily/YYYY-MM-DD.md. Record only, never inject: entries are plain Markdown on disk and are never added to session context unless you explicitly ask the agent to read them. Writes are concurrency-safe (file lock + append-only + idempotent markers, so simultaneous sessions never overwrite or duplicate each other), and summaries use a model fallback chain (session model, then other configured models, then a raw excerpt) so nothing is lost when a model is unavailable."
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
- sessions
|
||||
compat: v2
|
||||
@@ -0,0 +1,16 @@
|
||||
name: DataCloak
|
||||
repo: https://github.com/pratikwayal01/datacloak
|
||||
tagline: Swap secrets and PII for realistic fakes before AI sees them; restore originals on return.
|
||||
description: Local-first sensitive-data protection for OpenCode. Cloaks API keys, JWTs, PEMs, env vars, DSNs, emails, phones and IPs with Faker-generated synthetics pre-dispatch, blocks env-dump tool calls, redacts tool output, and auto-restores originals into file writes. Zero-config and fully automatic.
|
||||
kind: plugin
|
||||
topics:
|
||||
- security
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
tags:
|
||||
- security
|
||||
- privacy
|
||||
- secrets
|
||||
- redaction
|
||||
min_version: 1.18.0
|
||||
@@ -0,0 +1,32 @@
|
||||
name: deja
|
||||
repo: https://github.com/vshulcz/deja-vu
|
||||
npm: opencode-deja
|
||||
tagline: Recall what you already did in your other coding agents
|
||||
description: |-
|
||||
opencode remembers its own sessions. deja answers the other question: what you did in Claude Code, Codex, Cursor, Gemini CLI, Zed and fifteen more agents on this machine — including the months before you installed anything.
|
||||
|
||||
A local Go binary indexes the transcripts those agents already wrote to disk, and the plugin gives the model six tools over that index: recall past sessions by error or symbol, read the digest of one session, see which sessions discussed a file before you edit it, ask what this machine actually ran after a given error, and store a decision worth keeping. Recall also arrives unasked — once per session on the system prompt, and a relevance pass per prompt that stays silent when history has no answer.
|
||||
|
||||
BM25 over local files. No LLM, no embeddings, no network. Credentials are redacted at index time.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
- sessions
|
||||
compat: v2
|
||||
scope:
|
||||
- global
|
||||
tags:
|
||||
- memory
|
||||
- recall
|
||||
- search
|
||||
- cross-agent
|
||||
- session-history
|
||||
installation: |
|
||||
```json
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"plugin": ["opencode-deja"]
|
||||
}
|
||||
```
|
||||
|
||||
Then index once: `deja index`. The plugin ships the binary, but a deja you installed yourself (`brew install vshulcz/tap/deja-vu`, `go install`, or the install script) always wins.
|
||||
@@ -0,0 +1,11 @@
|
||||
name: dejavu
|
||||
repo: https://github.com/WhiteBite/dejavu-gates
|
||||
npm: dejavu-gates
|
||||
tagline: Cross-session error gates for recurring tool-call failures
|
||||
description: "Mechanically detects recurring tool-call failures (3 failures across 2 distinct sessions promote a gate) and enforces them: reminder on the next attempt, hard block on same-session repeat offense. Diagnostics never block, they annotate. Two-scope store with secret scrubbing and control-char stripping before persistence, 60-day TTL, self-healing reconcile, doctor report. One harness-neutral store shared with Claude Code, Codex CLI, Gemini CLI, Cursor, Copilot CLI, Crush, Devin CLI, Kiro and Cline. TypeScript + Bun, ships as source, no build step."
|
||||
kind: plugin
|
||||
topics:
|
||||
- code-quality
|
||||
compat: v2
|
||||
installation: |
|
||||
{ "plugin": ["dejavu-gates"] } in opencode.json (V1 key "plugin", V2 key "plugins")
|
||||
@@ -2,3 +2,8 @@ name: Devcontainers
|
||||
repo: https://github.com/athal7/opencode-devcontainers
|
||||
tagline: Multi-branch devcontainers
|
||||
description: Plugin for running multiple devcontainer instances with auto-assigned ports and branch-based isolation.
|
||||
kind: plugin
|
||||
topics:
|
||||
- environment
|
||||
- git
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: Direnv
|
||||
repo: https://github.com/simonwjackson/opencode-direnv
|
||||
tagline: Load direnv variables
|
||||
description: Automatically loads direnv environment variables at session start. Perfect for Nix flakes.
|
||||
kind: plugin
|
||||
topics:
|
||||
- environment
|
||||
compat: v1
|
||||
@@ -0,0 +1,9 @@
|
||||
name: Ditto
|
||||
repo: https://github.com/ohad6k/emulo
|
||||
tagline: Mines your local AI coding session logs into a personal profile your agent loads before every task
|
||||
description: Mines local AI coding session logs (OpenCode, Claude Code, Codex, Copilot CLI) into a personal working profile. The OpenCode adapter reads OpenCode's SQLite session store and installs the profile into OpenCode's global rules so the agent loads it before every task. Single stdlib-only Python file, runs locally, MIT licensed.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
- prompting
|
||||
compat: unknown
|
||||
@@ -2,3 +2,7 @@ name: Dodo Payments
|
||||
repo: https://github.com/dodopayments/dodo-agent-plugin
|
||||
tagline: Payments, subscriptions, webhooks, and billing for OpenCode agents
|
||||
description: Official Dodo Payments plugin for OpenCode (also Claude Code, Codex, Cursor). Bundles eight integration skills (checkout, subscriptions, webhooks, usage-based billing, credits, license keys, BillingSDK, best practices) plus two MCP servers — a live API server with browser OAuth and a documentation search server. Distributed via npm as @dodopayments/opencode-plugin.
|
||||
kind: plugin
|
||||
topics:
|
||||
- integrations
|
||||
compat: v1
|
||||
@@ -2,3 +2,8 @@ name: Dynamic Context Pruning
|
||||
repo: https://github.com/Tarquinen/opencode-dynamic-context-pruning
|
||||
tagline: Optimize token usage
|
||||
description: Plugin that optimises token usage by pruning obsolete tool outputs from conversation context.
|
||||
kind: plugin
|
||||
topics:
|
||||
- context
|
||||
- cost
|
||||
compat: v2
|
||||
@@ -1,5 +1,12 @@
|
||||
name: Ejentum
|
||||
repo: https://github.com/ejentum/ejentum-mcp
|
||||
homepage: https://ejentum.com
|
||||
tagline: MCP server with reasoning, code, anti-deception, and memory tools for AI agents
|
||||
description: MCP server with four tools (harness_reasoning, harness_code, harness_anti_deception, harness_memory) that AI agents can call on demand. Each tool returns a structured prompt the calling agent ingests before generating.
|
||||
homepage: https://ejentum.com
|
||||
kind: plugin
|
||||
also:
|
||||
- mcp-server
|
||||
topics:
|
||||
- memory
|
||||
- code-quality
|
||||
compat: unknown
|
||||
@@ -2,3 +2,7 @@ name: Envsitter Guard
|
||||
repo: https://github.com/boxpositron/envsitter-guard
|
||||
tagline: Prevent .env leaks
|
||||
description: OpenCode plugin that prevents agents/tools from reading or editing sensitive .env* files, while still allowing safe inspection via EnvSitter (keys + deterministic fingerprints; never values).
|
||||
kind: plugin
|
||||
topics:
|
||||
- security
|
||||
compat: v1
|
||||
@@ -0,0 +1,14 @@
|
||||
name: Episodic Memory
|
||||
repo: https://github.com/robertn702/opencode-episodic-memory
|
||||
tagline: Semantic search over your past conversations — local embeddings, no cloud
|
||||
description: Indexes your OpenCode session history into a local SQLite store and lets the agent recall past discussions, decisions, and patterns via native episodic_search/episodic_read tools. Fully local and offline — embeddings run in-process via Transformers.js (Snowflake arctic-embed, model chosen by empirical eval), with vector, BM25, and hybrid RRF search modes. Auto-reindexes on session idle; opt-out marker for sensitive chats. Inspired by obra/episodic-memory for Claude Code, rebuilt natively for OpenCode primitives.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
- sessions
|
||||
compat: v2
|
||||
tags:
|
||||
- memory
|
||||
- semantic-search
|
||||
- embeddings
|
||||
- local-first
|
||||
@@ -0,0 +1,8 @@
|
||||
name: Esuyo Custom Provider
|
||||
repo: https://github.com/8perezm/esuyo-opencode-custom-provider
|
||||
tagline: Auto-discover models from any OpenAI-compatible gateway on startup
|
||||
description: Opencode plugin that syncs /v1/models from any OpenAI-compatible gateway into providers. Global ~/.config/opencode or project .opencode config, {env:} / {file:} secrets, include/exclude regex, and zero manual model maintenance.
|
||||
kind: plugin
|
||||
topics:
|
||||
- providers
|
||||
compat: v2
|
||||
@@ -1,7 +1,8 @@
|
||||
name: FlowDeck
|
||||
repo: https://github.com/DVNghiem/FlowDeck
|
||||
homepage: https://github.com/DVNghiem/FlowDeck#readme
|
||||
tagline: AI-powered multi-agent workflow orchestration with built-in safety intelligence
|
||||
description: |
|
||||
description: |-
|
||||
FlowDeck adds a structured, multi-agent development workflow to OpenCode. It coordinates 25 specialist agents through a four-phase cycle — discuss, plan, execute, review — with persistent state that survives session restarts.
|
||||
|
||||
Key features:
|
||||
@@ -16,6 +17,12 @@ description: |
|
||||
- Built-in MCPs: Context7 (docs), Exa (web search), Grep.app (code search)
|
||||
- Ensemble Reasoning via `/fd-council` for synthesized consensus from multiple agents
|
||||
- Persistent Memory with SQLite for tool executions and session summaries
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
- workflow
|
||||
- security
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
tags:
|
||||
@@ -27,8 +34,7 @@ tags:
|
||||
- TDD
|
||||
- skills
|
||||
- commands
|
||||
min_version: "1.0.0"
|
||||
homepage: https://github.com/DVNghiem/FlowDeck#readme
|
||||
min_version: 1.0.0
|
||||
installation: |
|
||||
### Method 1: curl (recommended)
|
||||
```bash
|
||||
|
||||
@@ -2,3 +2,8 @@ name: ForLoop Planner
|
||||
repo: https://github.com/forloop-cc/forloop-opencode-plugin-planner
|
||||
tagline: Autopilot development. Plan with ForLoop agent. Build, Test, Deploy on cloud in one go.
|
||||
description: ForLoop offers an all-in-one platform that covers the entire development lifecycle, from initial planning and coding to automated testing and cloud deployment.
|
||||
kind: plugin
|
||||
topics:
|
||||
- workflow
|
||||
- code-quality
|
||||
compat: v1
|
||||
@@ -1,4 +1,8 @@
|
||||
name: Froggy
|
||||
repo: https://github.com/smartfrog/opencode-froggy
|
||||
tagline: Hooks and specialized agents
|
||||
description: Plugin providing Claude Code-style hooks, specialized agents, and tools like gitingest.
|
||||
tagline: XP-guided multi-agent orchestration
|
||||
description: Multi-agent delegation and orchestration guided by XP, KISS, and YAGNI, with specialized agents, independent code review, and a persistent loop to keep work moving toward the objective.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
compat: v2
|
||||
@@ -2,3 +2,7 @@ name: Gemini Auth
|
||||
repo: https://github.com/jenslys/opencode-gemini-auth
|
||||
tagline: Google account auth
|
||||
description: Authenticate the Opencode CLI with your Google account so you can use your existing Gemini plan.
|
||||
kind: plugin
|
||||
topics:
|
||||
- providers
|
||||
compat: v2
|
||||
@@ -0,0 +1,9 @@
|
||||
name: Godmode
|
||||
repo: https://github.com/AIimagined/Godmode
|
||||
tagline: A local, tamper-evident record of what a coding agent did, what it claimed, and what was verified.
|
||||
description: Godmode keeps a hash-chained local record of what a coding agent did, what it claimed, and what was verified, and refuses "done" without a citation. On OpenCode it runs as an AGENTS.md instruction adapter plus an optional Bun plugin shim (adapters/opencode/godmode.opencode.js) that routes every bash, write, edit and patch call through the same pre-tool gate the other hosts use and throws before a refused tool runs. Zero runtime dependencies, zero network use, nothing leaves the machine.
|
||||
kind: plugin
|
||||
topics:
|
||||
- observability
|
||||
- code-quality
|
||||
compat: v1
|
||||
@@ -0,0 +1,9 @@
|
||||
name: Godmode
|
||||
repo: https://github.com/arbazkhan971/godmode
|
||||
tagline: "Discipline layer: measure → modify → verify → keep/revert"
|
||||
description: Skill plugin with 135 skills and 7 subagents that adds a measure → modify → verify → keep/revert discipline loop to AI coding agents. Works with OpenCode alongside Claude Code, Codex, Cursor, and Gemini CLI.
|
||||
kind: plugin
|
||||
topics:
|
||||
- workflow
|
||||
- code-quality
|
||||
compat: v2
|
||||
@@ -2,3 +2,7 @@ name: Google AI Search
|
||||
repo: https://github.com/IgorWarzocha/Opencode-Google-AI-Search-Plugin
|
||||
tagline: Query Google AI Mode (SGE)
|
||||
description: An opencode plugin that exposes a native tool for querying Google AI Mode (SGE).
|
||||
kind: plugin
|
||||
topics:
|
||||
- web
|
||||
compat: v1
|
||||
@@ -2,3 +2,7 @@ name: Handoff
|
||||
repo: https://github.com/joshuadavidthomas/opencode-handoff
|
||||
tagline: Session handoff prompts
|
||||
description: Creates focused handoff prompts for continuing work in a new session.
|
||||
kind: plugin
|
||||
topics:
|
||||
- sessions
|
||||
compat: v1
|
||||
@@ -2,3 +2,8 @@ name: Harness Memory
|
||||
repo: https://github.com/smc2315/harness-memory
|
||||
tagline: Persistent project memory - 73 percent fewer tokens than CLAUDE.md, with human review
|
||||
description: Auto-captures evidence from tool interactions and materializes memories through a multi-gate pipeline. 4-layer activation engine selects the right memories per context. Replaces CLAUDE.md with structured, searchable, reviewable project memory. Local-first (sql.js WASM), zero cloud dependency.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
- context
|
||||
compat: v1
|
||||
@@ -2,3 +2,8 @@ name: hiai-opencode
|
||||
repo: https://github.com/HiAi-gg/hiai-opencode
|
||||
tagline: Canonical 12-agent model with bundled skills, MCP, LSP, and ralph-loop
|
||||
description: Unified plugin shipping 10 visible agents (Bob, Coder, Strategist, Critic, Guard, Researcher, Designer, Manager, Brainstormer, Vision) plus hidden Sub and Agent Skills. Bundles MCP wiring (playwright, stitch, sequential-thinking, firecrawl, rag, mempalace, context7, websearch, grep_app), LSP, skill materialization, and a multi-layer continuation system (todo enforcer, ralph-loop, ULTRAWORK auto-start) in one install.
|
||||
kind: plugin
|
||||
topics:
|
||||
- orchestration
|
||||
- workflow
|
||||
compat: v1
|
||||
@@ -0,0 +1,16 @@
|
||||
name: homie
|
||||
repo: https://github.com/prashanthgit19/homie
|
||||
tagline: Four-level chat-voice personality layer — same code, different voice (off / yo / dawg / mafa)
|
||||
description: A prompt-injection personality layer that changes how the agent talks in prose while leaving technical answers, code, and commands identical. Ships yo, dawg, and mafa registers plus an off switch, set with /homie. Same package also runs on Claude Code, Codex, and Pi.
|
||||
kind: plugin
|
||||
topics:
|
||||
- prompting
|
||||
compat: v2
|
||||
scope:
|
||||
- global
|
||||
tags:
|
||||
- personality
|
||||
- voice
|
||||
- prompt
|
||||
- hooks
|
||||
- fun
|
||||
@@ -2,3 +2,7 @@ name: Honcho
|
||||
repo: https://github.com/plastic-labs/opencode-honcho
|
||||
tagline: AI-native long-term memory for OpenCode
|
||||
description: Give OpenCode persistent memory that survives context wipes, session restarts, and fresh chats. Honcho remembers what you're working on, durable preferences, and prior context across projects. Supports cloud and self-hosted deployments with configurable session strategies.
|
||||
kind: plugin
|
||||
topics:
|
||||
- memory
|
||||
compat: v2
|
||||
@@ -1,7 +1,13 @@
|
||||
name: HTML to Markdown
|
||||
repo: https://github.com/xberg-io/plugins
|
||||
repo: https://github.com/xberg-io/html-to-markdown
|
||||
npm: "@xberg-io/opencode-html-to-markdown"
|
||||
homepage: https://www.npmjs.com/package/@xberg-io/opencode-html-to-markdown
|
||||
tagline: Fast, lossless HTML to Markdown conversion
|
||||
description: OpenCode plugin exposing html-to-markdown CLI tools for converting HTML to clean Markdown with metadata, tables, and document structure.
|
||||
kind: plugin
|
||||
topics:
|
||||
- web
|
||||
compat: v2
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
@@ -10,7 +16,6 @@ tags:
|
||||
- markdown
|
||||
- conversion
|
||||
- cli
|
||||
homepage: https://www.npmjs.com/package/@xberg-io/opencode-html-to-markdown
|
||||
installation: |
|
||||
Add the package to `opencode.json`:
|
||||
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
name: Image Reader Relay
|
||||
repo: https://github.com/massiveits/image-reader-relay
|
||||
tagline: Let text-only models read pasted images via a vision model (OpenCode plugin)
|
||||
description: |-
|
||||
OpenCode plugin that lets text-only models read images pasted into a session.
|
||||
Stashes pasted images in memory, injects a note into the model's context only,
|
||||
and registers a `read_image` tool the main model calls with its own question —
|
||||
relaying the image to a configurable vision model in a throwaway session, then
|
||||
cleaning up. Models that support images natively are left untouched.
|
||||
kind: plugin
|
||||
topics:
|
||||
- media
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
- project
|
||||
tags:
|
||||
- images
|
||||
- vision
|
||||
- multimodal
|
||||
- productivity
|
||||
installation: |
|
||||
## Prerequisites
|
||||
- OpenCode with a tool-capable main model
|
||||
- Access to a vision model via one of your providers
|
||||
|
||||
## Installation
|
||||
Add to `opencode.json` (project) or `~/.config/opencode/opencode.json` (global):
|
||||
```json
|
||||
{
|
||||
"plugin": [
|
||||
["massiveits/image-reader-relay", { "model": "clinepass/cline-pass/mimo-v2.5" }]
|
||||
]
|
||||
}
|
||||
```
|
||||
@@ -0,0 +1,19 @@
|
||||
name: Internet Court
|
||||
repo: https://github.com/internet-court/internet-court-skill
|
||||
homepage: https://internetcourt.org
|
||||
tagline: "Trust layer for agent-to-agent commerce: mandates, payments, escrow, dispute resolution."
|
||||
description: The trust layer for agent-to-agent commerce — natural-language mandates, delegated permissions, x402 payments, escrow, and dispute resolution as one open, catch-all skill. By the Internet Court Consortium (internetcourt.org). MIT licensed.
|
||||
kind: plugin
|
||||
topics:
|
||||
- integrations
|
||||
compat: v2
|
||||
tags:
|
||||
- agent-payments
|
||||
- x402
|
||||
- erc-7710
|
||||
- erc-8004
|
||||
- escrow
|
||||
- genlayer
|
||||
- dispute-resolution
|
||||
- a2a
|
||||
- agentic-commerce
|
||||
@@ -0,0 +1,8 @@
|
||||
name: jes
|
||||
repo: https://github.com/everafterlabs/jes
|
||||
tagline: Prompt-injection and jailbreak guardrails for AI agents, powered by decision models like Jev.
|
||||
description: OpenCode plugin from the open-source jes library. It checks the user prompt, each tool call before it runs and each tool result, sending every check to a decision model such as Jev, which outputs a classification, not text. Secrets and PII are redacted locally before any model sees them. The Jev checks call a hosted API and need a TYPESAFE_API_KEY.
|
||||
kind: plugin
|
||||
topics:
|
||||
- security
|
||||
compat: v1
|
||||
@@ -0,0 +1,10 @@
|
||||
name: keep-going
|
||||
repo: https://github.com/ferdousbhai/keep-going
|
||||
tagline: Sends an idle session back to work when a reviewer model judges the request unfinished
|
||||
description: When a session goes idle, a reviewer model reads the owner's request and the last assistant message and answers CONTINUE or STOP; on CONTINUE the plugin sends a short fixed nudge such as "Keep going." as the next message. It stops for work that is done, blocked, or waiting on the owner's consent or answer, caps continuations per turn, and fails open on any error. Install with `npx github:ferdousbhai/keep-going --opencode`.
|
||||
kind: plugin
|
||||
topics:
|
||||
- workflow
|
||||
compat: v1
|
||||
scope:
|
||||
- global
|
||||
Loaded 100 of 585 files, more files were not shown because too many files have changed in this diff.
Show more
Reference in new issue
Block a user