Skip to content

ToolsEnabled Sim 0.1.12 (prerelease)

Pre-release
Pre-release

Choose a tag to compare

@ToolsEnabled-Inc ToolsEnabled-Inc released this 14 Oct 20:05

ToolsEnabled Sim 0.1.12 (prerelease) fixes what a fresh user hit in the 2026-10-14 re-test of 0.1.11 and removes what the Claude plugin directory's review could flag without removing a feature or weakening a check: the Claude Code mod now starts its reader with a command written as fixed text and reads no environment variable, capture refuses a wrapper script in place of the browser, and replay, the MCP shim, the plugin option and robot.goto explain themselves in plain words. Physics, recording and replay are unchanged; recorded trajectory bytes are identical to 0.1.11. MIT licensed.

What changed

  • The mod's reader command is fixed text. The /sim pane and the action preflight start the plugin's reader with /usr/bin/env -i -S 'PATH=${PATH}:/usr/local/bin:/usr/bin:/bin' LANG=C.UTF-8 node tools/sim-view.mjs --pane in the plugin folder, and, only where env has no -S (BusyBox, as on Alpine Linux), with the same command and PATH=/usr/local/bin:/usr/bin:/bin. The view, your connection_file and run_root paths, the pane's options and an action's arguments reach the reader as one JSON request on standard input, which tools/sim-view.mjs --pane checks as strictly as its flags. The mod reads no environment variable; env hands the reader your PATH. The reader still starts with only PATH and LANG, so API keys, tokens and NODE_OPTIONS never reach it, and every view and action preflight answers byte for byte as before (30 of 30 identical against one live hub at the reader change, before the version bump; in the release only the connection view's "Plugin:" line reads 0.1.12). The README section "What this plugin runs, sends and reads" prints both commands and answers each remaining directory review hold in one sentence.
  • Capture and wrapper scripts. Capture follows a link in SIM_CHROMIUM_EXECUTABLE to the file it names and refuses a script such as /usr/bin/google-chrome before launching: the capture receipt's chromiumSha256, part of frame identity, had hashed the wrapper script instead of the browser. Set it to the real binary, for example /opt/google/chrome/chrome.
  • Replay. node tools/replay.mjs on a file says the path is not a directory instead of a raw ENOTDIR; --help and -h print the usage.
  • Plugin option. connection_file is titled "Connection file (robot or coordinator)", matching the README's Try it, which installs the coordinator's file.
  • MCP shim after a hub stop. The message says that restarting the hub with the same --root writes the same connection file again, so nothing needs reconfiguring; only a new root needs the new file.
  • robot.goto. Its description says the robot stops at the coordinate, a held crate rides 0.75 m ahead of it, and a delivery goes to deliveryAreas[].robotStops.
  • Hooks and tests. /sim and the pane's close hook have a .catch. Two process-running tests move unchanged into files that make no HTTP request, and tools/generate-release.py's two release downloads move to tools/release_download.py, which only reads bytes.
  • Unchanged: physics, recording and replay code, the MCP tool names, schemas and hints, the /sim pane, its views and its eight action commands (an action still starts only from your own prompt), dependency versions and vendored bytes (Rapier 0.17.3, MuJoCo 3.14.0, Three.js 0.180.0, playwright-core 1.62.0), the Codex manifest.

Get started

  1. Download toolsenabled-sim-0.1.12.zip and toolsenabled-sim-0.1.12.zip.sha256, then run sha256sum -c toolsenabled-sim-0.1.12.zip.sha256.
  2. With Node.js 22 or later, run unzip toolsenabled-sim-0.1.12.zip, cd sim, node tools/demo.mjs --output ./runs/demo, then node tools/replay.mjs ./runs/demo. For MuJoCo: node tools/demo.mjs --output ./runs/demo-mujoco --engine mujoco, then node tools/replay.mjs ./runs/demo-mujoco.
  3. To try the Claude Code plugin, follow the README's "Try it" section. To connect your own agents, see docs/LIVE.md and docs/CLAUDE-INSTALL.md (marketplace commands, one CLAUDE_CONFIG_DIR per robot agent, per-agent private connection options).

Tested on this exact release (source commit b7b0b481c3d51bcae906f0179c6d6e7d0c17c89c, tag v0.1.12; ZIP SHA-256 8e142b90afa3a9f82b78d7001224fd945383c7e5b29d8fcce4b6e84c2631ae20; Linux, Node.js 22.19.0, Claude Code 2.1.300)

  • 138 of 138 Node tests pass headless on source and on the extracted ZIP (132 in 0.1.11), including actual Chromium rendering and the printed capture command run exactly as printed in a POSIX shell. New: both reader commands run for real (only PATH and LANG reach the reader; a PATH entry with a space; an empty or unset PATH; BusyBox env's refusal and the second command), --pane answers exactly as the flags against a live hub and refuses malformed requests, the mod holds exactly the two fixed commands and no environment read, capture refuses a script and resolves a link, replay on a file and --help, and the shim's advice checked against a real restart on the same root. All 15 packaging/scanner tests and the DeepSeek configuration test pass on source and on the extracted ZIP. The 49 plugin hook tests and strict Claude validation pass on source and on the extracted ZIP; strict validation also passes on plugin.json and the marketplace catalog, and lists no environment read for the mod.
  • The ZIP rebuilds byte for byte three times from this clean commit, twice in the release clone and once in a fresh clone with dependencies from the lockfile's offline cache: 5,462,033 bytes, 145 files under one sim/ wrapper.
  • From the extracted ZIP, the scripted demo delivers three crates with no collisions and replays byte-identically over 600 ticks on both engines. Trajectory SHA-256: Rapier 453aa41446485c2865437652a7c4a6256fb395b8ccf52dc7ae6ec35f4c8e53a5; MuJoCo 278254654043d0aa09299940eddb56eef083a0377fd0597868ba2cb10b7ea9d6, the same as 0.1.11.
  • A local Claude Code marketplace add and install of the extracted ZIP with the coordinator's connection file lists toolsenabled-sim 0.1.12, and claude mcp list shows its server Connected.
  • Codex was not run for this release. Real model-driven sessions, native Desktop installation and installation from Codex's /plugins browser remain separate integration qualifications.

Known limits

  • Linux was tested. Native Windows is unsupported because Sim relies on POSIX file ownership checks. Native Claude Desktop installation and production bundle signing need separate qualification; no MCPB is attached.
  • A Sim action starts only from your own prompt, at the terminal or through Remote Control. A headless claude -p run, a scheduled or relayed message, another session or another plugin cannot start one.
  • A Git-backed install takes the repository's default branch at its current commit. Use the verified extracted ZIP for this exact release and offline dependencies. Catalog registration alone does not establish pane or MCP readiness.
  • After a storage failure, the stopped run's recording can end in a partial record; replay cannot verify that run. Start a new hub, with a new run root or once the storage is fixed, to continue.
  • The pinned Rapier compatibility initializer prints an upstream notice on stderr once per process. Recorded physics bytes and MCP stdout are unaffected.
  • Seven dependency files exceed 256 KiB; THIRD-PARTY.md lists the shipped files and licenses. No browser binary ships. Identical rendered frames require the same Chromium build and renderer.
  • The handoff scanner cannot inspect keys hidden in raw deflate data without a recognizable header.
  • One-tick live runs at the default recording cap have a practical ceiling of about 30,000 ticks; larger scenes or heavier traffic can stop sooner. The planner does not predict other robots' future paths; the coordinator schedules crossing traffic.
  • Driver labels are supplied by the operator. Processes running as the same OS user can read private files and act as that user. See SECURITY.md. Security policy: https://toolsenabled.ai/security/; support: support@toolsenabled.ai.

ToolsEnabled is not affiliated with or endorsed by Anthropic, OpenAI, DeepSeek, Cursor, Google DeepMind or any other AI provider.