Your AI. Your editor. One shared Playground.

Ask your agent.
See it in Crabrix.

Create a temporary Rust workspace from your agent or application. Hand its link to another agent or open it in the browser. Share code and selections, then explicitly allow local Run/Debug on one client. The iPhone/iPad app is optional.

v0.3.5 · 491 KiB · Node.js 22+ · MIT SDK code · no account

Example workflow
You ask your agent

“Add a Fibonacci function and show me how it works.”

main.rsAgent · Crabrix
fn fibonacci(n: u32) -> u64 {
    let (mut a, mut b) = (0, 1);
    for _ in 0..n {
        (a, b) = (b, a + b);
    }
    a
}

fn main() {
    println!("{}", fibonacci(10));
}
Shared source. Ready in your editor.▶ Run locally
One roomagents, browser and optional app
1 hourdefault lifetime · up to 24 hours
Local Runyour device executes the code
A participant in your editor

A useful pair of hands, right where you work.

Make the change

Claude reads a file, edits the current revision and sends the change to everyone in the room. The web and native editors show the actual shared source.

Point to the code

A named selection shows which part Claude is explaining. Human selections also reach the MCP client, including Unicode text.

Keep your place

If another participant changes the project first, the proposed edit is rejected. Claude reads the new revision before trying again.

The actual shared editor

Code arrives. Your tools stay local.

These Simulator captures come from a four-participant check: the MCP bridge, a browser and two Crabrix apps. Each app ran its own compiler and debugger.

iPhone Simulator editor displays Claude MCP and human selections in the shared Rust source
iPhone Simulator · shared source and named selections. Open to zoom.
iPad Simulator locally debugs MCP-shared Rust and shows actual String and Vec values
iPad Simulator · String and Vec in the local debugger. Open to zoom.
New in this release

Clearer when something goes wrong.

crabrix doctor

Checks the version, Node, DNS, TLS, proxy settings and the relay. It opens no room, reads no source and changes no setting. Add --json for scripts.

Errors with a reason

A refused call carries a stable code such as REVISION_CONFLICT or ROOM_EXPIRED, whether a retry can help, and what to do next. A network problem no longer looks like an expired link.

Reconnect without losing your place

Connecting again to the same room keeps its slot and the rights you already had. A failed switch to another room leaves you in the current one. Execution permission is never carried over.

Stronger revision checks

An edit prepared before another client replaced the room’s snapshot is now refused, so the agent reads the project again first. If a reply is lost, OUTCOME_UNKNOWN says so and the next read settles it.

Choose the edition

Create and apply accept edition, 2021 or 2024, in JavaScript, Rust and Go. Changing it needs the current revision and makes earlier build results out of date.

Read results separately

crabrix_runtime_inspect only reads a job’s status and output. crabrix_runtime_control stops or steps it. crabrix_runtime_job still works, with the same checks.

In the Playground, choose Connect AI to get the setup for your client and copy a task with its room link. Your agent appears in the room when it joins.

One-time setup on your computer

From your agent to a shared editor.

  1. 01

    Install it once for your client

    Choose the one way that fits your client. You do not need both. A Crabrix account is not required.

    Claude Code

    The plugin registers the MCP server and adds a handoff skill. Do not add a second server by hand.

    /plugin marketplace add sergii-ziborov/crabrix-sdk
    /plugin install crabrix@crabrix

    Another client that runs local MCP servers

    Needs Node.js 22 or newer. Add this entry to the client’s MCP configuration and restart it. This is a documented configuration and has not been tested in every client.

    {
      "mcpServers": {
        "crabrix": {
          "command": "npx",
          "args": ["-y", "crabrix@0.3.5"]
        }
      }
    }

    A client with only remote MCP

    Not supported yet. Crabrix has no remote MCP endpoint, so use a client that can start a local server.

    Still using crabrix-playground-mcp?

    It is the older name of this bridge. Remove that server and add one of the above, so the two do not join a room as separate participants. Existing room links keep working.

    Check your setup with npx -y crabrix@0.3.5 doctor. Machine-readable setup: bootstrap.json.

  2. 03

    Share from Crabrix or the web

    Ask your connected agent to create a Crabrix Playground and return its temporary link, or open the web Playground and choose Share. Copy the entire link, including everything after #.

    Give that link to Claude only when you want to grant its MCP host and model access to this room’s source. View-only links allow reading; editable links allow source changes.

  3. 04

    Give your agent a task. Open the link.

    Connect to this Crabrix Playground: [paste your private link]. Read the current source, add a Fibonacci function, and highlight the part you changed. Preserve everyone else’s work.

    The MCP bridge appears as Agent · Crabrix. Watch its code and selection in the browser or optional app. Use Run or Debug yourself, or ask Claude to discover local clients. In Share on the selected client, compare its device/controller keys, choose operations and press Allow selected operations. Save a local copy before expiry.

