Skip to content

Releases

OpenCode plugin 0.1.8

Choose a tag to compare

@beastlabai beastlabai released this 12 Nov 16:13

OpenCode plugin 0.1.8 refreshes the model catalog and carries two Claude Code releases' worth of stability work (0.1.6 and 0.1.7) that OpenCode users have not had yet: a code-health pass over the review, write and state code, and fixes for Windows and macOS.

What's new since 0.1.4

  • Model catalog: Claude Fable 5.2 replaces 5.1, Gemini 4 Carbon replaces Gemini 4 Argon, codex gains gpt-6.1-terra, kimi leads with kimi-k3.1-pro, and kilocode adds kimi-k3.1-pro, hy4, nex-n2.6 and Meta's Muse Wonder through OpenRouter. The retired arcee-ai/trinity-large-thinking row is gone, and the free OpenCode default moves from opencode/nemotron-3-ultra-free to opencode/nemotron-3.5-super-vl-free.
  • Fewer failed or stuck rounds: odd or malformed model output no longer crashes a round; a damaged checkpoint or status file is set aside and the run continues; --reaggregate records HIGH findings and finishes only whole rounds.
  • Safer writes and rollback: every phase that writes files holds its folders until its last write, rollback copies come from a vetted file handle, and a killed run's leftovers are cleaned up. --output-format json prints one JSON document on the apply phases.
  • Provider handling: an OpenCode slot that loops on empty steps is stopped, kilocode errors and rate limits are classified from its own error lines, and a plan outside any git repository can run native apply.
  • Windows and macOS: abort sends Ctrl+Break only to a console group the plugin made, copies are never written through a link planted at their name, and a moved folder is named on macOS too.
  • Host runbooks: the OpenCode package writes the whole runbook to a file the host can read.

Needs action: the base providers.yaml changed, so re-run --init --force in each project to pick up the new defaults. If you keep your own model lists, replace claude-fable-5-1, gemini-4-argon, kimi-k3, opencode/nemotron-3-ultra-free and arcee-ai/trinity-large-thinking. No config keys were renamed or removed. One fallback changed: a provider with no configured row now gets a 1,200 s timeout instead of 600 s.

Set the exact plugin pin in your OpenCode config and restart while online:

{ "plugin": ["opencode-multi-llm@0.1.8"] }

Tested host: OpenCode 1.19.5 on Linux (the minimum and the latest release). macOS and Windows remain untested on the npm installation route. Keep the other entries and settings in your existing config. Users switching from the file-command route should run uninstall-host opencode first, so the old file command does not duplicate the npm plugin's.

Verification

Immutable tag source: c36cf4cccb91f3318f6d76c3b7d7d1fff2c88681, the same commit as Claude Code 0.1.8 and Codex 0.1.8 (shared-payload digest b7d25d18…).

  • All four required PR checks passed on that exact commit: Ubuntu, macOS, Windows and package.
  • The full serial suite passed: 36,485 tests.
  • The full local OpenCode gate passed rows 1–9 and 5b on OpenCode 1.19.5, including the five installed-package container scenarios. Package digest: 21ef7c9673e1a28d6543c9d5c93846397ed323f407fe0bafdd5418a9e567f743.

The published package passed all nine registry install criteria in a clean container on OpenCode 1.19.5, including cold dependency install, warm offline operation, a same-pin restart, and a real 0.1.4 → 0.1.8 upgrade that ran the new payload. Registry integrity:

sha512-HCQy6MOP/X8T8oguVs1AD8js3OahK2DdhYh1ZDlImCV3RE+NgM/A8wErzC84yHxfW48pSfB00ue4eIpoFQev/g==

Accepted npm provenance identifies certified publishing source 537a49e9ec55970c86d04b540499ce93c30a6e5b on refs/heads/master, repository beastlabai/multi-llm-plugin, workflow .github/workflows/publish-opencode-plugin.yml. Its rebuilt package digest exactly equals the independently gated tag: 21ef7c9673e1a28d6543c9d5c93846397ed323f407fe0bafdd5418a9e567f743. Publish: successful OIDC workflow. No paid model requests were used.

Attached evidence: 20261112T115712Z-opencode-release-gate.json, 20261112T160945Z-opencode-release-network-check.json (both also committed under skills/multi-llm/tests/container/records/), certified-source-equivalence.json, and npm-provenance-verification.json.

Codex plugin 0.1.8

Choose a tag to compare

@beastlabai beastlabai released this 12 Nov 15:46

