Skip to content

Coeus v3.9.0 — Install Anywhere

Choose a tag to compare

@keithceh keithceh released this 26 Jun 11:12

Five install paths. Five surfaces. Zero "why doesn't it work on chat" questions.


The pivot

Anthropic's plugin system has documented bugs (#40600, #28554, #63624) that bite the Personal-upload path: doesn't persist across Cowork restart, dirty-disable state survives reinstall, no auto-update. v3.9 stops fighting Anthropic's bugs and routes around them.

Marketplace install — now the default path

/plugin marketplace add keithceh/Coeus-plugin
/plugin install coeus@coeus

Persists across restart. Auto-updates on /plugin update coeus. Public mirror at keithceh/Coeus-plugin carries the runtime; source repo stays private under BSL 1.1. release.yml force-pushes the bundle to the mirror on every tag — history-less, source-free, deterministic.

Org / Enterprise — the most durable path Anthropic offers

Admins drop one block into managed claude-config.json and every member gets Coeus on connect:

{ "extraKnownMarketplaces": { "coeus": { "source": { "source": "github", "repo": "keithceh/Coeus-plugin" } } },
"enabledPlugins": { "coeus@coeus": "required" } }

Survives uninstall attempts. Bypasses every Personal-upload state bug. Zero member friction.

claude.ai web chat — finally has an answer

Web chat doesn't support plugin uploads. v3.9 ships paste bundles — one self-contained Markdown file per skill, generated by scripts/build-skill-paste.py, downloadable from Releases. Paste as first chat message, ask question next. Six bundles built every release: llm-council, the-architect, ep-council, morpheus, plugin-creator, project-lifecycle. 12-38 KB each.

Install matrix — every Claude surface covered

Surface | Path | Persists | Auto-update -- | -- | -- | -- Cowork / Code / Desktop (individual) | Marketplace | ✅ | ✅ Cowork / Code / Desktop (Team/Enterprise) | Org-managed | ✅✅ | ✅ claude.ai web chat | Paste bundle | per-chat | n/a Air-gapped / legacy | Personal-upload | ❌ | ❌ Maintainers / forks | Build locally | n/a | n/a

The boring fixes that made it ship

One YAML colon-space crashed the workflow on first push — quoted the step name, added the bug class to the v3.3.1 regression family. Heredoc with indented EOF in CI bash — de-indented, body terminates cleanly. Two-step if env.SECRET / if not env.SECRET pattern — collapsed to one step with the check in bash. Ship-it lessons that won't recur.


Five install paths. Five surfaces. Zero "why doesn't it work on chat" questions.

The pivot
Anthropic's plugin system has documented bugs (#40600, #28554, #63624) that bite the Personal-upload path: doesn't persist across Cowork restart, dirty-disable state survives reinstall, no auto-update. v3.9 stops fighting Anthropic's bugs and routes around them.

Marketplace install — now the default path
/plugin marketplace add keithceh/Coeus-plugin
/plugin install coeus@coeus
Persists across restart. Auto-updates on /plugin update coeus. Public mirror at keithceh/Coeus-plugin carries the runtime; source repo stays private under BSL 1.1. release.yml force-pushes the bundle to the mirror on every tag — history-less, source-free, deterministic.

Org / Enterprise — the most durable path Anthropic offers
Admins drop one block into managed claude-config.json and every member gets Coeus on connect:

{ "extraKnownMarketplaces": { "coeus": { "source": { "source": "github", "repo": "keithceh/Coeus-plugin" } } },
"enabledPlugins": { "coeus@coeus": "required" } }
Survives uninstall attempts. Bypasses every Personal-upload state bug. Zero member friction.

claude.ai web chat — finally has an answer
Web chat doesn't support plugin uploads. v3.9 ships paste bundles — one self-contained Markdown file per skill, generated by scripts/build-skill-paste.py, downloadable from Releases. Paste as first chat message, ask question next. Six bundles built every release: llm-council, the-architect, ep-council, morpheus, plugin-creator, project-lifecycle. 12-38 KB each.

Install matrix — every Claude surface covered
Surface Path Persists Auto-update
Cowork / Code / Desktop (individual) Marketplace ✅ ✅
Cowork / Code / Desktop (Team/Enterprise) Org-managed ✅✅ ✅
claude.ai web chat Paste bundle per-chat n/a
Air-gapped / legacy Personal-upload ❌ ❌
Maintainers / forks Build locally n/a n/a
The boring fixes that made it ship
One YAML colon-space crashed the workflow on first push — quoted the step name, added the bug class to the v3.3.1 regression family. Heredoc with indented EOF in CI bash — de-indented, body terminates cleanly. Two-step if env.SECRET / if not env.SECRET pattern — collapsed to one step with the check in bash. Ship-it lessons that won't recur.

Full Changelog: keithceh/Coeus@v3.8.0...v3.9.0


Mirror of keithceh/Coeus@v3.9.0. Built and synced by release.yml on every tagged release of the source repo.