Rotifer Playground

Development environment for the Rotifer Protocol — WASM-Native, Polyglot by Design: build genes in TypeScript / Rust / AssemblyScript / Go / C, compete in Arenas, share via Cloud, and simulate agent evolution.
Status: v0.21.x — What a profile says and what a fresh workspace can run both got honest. A developer's steward's note now carries translations, each pinned to the exact English text it translates — edit the note and a stale translation stops rendering instead of silently misrepresenting you (rotifer.dev serves the Chinese reading today). The L0 gate now judges a gene's provenance by who wrote its .cloud-manifest.json — install stamps installed_at, publish stamps published_at — instead of treating any manifest as foreign, so on machines without the native addon your own and bundled genes run (with a warning) while installed ones are still refused, and anything unreadable stays refused. rotifer init now ships gene-health-scanner, the gene its own recommended first command depends on, and the stated Node floor (>= 22.18) matches the one the CLI already had in practice. Experimental P2P gene propagation (rotifer network) remains off by default (enabled: false) and ships with no default bootstrap peer, so you pass one explicitly (rotifer network start -b <multiaddr>) — there is no public network to join yet. See CHANGELOG.md for full release history. Automatic peer discovery, internet-wide reach, and L4 Collective Immunity are later milestones — see Implementation Status below.
Install
npm install -g @rotifer/playground
Or use directly via npx:
npx -y @rotifer/playground@latest init my-agent
Requirements: Node.js >= 22.18.0 (genes are TypeScript; the CLI relies on Node’s built-in type stripping to run them from source)
First Agent in Seconds
rotifer init my-agent && cd my-agent
rotifer hello --template quality-advisor
rotifer init bootstraps the local Arena and Genesis genes. rotifer hello --template quality-advisor is the recommended preset-agent entrypoint for a first run.
30-Second Demo
$ rotifer init my-agent
Rotifer Protocol - Agent Workspace Initialization
───────────────────────────────────────────────────
✓ Agent workspace scaffolding created
ℹ Installing Genesis genes...
✓ 5 Genesis genes installed
✓ 1 starter gene installed for the recommended template (quality-advisor)
Starter Genes
───────────────
Name Domain Fidelity
────────────────────────────────────────────────────────
genesis-file-read filesystem Native
hello-world general Wrapped
gene-health-scanner meta.diagnostics Native
genesis-l0-constraint safety Native
genesis-web-search search Native
genesis-web-search-lite search Native
genesis-code-format tooling Native
ℹ 7 starter gene(s) across 6 domain(s)
Agent workspace "my-agent" is ready!
One command scaffolds the workspace and ships the starter genes, including the one the recommended template needs. rotifer hello --template quality-advisor then turns them into your first preset agent.
Three-Act Experience (ADR-11)
Act 1 — Wow (30 seconds)
rotifer init my-agent && cd my-agent
You see an Arena with 6 genes ranked by fitness. No configuration needed.
Act 2 — Aha (5 minutes)
rotifer hello --template quality-advisor
rotifer agent list
Bundled genes become a working preset agent in seconds.
Act 3 — Hooked (30 minutes)
Turn your own code into a gene, then build a custom agent:
rotifer scan genes/
rotifer wrap hello-world
rotifer test hello-world
rotifer test hello-world --compliance
rotifer arena submit hello-world
rotifer arena list
mkdir genes/my-search && cat > genes/my-search/index.ts << 'EOF'
export function express(input: { query: string }) {
return { results: [`Found: ${input.query}`], total: 1 };
}
EOF
rotifer wrap my-search --domain search
rotifer compile my-search
rotifer arena submit my-search
rotifer arena list --domain search
rotifer agent create search-bot --genes genesis-web-search my-search
rotifer agent create parallel-bot --genes web-search doc-search --composition Par
rotifer agent list
rotifer agent run search-bot --input '{"query":"rotifer protocol"}'
rotifer agent run search-bot --no-sandbox
rotifer compile auto-detects TypeScript genes and compiles them to Native WASM. No separate toolchain required.
Architecture
playground/
├── crates/
│ ├── rotifer-core/ Rust: types, sandbox, arena, algebra, fitness, storage
│ └── rotifer-napi/ Native bridge: Rust ↔ Node.js FFI
├── src/ TypeScript CLI and supporting modules
│ ├── commands/ CLI command modules
│ ├── cloud/ Cloud Binding client (auth, API, types)
│ └── utils/ Config, display, native binding, IR compiler
├── genes/ Bundled gene directories
├── supabase/ Cloud Binding self-hosting guide
├── templates/ Gene + composition scaffolds
└── tests/ Unit + E2E test suites
Layers
| CLI | TypeScript + commander.js | User interface, command routing, display |
| Bridge | Native bridge (cdylib) | Rust-to-Node.js FFI binding |
| Core | Rust + WASM runtime | WASM sandbox (Direct + WASI), Arena engine, Algebra executor, Fitness computation, SQLite storage |
CLI Commands
Run rotifer --help for the grouped command list. The commands below cover the main local, cloud, arena, and agent workflows.
rotifer init [workspace-name] | Initialize a new Agent workspace with Genesis genes |
rotifer hello [--template <id>] | Create and run a preset agent from curated templates inside a Rotifer Agent workspace |
rotifer scan [path] | Scan for candidate genes and local skills |
rotifer wrap <gene-name> | Wrap a function or SKILL.md as a gene |
rotifer test [gene-name] | Test a gene (WASM sandbox preferred, --compliance for structural checks) |
rotifer compile [gene-name] | Compile gene to Rotifer IR (auto TS→WASM) |
rotifer run <gene-name> | Execute a single local gene directly |
rotifer list | List local genes in the current Agent workspace |
rotifer login | Log in to Rotifer Cloud (OAuth) |
rotifer logout | Log out from Rotifer Cloud |
rotifer publish [gene-name] | Publish gene(s) to Rotifer Cloud |
rotifer search [query] | Search genes on Rotifer Cloud |
rotifer install <gene-ref> | Install a gene from Cloud (UUID, name, or content hash) |
rotifer info <gene-ref> | View gene details (local or Cloud) |
rotifer stats <gene-ref> | View download statistics for a gene |
rotifer compare [gene-refs...] | Compare 2–5 genes by reputation and downloads |
rotifer reputation [gene-ref] | View gene and creator reputation scores |
rotifer versions <owner> <gene-name> | View version history chain for a gene |
rotifer arena submit <gene-name> | Submit a gene to the Arena (--cloud for Cloud Arena) |
rotifer arena list | List Arena rankings (--cloud for Cloud Arena) |
rotifer arena watch <domain> | Watch Arena rankings live (--cloud for Cloud Arena) |
rotifer agent create <agent-name> | Create an Agent (--composition Seq|Par|Cond|Try|TryPool) |
rotifer agent list | List all agents |
rotifer agent run <agent-name> | Execute genome pipeline (WASM sandbox, --no-sandbox for Node.js) |
rotifer vg [path] | V(g) security scan for gene/skill code |
rotifer network | P2P gene network commands (see rotifer network --help) |
rotifer self-update | Check for updates and upgrade Rotifer packages |
rotifer config | Manage global Rotifer configuration |
rotifer whoami | Show current authentication status |
Genesis Genes
Five pre-installed genes ship with every Agent workspace:
genesis-web-search | search | Native | Full web search with multiple results |
genesis-web-search-lite | search | Native | Lightweight single-answer search |
genesis-file-read | filesystem | Native | Read local files (L0 sandbox restricted) |
genesis-code-format | tooling | Native | Format source code (JSON, TS, etc.) |
genesis-l0-constraint | safety | Native | L0 sandbox constraint checker |
Gene Composition (Algebra)
Genes can be composed using the Rotifer Algebra:
| Seq | Sequential pipeline | Search → Format |
| Par | Parallel with merge | Search + Search-Lite, take first |
| Cond | Conditional branch | If query.length > 100 → Lite, else → Full |
| Try | Fault tolerance | Primary with fallback |
| Transform | Map/transform | Inner gene → mapper gene |
See templates/composition/ for JSON examples.
Examples
The examples/ directory contains reference implementations and experiments:
examples/mcp-migration/ | How to migrate MCP Tools into Rotifer Genes |
examples/api-apocalypse/ | API fault-tolerance experiment — baseline vs Rotifer agent with domain failover |
Development
git clone https://github.com/rotifer-protocol/rotifer-playground.git
cd rotifer-playground
npm install
npm run build
npm test
npm run lint
cargo check -p rotifer-core
cargo test -p rotifer-core
bash demo.sh
Implementation Status
This project is in alpha. The table below shows the honest implementation status of each URAA layer.
| L0 | Kernel | ~35% | L0Gate pre-execution checks (domain, resource, network, filesystem); Audit log | EthicalBoundary, State Anchoring, Trust Anchor |
| L1 | Synthesis | ~95% | WASM sandbox, IR compiler, TS→WASM compilation, native bridge | Full WASI capability negotiation |
| L2 | Calibration | ~40% | Schema validation, sandbox testing, --compliance checks | Static analysis, controlled field trial |
| L3 | Competition | ~60% | Arena ranking, F(g) multiplicative model, R(g) reputation, Cloud Registry | P2P HLT broadcasting (planned), hot-loading, retirement |
| L4 | Collective Immunity | 0% | — | Threat broadcasting, emergency rollback, cross-node consensus |
| Algebra | Composition | ~90% | All 5 operators in Rust; CLI supports Seq/Par/Cond/Try | DataFlowGraph |
Key limitation: L4 depends on a mature L3 P2P layer. P2P is runnable today but experimental and off by default, and still lacks automatic peer discovery and internet-wide reach. Full L4 is targeted for v1.x.
Protocol Compliance
Targets Rotifer Protocol Specification (Frozen). See Implementation Status for detailed layer-by-layer coverage.
| Full | Phenotype, AlgebraExpr, Fitness F(g), Arena | Core gene lifecycle |
| Functional | WASM Sandbox, L0 Gate, Reputation R(g) | L0 at ~35%, expanding |
| Simplified | Agent Lifecycle, Gene Lifecycle, RotiferBinding | MVP subset |
| Planned | P2P HLT, Formal Verification, Cross-Binding Consistency, ZK Proofs, L4 Immunity | Roadmap items |
Changes driven by implementation feedback are proposed through the ADR process.
Roadmap
See CHANGELOG.md for detailed release history. Upcoming milestones:
- v0.9 — economic framework design
- v0.9.1 — P2P network (metadata discovery)
- v1.0 — Stable release: L0-L3 complete, economic system, security audit
Contributing
See CONTRIBUTING.md for development setup and guidelines.
License
Apache-2.0 with Rotifer Safety Clause
This project uses the Apache License 2.0 with an additional Rotifer Safety Clause that requires any deployment to either preserve the L0 Constraint Layer or clearly disclose modifications to it.
The Rotifer Protocol is alive.