Codex plugin 0.1.8 refreshes the model catalog and carries two Claude Code releases' worth of stability work (0.1.6 and 0.1.7) that Codex users have not had yet: a code-health pass over the review, write and state code, and fixes for Windows and macOS.

What's new since 0.1.4

  • Model catalog: Claude Fable 5.2 replaces 5.1, Gemini 4 Carbon replaces Gemini 4 Argon, codex gains gpt-6.1-terra, kimi leads with kimi-k3.1-pro, and kilocode adds kimi-k3.1-pro, hy4, nex-n2.6 and Meta's Muse Wonder through OpenRouter. The retired arcee-ai/trinity-large-thinking row is gone, and the free OpenCode default moves from opencode/nemotron-3-ultra-free to opencode/nemotron-3.5-super-vl-free.
  • Fewer failed or stuck rounds: odd or malformed model output no longer crashes a round; a damaged checkpoint or status file is set aside and the run continues; --reaggregate records HIGH findings and finishes only whole rounds.
  • Safer writes and rollback: every phase that writes files holds its folders until its last write, rollback copies come from a vetted file handle, and a killed run's leftovers are cleaned up. --output-format json prints one JSON document on the apply phases.
  • Provider handling: an OpenCode slot that loops on empty steps is stopped, kilocode errors and rate limits are classified from its own error lines, and a plan outside any git repository can run native apply.
  • Windows and macOS: abort sends Ctrl+Break only to a console group the plugin made, copies are never written through a link planted at their name, and a moved folder is named on macOS too.
  • Host runbooks: Codex now reads the whole runbook in bounded pages it can confirm.

Needs action: the base providers.yaml changed, so re-run --init --force in each project to pick up the new defaults. If you keep your own model lists, replace claude-fable-5-1, gemini-4-argon, kimi-k3, opencode/nemotron-3-ultra-free and arcee-ai/trinity-large-thinking. No config keys were renamed or removed, and the minimum Codex stays 0.159.2. One fallback changed: a provider with no configured row now gets a 1,200 s timeout instead of 600 s.

Upgrade an existing marketplace installation:

codex plugin marketplace upgrade beastlabai
codex plugin add multi-llm@beastlabai

For a new installation, first add the marketplace:

codex plugin marketplace add beastlabai/multi-llm-plugin --ref release \
  --sparse .agents --sparse packaging/codex
codex plugin add multi-llm@beastlabai

Start a new Codex session. Existing project provider configuration stays in place. Tag-pinned users should select codex-v0.1.8.

Verification

Verified source: c36cf4cccb91f3318f6d76c3b7d7d1fff2c88681, the same commit as Claude Code 0.1.8 and OpenCode 0.1.8 (shared-payload digest b7d25d18…).

  • All four required PR checks passed on that exact commit: Ubuntu, macOS, Windows and package.
  • The full serial suite passed: 36,485 tests.
  • The full local Codex gate passed 17 rows on Codex 0.167.0 (pinned), 10 rows on the minimum 0.159.2 and 10 rows on the latest, 0.167.2, with no features diff. The upstream validator is absent; repository layout rules and actual Codex ingestion passed.

Fresh public tag and promoted-release installs passed all six criteria on Codex 0.167.2 in a stock container, with all 327 files matching the tag. A real public-release 0.1.4 → 0.1.8 marketplace upgrade ran the new MCP payload, and a same-version refresh kept its bytes. No paid model requests were used.

Evidence: attached canonical 20261112T153934Z-codex-release-network-check.json (also committed under skills/multi-llm/tests/container/records/) and sanitized codex-public-verification.json. Promotion: successful workflow.

OpenCode plugin 0.1.4

Choose a tag to compare

@beastlabai beastlabai released this 01 Nov 06:46

OpenCode plugin 0.1.4 ships the latest master changes: explicit scope policy across review, validation, application and resume, plus visible scope tags in Markdown and HTML review reports.

Set the exact plugin pin in your OpenCode config and restart while online:

{ "plugin": ["opencode-multi-llm@0.1.4"] }

Tested host: OpenCode 1.19.5 on Linux. macOS and Windows remain untested on the npm installation route. Keep the other entries and settings in your existing config. Project .multi-llm/providers.yaml stays in place; this release needs no provider-config migration. Users switching from the file-command route should remove the old file command before enabling the npm plugin to avoid duplicate commands.

All nine canonical fresh-registry criteria passed: exact package integrity and tree, manifest version, installed command, actual payload execution, cold dependency installation, offline operation with network cut, same-pin restart, and a real 0.1.3 → 0.1.4 upgrade executing the new payload. No paid model requests were used.

