Skip to content
This repository was archived by the owner on Jun 2, 2026. It is now read-only.

intisy-ai/opencode-plugin-updater

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

opencode-plugin-updater

npm version npm downloads CI License: MIT

Auto-update plugin for OpenCode.

Reads config/plugins.json, clones/pulls each plugin repo, runs configured build steps, and copies the output to the plugin directory on every OpenCode startup.

Features

  • Automatic updates on startup — pulls latest code and rebuilds changed plugins in the background
  • Manual mode — disable auto-update per plugin; update on demand via the plugin_update tool
  • <creator>/<repo> directory layout — repos are stored under repos/<github-user>/<repo-name>, preventing name collisions
  • Initial clone for manual plugins — even plugins with autoUpdate: false are cloned on first run so they are available immediately
  • Centralized config — reads/writes config/plugins.json (auto-migrates from the legacy root location)
  • Centralized logs — writes to logs/plugin-updater.log with automatic log rotation (keeps last 100 lines)
  • Dual-exec guard — prevents running twice when OpenCode loads the plugin file more than once

Installation

Option A — npm (recommended)

Add the package to your ~/.config/opencode/opencode.json:

{
  "plugins": ["opencode-plugin-updater@latest"]
}

Restart OpenCode. The plugin is loaded directly from npm — no cloning or building required.

Option B — Manual bootstrap

  1. Clone the repo:
mkdir -p ~/.config/opencode/repos/intisy/opencode-plugin-updater
git clone https://github.com/intisy/opencode-plugin-updater.git ~/.config/opencode/repos/intisy/opencode-plugin-updater
cp ~/.config/opencode/repos/intisy/opencode-plugin-updater/plugin-updater.js ~/.config/opencode/plugins/plugin-updater.js
  1. Register the plugin in ~/.config/opencode/opencode.json:
{
  "plugins": {
    "plugin-updater": "./plugins/plugin-updater.js"
  }
}

Restart OpenCode. The plugin will keep itself (and all other plugins) up to date automatically from then on.

plugins.json Format

Create ~/.config/opencode/config/plugins.json with an array of plugin entries:

[
  {
    "name": "my-plugin",
    "url": "https://github.com/user/my-plugin.git",
    "install": ["bun", "install"],
    "build": ["bun", "run", "build"],
    "bundle": null,
    "output": "dist/plugin.js",
    "pluginFile": "my-plugin.js",
    "autoUpdate": true
  }
]
Field Type Description
name string Plugin identifier (used as repo folder name)
branch string | null Git branch to clone/pull (defaults to default branch)
url string Git clone URL
install string[] | null Install command (e.g. ["bun", "install"])
build string[] | null Build command (e.g. ["bun", "run", "build"])
bundle string[] | null Bundle command (optional second build step)
output string Path to the built plugin file inside the repo
pluginFile string Filename to use in the plugins/ directory
autoUpdate boolean Whether to auto-update on startup

Tools

Tool Description
plugin_list List all managed plugins with status, commit, and update availability
plugin_update Pull, rebuild, and deploy a single plugin (or all)
plugin_auto_update Toggle auto-update for a specific plugin

License

MIT

About

Auto-update plugin for OpenCode - reads plugins.json and keeps plugin repos up to date

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors