{"_id":"@ahetzm/opencode-orchestrator","name":"@ahetzm/opencode-orchestrator","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@ahetzm/opencode-orchestrator","version":"0.1.0","description":"opencode plugin that adds an Orchestrator primary agent which delegates all work to configurable minion subagents.","keywords":["opencode","opencode-plugin","orchestrator","subagent","agent","ai"],"license":"MIT","author":{"name":"Alexander Hetzmannseder","email":"git@hetzmannseder.dev"},"homepage":"https://github.com/ahetzm/opencode-orchestrator#readme","repository":{"type":"git","url":"git+https://github.com/ahetzm/opencode-orchestrator.git"},"bugs":{"url":"https://github.com/ahetzm/opencode-orchestrator/issues"},"type":"module","main":"./dist/index.js","types":"./dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"publishConfig":{"access":"public","registry":"https://registry.npmjs.org"},"scripts":{"build":"bun build ./src/index.ts --outfile ./dist/index.js --target node --external @opencode-ai/plugin && bun run build:types","build:types":"tsc -p tsconfig.build.json","typecheck":"tsc --noEmit","test":"bun test","prepublishOnly":"bun run typecheck && bun test && bun run build"},"peerDependencies":{"@opencode-ai/plugin":"*"},"devDependencies":{"@opencode-ai/plugin":"^1.18.3","@types/bun":"latest","typescript":"^5.9.2"},"gitHead":"37e1c94fcc17c33820d0e32cb0cfbe656a5a0876","_id":"@ahetzm/opencode-orchestrator@0.1.0","_nodeVersion":"24.18.0","_npmVersion":"11.16.0","dist":{"integrity":"sha512-jOuz/9lrUfl+lq4y/5o/Ja+g1Nv7pXk8Mkj7030WPw9aHFjM5HK1h2NTpqNPGDC8idNyOpdZmEqrxs++8VcCnw==","shasum":"329555e0e4fb59044f781bd36c95b202a0bfa47b","tarball":"https://registry.npmjs.org/@ahetzm/opencode-orchestrator/-/opencode-orchestrator-0.1.0.tgz","fileCount":6,"unpackedSize":14318,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIQC+0QITcoO4C+9TNtMFQZ2sqM4RhORTK5p2M/QyCYq1xgIgaGlQ8gZl4JkhZhbNUYP0M8I7/CJCvUcawp/38f5M/5U="}]},"_npmUser":{"name":"ahetzm","email":"npm@hetzmannseder.dev"},"directories":{},"maintainers":[{"name":"ahetzm","email":"npm@hetzmannseder.dev"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/opencode-orchestrator_0.1.0_1786985701953_0.8735747485903822"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-17T16:55:01.785Z","0.1.0":"2026-08-17T16:55:02.166Z","modified":"2026-08-17T16:55:02.368Z"},"maintainers":[{"name":"ahetzm","email":"npm@hetzmannseder.dev"}],"description":"opencode plugin that adds an Orchestrator primary agent which delegates all work to configurable minion subagents.","homepage":"https://github.com/ahetzm/opencode-orchestrator#readme","keywords":["opencode","opencode-plugin","orchestrator","subagent","agent","ai"],"repository":{"type":"git","url":"git+https://github.com/ahetzm/opencode-orchestrator.git"},"author":{"name":"Alexander Hetzmannseder","email":"git@hetzmannseder.dev"},"bugs":{"url":"https://github.com/ahetzm/opencode-orchestrator/issues"},"license":"MIT","readme":"# @ahetzm/opencode-orchestrator\n\nAn [opencode](https://opencode.ai) plugin that adds two agents:\n\n- **`orchestrator`** (primary) — does meta work only. It coordinates, briefs, and\n  synthesizes. It delegates *all* actual work, including exploration and one-line\n  edits, to minions.\n- **`minion`** (subagent) — a focused executor that does the work and reports back.\n  It cannot spawn further subagents.\n\nThe point is to keep the coordinating agent's context clean. Investigation and\nimplementation noise stays inside minion sessions; the orchestrator only ever sees\ntheir summaries.\n\n## Install\n\nAdd it to the `plugin` array in your `opencode.json`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\"@ahetzm/opencode-orchestrator\"]\n}\n```\n\nopencode installs npm plugins automatically at startup. Nothing else to do.\n\nThen pick `orchestrator` as your agent (`Tab` in the TUI, or `opencode --agent orchestrator`).\n\n## Configuration\n\nBoth agents use your default opencode model unless you say otherwise. To configure\nthem, use the tuple form of the `plugin` entry — `[\"package-name\", { options }]`:\n\n```json\n{\n  \"$schema\": \"https://opencode.ai/config.json\",\n  \"plugin\": [\n    [\n      \"@ahetzm/opencode-orchestrator\",\n      {\n        \"orchestrator\": { \"model\": \"anthropic/claude-opus-4-5\" },\n        \"minion\": { \"model\": \"anthropic/claude-sonnet-4-5\" }\n      }\n    ]\n  ]\n}\n```\n\nA common setup is a strong reasoning model for the orchestrator and a cheaper,\nfaster model for the minions — you'll be spawning a lot of them.\n\n### Options\n\n| Option | Type | Description |\n| --- | --- | --- |\n| `orchestrator` | object | Overrides for the orchestrator agent (see below) |\n| `minion` | object | Overrides for the minion agent (see below) |\n| `allowMinionDelegation` | boolean | Allow minions to spawn their own subagents. Default `false` |\n\nEach agent override object accepts:\n\n| Field | Type | Description |\n| --- | --- | --- |\n| `model` | string | Model id as `provider/model` |\n| `variant` | string | Model variant, e.g. a reasoning-effort preset |\n| `temperature` | number | |\n| `top_p` | number | |\n| `prompt` | string | Replace the built-in system prompt entirely |\n| `appendPrompt` | string | Append extra instructions to the built-in prompt |\n| `description` | string | Description shown in the agent picker |\n| `color` | string | TUI color |\n| `disable` | boolean | Skip registering this agent |\n\nAnything you leave unset is not written to the agent config at all, so opencode's\nown defaults apply.\n\n### Appending house rules\n\n`appendPrompt` is the low-risk way to customize behavior without losing the\nbuilt-in instructions:\n\n```json\n{\n  \"plugin\": [\n    [\n      \"@ahetzm/opencode-orchestrator\",\n      {\n        \"minion\": {\n          \"appendPrompt\": \"Always run `bun test` before reporting success.\"\n        }\n      }\n    ]\n  ]\n}\n```\n\n### Precedence\n\nLowest to highest:\n\n1. This plugin's built-in defaults\n2. Plugin options in `opencode.json`\n3. An explicit `agent.orchestrator` / `agent.minion` block in `opencode.json`\n\nSo if you need to reach a field this plugin doesn't expose, set it directly on the\nagent and it will win:\n\n```json\n{\n  \"plugin\": [\"@ahetzm/opencode-orchestrator\"],\n  \"agent\": {\n    \"minion\": {\n      \"permission\": { \"bash\": \"ask\" }\n    }\n  }\n}\n```\n\n## Nested delegation\n\nBy default the minion gets `permission.task = \"deny\"`, which keeps the delegation\ntree exactly one level deep. If you want minions to fan out further, set\n`allowMinionDelegation: true`. Be aware that this makes cost and runtime much\nharder to predict.\n\n## Development\n\n```sh\nbun install\nbun test\nbun run typecheck\nbun run build\n```\n\n## Releasing\n\nBump `version` in `package.json` and push to `main`. The release workflow checks\nwhether that version already exists on npm, and if it doesn't, it runs the\ntypecheck/test/build gate, publishes, and cuts a matching `vX.Y.Z` GitHub Release.\n\nBecause the check is against the registry rather than the commit diff, re-running\nthe workflow or force-pushing can't double-publish. A push that doesn't change the\nversion is a no-op.\n\n### One-time setup\n\nPublishing uses npm [trusted publishing](https://docs.npmjs.com/trusted-publishers)\nvia OIDC, so there is no npm token in this repo. It needs two things:\n\n1. **The first version must be published manually.** A trusted publisher can only\n   be configured on a package that already exists:\n   ```sh\n   npm publish --registry https://registry.npmjs.org\n   ```\n2. **Configure the trusted publisher** on npmjs.com under the package's Settings →\n   Trusted Publisher: provider GitHub Actions, this repository, workflow filename\n   `release.yml`.\n\nAfter that, every release is credential-free and gets a provenance attestation.\n\n## License\n\nMIT\n","readmeFilename":"README.md","_rev":"1-91b9de53b446569f3ba20f4d0fbf799d"}