troupe-ai
v0.2.1
Published
One troupe, every stage. The cross-harness agent pack manager: install one pack natively into DeepSeek Harness, OpenCode, and Claude Code.
Maintainers
Readme
troupe — one troupe, every stage.
The cross-harness agent pack manager. One pack — persona, subagent roster,
skills, slash commands, rules — installs natively into DeepSeek Harness,
OpenCode, and Claude Code, with markers, sync, doctor, and a git-based registry.
npm install -g troupe-ai
troupe port ~/.config/opencode --from opencode --out ./my-pack
troupe install ./my-pack
troupe doctorWhat it does
Agent knowledge already standardized (Agent Skills / SKILL.md, installed by
tools like Homecrew). The rest of what an
agent is — its persona, specialist subagents with tool scopes, slash
commands, review gates, rules — lives in harness-specific formats:
| | DeepSeek Harness | OpenCode | Claude Code |
|---|---|---|---|
| where the agent lives | plugin bundles + presets | .opencode/agents/ · opencode.json | .claude/ plugins |
| skills | .agents/skills/ | ~/.config/opencode/skills/ | ~/.claude/skills/ |
| commands | web-app plugins | ~/.config/opencode/command/ | ~/.claude/commands/ |
| rules | AGENTS.md | AGENTS.md | CLAUDE.md |
Troupe is the distribution layer above all of that: one troupe.yaml pack,
materialized into each harness's own extension points, with an honest
fidelity report of exactly what landed (and why anything didn't).
troupe port ~/.config/opencode --from opencode --out ./opencode-pack
troupe install ./opencode-pack --target dsh --workspace ./my-repo
troupe doctorReal demo (actual output, this machine)
$ troupe port ~/.config/opencode --from opencode --out ./opencode-pack
[port:opencode] Ported
✓ agents/iterate.md
✓ skills/banksey-operations
✓ skills/browser-automation ... (7 skills)
✓ rules/AGENTS.md
$ troupe install ./opencode-pack --target dsh --workspace ./my-repo
[dsh:project] DeepSeek Harness
✓ skills/mcp-observatory-telemetry/SKILL.md
✓ rules: ./my-repo/AGENTS.md (written)
! agents not supported for this harness: ... `dsh plugin --profile <name> add <repo>`
$ troupe doctor
[dsh:project] [email protected]
✓ status: healthyNothing is silently dropped: what a harness can't express is reported, not
hidden. The pack above was created from a live OpenCode config (7 skills, an
agent, rules) and installed into DSH in one command — the thing people are
currently doing by hand (see oh-my-dsh-slim, dsh-opencode,
dsh-hooks-adapter, dsh-harness-ally).
Why it wins (honest positioning)
| | crew | personify | agentpack | troupe | |---|---|---|---|---| | unit | skills | personas | machine env backup | whole agent | | orchestrator/roster | ✗ | ✗ | agents yes, no roster semantics | ✅ | | commands + rules merge | ✗ | ✗ | commands yes, rules copied | ✅ (marker sections) | | DSH support | ✗ | ✗ | ✗ | ✅ | | OpenCode support | ✅ | copypaste | ✗ | ✅ | | install/uninstall/doctor | install only | partial | restore in progress | ✅ all three | | registry & sync | taps, no sync | ✗ | roadmap | ✅ git taps + doctor |
Credits: the specialist-crew pack is a pattern-inspired, original-content homage to oh-my-opencode-slim (MIT) — the 8.7k-star suite that people are already hand-porting into DSH.
Safety model
- Copies only — troupe never executes pack content, no post-install hooks.
- Every managed directory carries a
.troupe-marker.json(id, source ref, SHA map). - Refuses to clobber files you customized since install (
--forceto override). - Rules merge as marker-guarded sections (
<!-- troupe:BEGIN:id -->). uninstallremoves exactly what troupe installed;doctorreports drift.- Never writes to a harness that isn't installed on the machine (detection).
Zero dependencies, no build
Pure Node ESM (≥18). node bin/troupe.js is the CLI; publishable via npm.
Honest limits (v0.1)
- DSH agents/commands are plugin bundles — reported, not materialized (fidelity).
- No Windows path support yet (
%APPDATA%). - MCP wiring + permission presets not yet in the manifest.
- Pack source repos with code-based agents (like slim's
src/agents/*.ts) port only after their config is generated by their installer.
Quickstart
troupe init ./my-pack # add agents/, skills/, commands/, rules/
troupe install ./my-pack # every detected harness
troupe install ./my-pack --target dsh --workspace ./repo --scope project
troupe install @acme/security-reviewer
troupe taps add [email protected]:acme/packs.git
troupe search # core + taps + remote index (default, no config)
troupe doctor --jsonFull format reference: spec/troupe.yaml.md
License
MIT
