rotifer-protocol/rotifer-playground--plugins-rotifer ↗★ 6
rotifer
The Rotifer Protocol plugin for OpenClaw — three Skills plus the Rotifer MCP server. Create your first Agent from a template (hello), route yourself to the right capability (assistant), and rank an Agent's Genes against live Arena data to swap in stronger ones (evolve). Ranking is the automatic part; every replacement waits for your approval and can be rolled back.
安装
npx -p @deepseek-ai/dsh dsh plugin --profile web add github:rotifer-protocol/rotifer-playground#adf7bc3478303cabc5cd61f5a2b8364887ac2b90&path:plugins/rotifer说明文档
阅读完整 README ↗![]()
Rotifer Protocol — Agent Plugin
Self-evolving AI agent capabilities. Scan what your agent can do, benchmark it against public rankings, and swap in something better.
[](https://github.com/rotifer-protocol/rotifer-playground/blob/main/LICENSE)
[](https://www.npmjs.com/package/@rotifer/playground)
[](https://www.npmjs.com/package/@rotifer/mcp-server)
What this is
Most agent capabilities are written once and never measured again. Rotifer treats a
capability as a Gene — a versioned, testable unit with a declared input/output
schema, compiled to WASM, and scored by a fitness function F(g) in a public Arena.
Because Genes are portable and comparable, an agent can do something ordinary code cannot: find out that a better implementation of its own capability exists, and adopt it.
This plugin brings that loop into your agent.
Install
One folder, one version, one set of skills — five hosts read it through their own manifest, so nothing drifts between them.
| Host | How it loads |
|---|---|
| Cursor | .cursor-plugin/plugin.json |
| CodeBuddy | .codebuddy-plugin/plugin.json |
| OpenClaw / ClawHub | openclaw.plugin.json + package.json#openclaw |
| Claude Code | .claude-plugin/plugin.json |
| DeepSeek Harness | package.json#dsh + cordis.patch.yml |
On DeepSeek Harness, install it into whichever profile you boot:
dsh plugin --profile web add "github:rotifer-protocol/rotifer-playground#path:/plugins/rotifer"
It installs from this repository rather than from npm on purpose. The unscoped
npm name rotifer is already held by a pointer package
whose only job is to stop that name being used to impersonate the toolchain —
publishing this plugin over it would replace a working redirect with a package
that has no bin at all.
That adds two rows, and both mount plugins DSH already ships — this bundle carries no runtime code of its own:
rotifer-skills— adsh-skill-filesystemprovider scoped to this package's ownskills/directory. It setsincludeDefaultRoots: false, so it contributes only the four Rotifer skills and never rescans your project or user skill roots. It cannot shadow a skill you wrote.mcp-rotifer— thedsh-mcp-clientbridge on the pinned, narrowed launch line below. Its 10 tool schemas are paid on every request while mounted (6,736 bytes of JSON, measured on dsh0.1.0-rc.7). Drop this row from your profile's owncordis.patch.ymland the four skills still work; they cost only their catalog rows.
DSH is in developer preview and says it will make breaking changes. This bundle is declarative on purpose: it mounts DSH's own plugins rather than shipping a Cordis plugin of ours, so an API change has nothing here to break.
What it does
| Scan | Walk the workspace and identify functions that are already Gene-shaped |
| Wrap | Turn a plain function into a Gene with a phenotype.json contract |
| Compare | Check a local Gene against Arena rankings for the same capability |
| Upgrade | Install a higher-scoring Gene and run it in a sandbox before trusting it |
| Publish | Share a Gene, with an automatic V(g) safety-scan badge |
Every Gene runs inside a WASM sandbox with fuel metering and memory limits, so trying someone else's capability does not mean trusting their code with your machine.
What ships in this plugin
Skills — the agent picks these up automatically when relevant:
| Skill | Purpose |
|---|---|
rotifer | Browse, install, and compete Genes in the live Arena |
rotifer-hello | Interactive agent creation from curated templates — quality diagnosis, security scanning, content analysis, Web3 auditing, document Q&A |
rotifer-self-evolving-agent | The full loop: scan capabilities, benchmark against live Arena rankings, and replace weaker Genes. Ranking is the automatic part — every replacement waits for your approval and can be rolled back |
rotifer-assistant | Unified entry point — guide, architect, and challenge your agents |
Rule — rotifer-gene-dev keeps generated Genes inside the project's conventions:
naming, structure, fidelity declaration, and phenotype schema. It activates on
**/genes/** and **/phenotype.json.
MCP server — @rotifer/mcp-server,
launched on demand via npx, nothing to install ahead of time.
Left undeclared, the server offers 31 tools and 7 resources covering the whole
lifecycle, including compiling, publishing, Arena submission and login. This
plugin launches it with --tools=evolve, which offers 10 tools and 4 resources
— enough to search, compare, install and roll back Genes and to create and run
Agents, and nothing more. The rest are not listed and are refused if called, so
nothing here can publish on your behalf or sign you in. The launch line also omits
--allow, so the sandbox escape hatches stay off.
Resources are narrowed alongside the tools they duplicate, because a restriction with an unlisted way around it is not a restriction.
The version is pinned rather than floating, so what you install is what you reviewed:
npx -y @rotifer/mcp-server@0.16.1 --tools=evolve
You can run that yourself and ask it to list its tools.
Fidelity: what a Gene honestly is
Every Gene declares how it actually works. This is a hard requirement, not a label:
- Native — real executable WASM, runs fully inside the sandbox
- Wrapped — a wrapper around an external API, and says so
- Hybrid — declares its external dependencies, how it degrades when they are unavailable, and a simulation spec for that case
A Gene that misrepresents its fidelity is a broken Gene. Rankings are only meaningful if you know what you are comparing.
Requirements
- Node.js ≥ 20
- No account needed to scan, wrap, test, or run Genes locally
- An account is only required to publish or to submit to the Cloud Arena
Try it without the plugin
Everything here is public and works standalone, so you can verify it end to end first:
# CLI
npx @rotifer/playground@latest init my-agent
npx @rotifer/playground@latest scan
npx @rotifer/playground@latest doctor
# MCP server
npx @rotifer/mcp-server@latest
Status
The protocol is pre-1.0 and under active development; APIs may change between minor versions. Arena, Cloud publishing, the WASM sandbox, and the safety-badge pipeline are live. P2P gene propagation is experimental and off by default — the CLI never joins a network unless you ask it to.
See the changelog for full release history.
Links
- Docs — https://rotifer.dev/docs/
- Repository — https://github.com/rotifer-protocol/rotifer-playground
- Protocol spec — https://github.com/rotifer-protocol/rotifer-spec
- Issues — https://github.com/rotifer-protocol/rotifer-playground/issues
License
Apache-2.0. See LICENSE.