A library, not only an MCP command

Use Crabrix in your own agent.

No phone app is required. All three APIs use the same local protocol core and require Node.js 22+. Rust and Go embed the bridge; they do not need a global npm install. Code is MIT; brand artwork and app screenshots retain separate terms.

JavaScript / TypeScript

Import the library directly. ESM, CommonJS and self-contained TypeScript declarations are included.

npm install crabrix@0.3.5

npm package ↗

Rust SDK

Typed source, revision, handoff and runtime calls through bounded local stdio. The crate is published on crates.io; Node.js 22+ runs its embedded protocol core.

cargo add crabrix@0.3.5

crates.io package ↗ · Rust API docs ↗

Go SDK

Context-aware calls, bounded transport and explicit cleanup. The same source and execution permission rules apply.

go get github.com/sergii-ziborov/crabrix-sdk/go/crabrix@v0.3.5

Go source and instructions ↗

import { Crabrix } from "crabrix";

const agent = new Crabrix({ name: "Review agent" });
try {
  await agent.create({ name: "Rust exercise", lifetimeMinutes: 60 });
  const file = await agent.read("main.rs");
  await agent.apply({
    expectedRevision: file.revision,
    changes: [{ path: file.path, text: file.text + "// reviewed\n" }],
  });
  const handoff = await agent.share("edit");
  // Deliver handoff.link only to an intended recipient.
  // Show handoff.expiresAt alongside your share action.
} finally {
  agent.close();
}

Public GitHub repository ↗ · SDK integration walkthrough · Run a shared Rust interview · Two agents: development, review and learning

Small, temporary, shared

Your room stays yours.

The relay holds AES-256-GCM ciphertext in memory. The bridge decrypts locally using the key in your link fragment. Your MCP host and its model receive the source you ask them to read; their own data policies apply.

Up to four participants, 16 text files, 64 KiB per file and 128 KiB in total. No images, package archives or credentials are transferred. Rooms expire after the chosen lifetime; a server restart can end one earlier. There is no account storage.

crabrix_disconnect removes the bridge’s participant and releases its in-memory document. It does not close the other editors. The room creator can end the room from Share.

Included in this bridge

  • Connect to an authorized room
  • Create a Playground and get its private link
  • Read current source, expiry and participants
  • Read a full source snapshot and explicitly hand off an edit/view link
  • Apply changes with a revision check
  • Show and receive editor selections
  • End a room created by this bridge
  • Request local Check, Build, Run and Debug on one explicitly permitted client
  • Read real diagnostics, output and paused locals; Step, Continue and Stop the owned job

Ask Claude to end a bridge-created room before disconnecting if you want to close it early. An ordinary edit link does not grant ownership.

Execution stays on the selected device/browser. MCP permission starts off, lasts at most ten minutes and can be revoked. Shared execution accepts manifest-free standard-library Rust and local modules; it never attaches private project inputs or downloads packages. There is no shell, filesystem, Git push or backend execution.

Explicit permission. Local execution.

One participant runs. Everyone can see the result.

Choose the client

Use the current web Playground or Crabrix 1.1.3 build 120 or newer. Older apps still edit source together. Names are labels: compare the full controller/device keys in Share before allowing execution. In the browser, use Check once to prepare the verified compiler yourself.

Inspect actual work

Build never runs main. Run and Debug return an owned job; your assistant reads its real status and paged output. Debug supports String, Vec and concrete local structures, stepping and breakpoints. Jobs stop after two minutes including pauses. Source changes stop stale work; backgrounding, disconnect or expiry revoke permission.

Output travels. Execution stays.

Another participant’s Run only adds a reported output preview to your Output panel. Your compiler and debugger stay idle, and the report cannot award lesson progress or verify your project. Previews are bounded and may truncate; full owned output stays on the executing client. Ordinary offline Cargo and Rust + Web keep their existing local features.

The relay carries encrypted messages only. Code, comments and program output remain untrusted project data. No arbitrary watch expressions, implicit toolchain/package downloads, private files, stdin or host environment enter the MCP execution profile.

Crabrix SDK + MCP · v0.3.5

Bring your AI into the room.

A JavaScript/TypeScript library and MCP executable, with Rust and Go bindings in the public repository. No model subscription or API key is included.

Verify your download

SHA-256

87986bd3e062f12636a8c119792befdba17bd4f00c243a7f9afa0d57b443f983

Third-party notices · MIT code license · Brand and screenshot terms