create-plugin is agent-read markdown (skill) from different-ai/openwork: Create an OpenCode plugin for OpenWork. Scaffolds the plugin file with the correct API shape, tool definitions, and hook registration. Use when the user asks to 'create a plugin', 'write a plugin', or 'make a plugin that does X'..
Indexed from public GitHub and served as immutable, content-addressed versions. Install it pinned to an exact SHA-256 with the mdr CLI, and every file is verified against the hash recorded here before it reaches your agent. The deterministic audit below grades the latest version, and the same file always earns the same grade.
What the file says
# Skill: Create an OpenCode Plugin
Scaffold a working OpenCode plugin for use in OpenWork.
## When to use
- User asks "create a plugin that does X"
- User asks "write a plugin" or "make a plugin"
- User wants to extend OpenWork/OpenCode with custom tools
## Plugin API
An OpenCode plugin is an **async factory function** that returns a **hooks object**.
### File location
Plugins can live in:
- **Project**: `.opencode/plugins/my-plugin.ts` (auto-discovered)
- **Global**: `~/.config/opencode/plugins/my-plugin.ts`
- **npm**: published as a package, referenced in `opencode.json` `plugin` array
- **URL**: `file:` or `https:` path in the `plugin` array
### Minimal shape
```typescript
import { z } from "zod";
export default async () => ({
tool: {
my_tool_name: {
description: "What this tool does.",
args: z.object({
input: z.string().describe("The input parameter."),
}).shape, // NOTE: .shape, not the ZodObject itself
async execute(args: { input: string }) {
// Your logic here. Can use fetch(), fs, child_process, etc.
return `Result: ${args.input}`;
},
},
},
});
```
### Key rules
…
Pin to a label to follow the author's releases, or to a sha256 to freeze the exact bytes forever. Either way the resolved hash is written to mdr.lock, and mdr install reproduces it on any machine.
GET https://markdownregistry.com/api/v1/artifacts/art_a5366kkjro2zvuzi
GET https://markdownregistry.com/api/v1/resolve?ref=different-ai/openwork/create-plugin
GET https://markdownregistry.com/api/v1/blob/2571541e6289ff7bb9a1b30a321a5153d17f8f09e6523ef3fb45a40ebb80a5b7
Your agent does the legwork. You hear about the deals worth your word. Hand yours the standing instructions at modelranch.com and it joins the network that reads files like this one.
different-ai/openwork · .opencode/skills/browser-automation/SKILL.md · Local OpenWork Electron browser automation with CDP. Use when driving a local Electron dev app, browser_list…
different-ai/openwork · .opencode/skills/daytona-seeded-cloud-demo/SKILL.md · Daytona seeded cloud demo, demo credentials, Acme Robotics seed. Use when the user asks to spin up, keep running, seed…
different-ai/openwork · .opencode/skills/daytona-windows-cert/SKILL.md · test on Windows, enterprise CA, corporate certificate, GPO cert, TLS fetch failed, Windows sandbox, daytona windows…
different-ai/openwork · .opencode/skills/diagnose-a-red-run/SKILL.md · Test is red, typecheck failed, CI job failed, flaky, timed out, was this already broken. Use to classify any failing…
different-ai/openwork · .opencode/skills/get-env-var/SKILL.md · get an env var, fetch a secret, missing env var, missing token/API key, load secrets from Infisical, infisical. Fetch…
different-ai/openwork · .opencode/skills/hunt-a-prod-error/SKILL.md · A user saw internal_error, "Unexpected server error", a 500, or an opaque failure in a shipped OpenWork build. Find the…
different-ai/openwork · .opencode/skills/open-a-pr/SKILL.md · Open a PR, write or rewrite a PR description, "the PR body is too long", or check whether a PR description is readable…
different-ai/openwork · .opencode/skills/openwork-models/SKILL.md · Manage OpenWork inference model aliases, openwork model overlays, discounts, validation, and automated base model…
different-ai/openwork · .opencode/skills/release/SKILL.md · Cut an OpenWork release, release the app, publish a new version, rerun or recover a release tag, verify release assets…
devin-axis/ipollowork · .opencode/skills/create-plugin/SKILL.md · Create an OpenCode plugin for iPolloWork. Scaffolds the plugin file with the correct API shape, tool definitions, and…
avirtual/clodex · plugins/clodex-plugin-builder/skills/create-plugin/SKILL.md · Build a Clodex plugin end to end - scaffold it, wire the surfaces it needs, and verify it against the real loader…
andersonlimahw/lemon-ai-hub · plugins/create-plugin/SKILL.md · Scaffold a new AI agent plugin directory with valid manifest, component directories, and marketplace wiring. Use when…
richfrem/agent-plugins-skills · plugins/agent-scaffolders/skills/create-plugin/SKILL.md · Scaffolds a new top-level agent plugin directory. NOT for scaffolding single skills (use `create-skill`) and NOT for…