Immutable tag source: 89fea1893ec332fc5462c5b95ee712404a898d32. Accepted npm provenance identifies certified publishing source 8d605c9b9d74ba6b4580081838296126212d8802 on refs/heads/master, repository beastlabai/multi-llm-plugin, workflow .github/workflows/publish-opencode-plugin.yml. Its rebuilt package digest exactly equals the independently gated tag: bcdf5f4fb5f402dad25402603e49497180050acdd1d07f59ba6ea5a51d5ca905.

Registry integrity:

sha512-qajLxl8eSG2qzkmwEDYgW301/xd4rN+CPq59Al3STbc0cjtH1A5rtY69S3sVr9NC07EBi0FEV762zsDrjDYqcQ==

All four required PR and master CI checks and both local/tag release gates passed. Publish: successful OIDC workflow.

Attached evidence: 20261101T004126Z-opencode-release-gate.json, 20261101T061412Z-opencode-release-network-check.json (also committed under skills/multi-llm/tests/container/records/), certified-source-equivalence.json, and npm-provenance-verification.json.

Codex plugin 0.1.4

Choose a tag to compare

@beastlabai beastlabai released this 01 Nov 06:17

Codex plugin 0.1.4 ships the latest master changes: explicit scope policy across review, validation, application and resume, plus visible scope tags in Markdown and HTML review reports.

Upgrade an existing marketplace installation:

codex plugin marketplace upgrade beastlabai
codex plugin add multi-llm@beastlabai

For a new installation, first add the marketplace:

codex plugin marketplace add beastlabai/multi-llm-plugin --ref release \
  --sparse .agents --sparse packaging/codex
codex plugin add multi-llm@beastlabai

Start a new Codex session. Existing project provider configuration stays in place. Tag-pinned users should select codex-v0.1.4.

Verified source: 89fea1893ec332fc5462c5b95ee712404a898d32. All four PR and master CI checks passed. The full local gate passed 17 rows on Codex 0.163.0, 10 on minimum 0.159.2, and 10 on latest 0.166.0. The upstream validator is absent; repository layout rules and actual Codex ingestion passed.

Fresh public tag and promoted-release installs passed all six criteria, with all 218 files matching the tag. A real public-release 0.1.3 → 0.1.4 marketplace upgrade executed the new MCP payload; same-version refresh preserved its bytes. No paid model requests were used.

Evidence: attached canonical 20261101T031024Z-codex-release-network-check.json (also committed under skills/multi-llm/tests/container/records/) and sanitized codex-public-verification.json. Promotion: successful workflow.

OpenCode plugin 0.1.3

Choose a tag to compare

@beastlabai beastlabai released this 30 Oct 22:02

The OpenCode Multi-LLM plugin now includes the current master runtime, including commit-range review and guarded fix workflows, sharper review prompts, and detached-log fixes. Shared version: 0.1.3.

Requires OpenCode 1.19.5 or newer and uv on PATH. Change your exact plugin pin and restart OpenCode:

{ "plugin": ["opencode-multi-llm@0.1.3"] }

Confirm it loaded with opencode debug config and check that command["multi-llm"] exists. Existing provider configuration is preserved. File-route users should first run uninstall-host opencode from their original installation to remove its command shim.

The full local gate passed rows 1–9 and 5b on OpenCode 1.19.5, including all five installed-package container scenarios. Release source: c9ae61b027a9e7bac4db216353495077f9c1d6f2. Committed gate record. The publisher preserves GitHub-certified source metadata and requires its rebuilt package digest to equal the independently gated release tag. The dispatch-source rebuild at cfe445b4543b733b9754df807f1e7c224fb15de7 matches that digest exactly. The OIDC publication succeeded with npm 11.5.1 and Node 22.23.4. Its accepted provenance identifies the correct repository, .github/workflows/publish-opencode-plugin.yml, and certified dispatch source cfe445b4543b733b9754df807f1e7c224fb15de7; the published subject digest matches the registry package. Publishing run.

A fresh stock-container install passed all nine later-release criteria, including exact installed-tree equality with the tag, first-use dependencies, offline operation with the network cut, restart, and an actual upgrade from 0.1.1 executing the new payload. Committed registry install/upgrade proof.

Integrity: sha512-b4rfpMp/eLCeYMx506jEyRbCIXzgfg9DKChejXIyxHAFMDUZH/01Jw4wWkHiOLdqNDojfV08K16/gaybJQxpYg==.

