Skip to content

Wiggle

Wiggle is a sandbox to run code in

Install

$docker run -it wiggle bash
Claude Code
claude mcp add wiggle -- docker run -it wiggle bash
Cursor / Claude Desktop (mcp.json)
{
  "mcpServers": {
    "wiggle": {
      "command": "docker",
      "args": [
        "run",
        "-it",
        "wiggle",
        "bash"
      ]
    }
  }
}

Install command taken from the project's README or registry entry. Always review code before running it.

Wiggle

A working copy of the sandbox that Claude (claude.ai) runs code in.

When Claude executes a command, reads a file, converts a document, or takes a screenshot, it is not running on a web server. It is running inside a small virtual machine, one per conversation. This repository is that machine: the same files, tools, packages, and instructions, packaged so you can run it yourself on Docker, e2b, Modal, or any Linux host.

Codename wiggle is what Anthropic calls this VM internally.

Quick start

docker build -t wiggle .
docker run -it wiggle bash

# inside:
soffice --version            # LibreOffice 24.2
python3 -c "import pandas"   # full data science stack
ls /mnt/skills               # the 40 playbooks Claude follows

Want the exact bytes instead of a rebuild? The GitHub release carries the full filesystem of a live session (8.9 GB, sanitized):

cat wiggle-part-aa wiggle-part-ab > wiggle.tar.zst
zstd -d -c wiggle.tar.zst | docker import - wiggle:live

See ROOTFS.md for the full download and verification steps.

How it works

  • Claude decides to run something and sends the command over a private channel to a supervisor process inside the VM.
  • The supervisor starts the command with a fixed environment (see meta/env-contract.md) and streams the output back.
  • The command runs as root with no seccomp and no user sandbox. Inside this VM, root is normal. The isolation that matters is the VM boundary itself.
  • User files arrive as mounted folders under /mnt/user-data. In production those are remote storage; here they are plain directories.

Machine spec to match if you care about parity: 1 vCPU, 3.9 GiB RAM, no swap. Details in meta/box-spec.md.

What is inside

Capability What gives you that
Documents (docx, xlsx, pptx, pdf) LibreOffice 24.2, pandoc, python-docx, openpyxl
OCR (make scans searchable) tesseract 5 with English models, byte-identical to the public Google release
File-type detection magika (Google model, public build)
Web automation and screenshots Playwright 1.56 with a pinned Chromium at /opt/pw-browsers, plus puppeteer with Chrome-headless-shell
Diagrams and charts mermaid-cli, matplotlib, graphviz
Numbers and data pandas, numpy, scipy, scikit-learn, Jupyter
Typesetting and PDFs TeX Live 2023, poppler, qpdf, ImageMagick, wkhtmltopdf
Media ffmpeg
The playbooks Claude follows mnt-skills/, 40 skills, verbatim

The skills are the interesting part. They are plain Markdown instruction files that Claude reads before doing certain jobs: how to fill a PDF form, how to run deep research (including the sub-agent prompts), how to drive the desktop with computer use, how to build a skill. Public ones cover office documents and file reading; example ones cover deep-research, morning briefings, painting, MCP server building, and more. Browse them under mnt-skills/.

Two custom Anthropic binaries are included: extract-text (turns uploaded documents into text, Rust) and the mount daemon interface (rclone-filestore, Go, documented in meta/filestore-api.md).

What is not included

Four things live outside the filesystem, so no dump could contain them:

Similar plugs

Turn any codebase, with its docs, SQL schemas, configs, and PDFs, into a queryable knowledge graph. A /graphify skill for Claude Code, Cursor, Codex, and Gemini CLI: local…

Why use many token when few token do trick. Viral skill + proxy for coding agents that cuts 65% of tokens by talking like a caveman.

The 1st Collaborative AI Design Agent Workspace. Local-first and open source. Create prototypes, websites, apps, dashboards, presentations, images, and videos with your team…

Explore related