The gate record, registry proof, source-equivalence proof, and provenance verification are attached. Raw supporting logs remain local because they contain machine-specific paths. All package and install checks used local stubs; no paid model calls were made.

Codex plugin 0.1.3

Choose a tag to compare

@beastlabai beastlabai released this 30 Oct 21:02

The Multi-LLM Codex plugin now includes the current master runtime: commit-range review and guarded fix workflows, sharper review prompts, detached-log fixes, Windows process cleanup fixes, and the BeastLab composer icon. Shared version: 0.1.3.

Upgrade:

codex plugin marketplace upgrade beastlabai
codex plugin add multi-llm@beastlabai
# Start a new Codex session.

Requirements: Codex >=0.159.2, python3 >=3.9, and uv on PATH. Provider configuration is preserved; review the current defaults before choosing to regenerate it. The full gate passed on Codex 0.159.2 (10 checks), 0.163.0 (17 checks), and 0.166.0 (10 checks). A fresh stock container installed the public tag with Codex 0.166.0: all six criteria passed, and all 213 installed files matched the tag before first use. The upstream validator is absent; package layout is verified by repository rules and Codex ingestion.

Release source: c9ae61b027a9e7bac4db216353495077f9c1d6f2. Committed install proof. All release gates and install probes use no paid model calls.

To adopt the updated default model roster, back up your custom .multi-llm/providers.yaml and reinitialize with --init --force; existing custom configuration is otherwise preserved.

After promotion, the documented --ref release install was verified in another fresh stock container: all six criteria pass. marketplace upgrade plus plugin add preserved the exact 213-file payload and release commit. Both install records are attached.

OpenCode plugin 0.1.1

Choose a tag to compare

@beastlabai beastlabai released this 26 Oct 20:07

First release of opencode-multi-llm, the multi-llm workflow inside OpenCode, installed from npm. multi-llm runs plan reviews, task generation, implementation and code review across several LLM CLIs. The package adds a /multi-llm command and a model-callable multi_llm tool.

Install

Add the exact pin to ~/.config/opencode/opencode.json, then restart OpenCode:

{ "plugin": ["opencode-multi-llm@0.1.1"] }

Check that it loaded. Every failure on this route is silent: the entry stays listed and nothing reports an error.

opencode debug config | jq '.command["multi-llm"] != null'   # true = loaded

Then, once per repository, run /multi-llm --init. It writes <git-root>/.multi-llm/providers.yaml, where you pick your providers and models. After that, run a workflow: /multi-llm plans/my-feature.md. Headless, the command is opencode run --command multi-llm -- "plans/my-feature.md".

  • Requirements: opencode 1.19.4 or newer, enforced through engines (an older opencode refuses the package with a compatibility error), and uv on PATH, which supplies Python itself.
  • First run: the first start downloads the package, and the first /multi-llm builds its Python environment (pyyaml alone). Both need the network.
  • Always pin. OpenCode caches a plugin under the exact string in plugin, so an unpinned name or a range resolves once and never updates. To upgrade, change the pin and restart.

Full instructions: README §1.3 and docs/hosts.md. The latter covers troubleshooting, uninstall and local builds.

Coming from the file route

If you installed with install-host opencode, remove that command file from the checkout or plugin install you ran it from, then add the pin above:

uv run --frozen --no-dev --project "$SKILL" -- python "$SKILL/multi_llm.py" uninstall-host opencode --dry-run   # lists the files
uv run --frozen --no-dev --project "$SKILL" -- python "$SKILL/multi_llm.py" uninstall-host opencode

A leftover file does no harm, because the package's command replaces it at startup. install-host opencode --check reports BOTH routes until it's removed.

What was checked

  • The full local release gate (make opencode-package-check) on f4f024c7: rows 1–9 and 5b pass. That includes:

    • a clean install of the exact tarball by opencode 1.19.4, in a committed project and in a project with no commits;
    • five container scenarios run through the installed package with stub models and no credentials: init/status, detached launch, supervision, completion and cancellation;
    • registry absence immediately before the upload.

    Record: skills/multi-llm/tests/container/records/20261026T125425Z-opencode-release-gate.json.

  • CI on the release commit: the test suite on Ubuntu, macOS and Windows, and the package job, all green.

  • The upload is the gated tarball itself (npm publish <tarball> --ignore-scripts). The registry serves integrity sha512-XjxHpcySLlsWfUQdlApgEM82ojLfJg1SD9pkAbkGPw5pv0j0+29iQJtxGb9vEQLaQNZw8VJMSs+CSpDfswCFoQ==, identical to the gated one.

  • Installed as a user would, from registry.npmjs.org, into a fresh stock node:22-bookworm-slim container: opencode 1.19.4, uv 0.13.5, empty caches, no checkout of this repository, and a new project made with a plain git init. All eight first-release criteria pass:

    • the spec resolves with the gated integrity;
    • the installed manifest says 0.1.1;
    • the installed tree equals the package rebuilt from this tag's commit (199 files), checked before the first tool call;
    • /multi-llm resolves the installed skill;
    • the multi_llm tool runs init from the installed payload;
    • first use installs the runtime dependencies;
    • a warm status runs with the container's network cut;
    • a restart on the same pin serves the same payload.

    Record: skills/multi-llm/tests/container/records/20261026T175524Z-opencode-release-network-check.json.

Both records are attached below. The raw supporting output stays local, because it holds machine-specific paths.

Provenance

This first version was uploaded from the maintainer's machine, not from CI. npm can only attach a trusted publisher to a package that already exists, so 0.1.1 carries no npm provenance attestation. Its bytes are tied to this tag in two other ways: the uploaded file is the gated tarball, and the registry install check rebuilt the package from this tag's commit and found the installed tree identical. Later versions publish from the publish opencode plugin workflow through npm trusted publishing (OIDC), with provenance.

The workflow run that this tag's push started stopped before verifying anything. Its shared-version check refused npm's placeholder version (below). The registry install check above stands as this release's evidence.

Platforms

Linux is the verified platform. macOS and Windows are untested on this route.

0.0.0-stage on npm

npm lists a 0.0.0-stage version next to 0.1.1. It's a placeholder npm created at the package's first publish, not a release, and installs never select it. Never pin it.

No providers.yaml migration is needed (first release).

Codex plugin 0.1.0

Choose a tag to compare

@beastlabai beastlabai released this 23 Oct 13:40

First release of the multi-llm Codex plugin: the multi-llm workflow (plan reviews, task generation, implementation and code review fanned out across several LLM CLIs) inside a Codex session, through a multi_llm tool served by a small stdio MCP server bundled with the plugin, and a multi-llm:multi-llm skill that points the model at it.

Install

codex --version                     # 0.159.2 or newer
python3 --version && uv --version   # python3 3.9 or newer, under these exact names
codex plugin marketplace add beastlabai/multi-llm-plugin --ref release \
  --sparse .agents --sparse packaging/codex
codex plugin add multi-llm@beastlabai
# then start a NEW session

Then, once per repository: "Use the multi-llm:multi-llm skill with exactly these arguments: --init". See packaging/codex/README.md for provider keys, upgrades, uninstall and the silent-failure checklist.

What was checked before this release

  • Container gate (make codex-package-check, zero quota, --network none rows), all green on the published bytes (plugin digest 9041d389…):
    • codex 0.159.2 (the declared minimum): 10/10 rows
    • codex 0.163.0 (the pinned container codex): 17/17 rows
    • codex 0.164.0 (npm's newest on release day): 10/10 rows; codex features list as recorded (plugins stable/true, plugin_hooks removed/false, multi_agent stable/true)
    • rows include an offline Git-marketplace install pinned with --ref release and both --sparse paths, the installed tree compared blob for blob with the ref, the skill advertised, the tool listed and called, and a promoted release reaching the install through marketplace upgrade + plugin add.
    • upstream's validate_plugin.py ships in no codex since 0.156.1: recorded as absent; the compatibility layout is held to restated packaging-guide rules and to codex's own ingestion.
  • As a user would: the install pinned to this tag on a fresh container that never saw the repository (stock node:22-bookworm-slim, codex 0.164.0 from npm, uv from the official installer), all six release criteria passing. The record is committed as skills/multi-llm/tests/container/records/20261023T132656Z-codex-release-network-check.json. After promotion, the published --ref release line was run the same way in a second fresh container: it resolved to the tagged commit, all six criteria passed, and marketplace upgrade + plugin add left the install unchanged.

Platforms

Linux is the only verified platform. macOS is unmeasured (the run's login shell reads ~/.bash_profile/~/.profile, not ~/.zprofile). Windows is unsupported for the tool route; use the file route (install-host codex).

Upgrading later

codex plugin marketplace upgrade beastlabai, then codex plugin add multi-llm@beastlabai, then a new session. Re-adding the marketplace with a different --ref is refused by codex; remove it first to switch refs.

No providers.yaml migration is needed (first release).