Skip to content

ToolsEnabled Sim 0.1.8 (beta)

Pre-release
Pre-release

Choose a tag to compare

@ToolsEnabled-Inc ToolsEnabled-Inc released this 13 Oct 18:18

ToolsEnabled Sim 0.1.8 (beta) stops the hub as soon as a recording write fails, prints a replay capture command that works for every run, and refuses a FIFO in place of a private file at once, while preserving the pinned physics engines and recorded trajectory bytes. MIT licensed.

What changed

  • The hub stops on any failed recording write. Before, only EIO, ENOSPC and EBADF stopped it, and a write cut short by a file-size limit went unnoticed, so after EFBIG, EROFS or EDQUOT the hub kept accepting and journaling calls while the simulated world moved ahead of its record. Now a write to trajectory.jsonl, actions.jsonl or live.jsonl that fails for any reason or writes only part of its record stops the hub: every later call gets "Hub stopped after storage failure", the live clock stops, and the hub's terminal shows one warning naming the error code.
  • History survives a cut-short run. /sim runs and sim-view runs list a run whose recording ends in a partial record as unreadable and still show every other run, instead of failing the whole page with "Run recording is incomplete. Reload the view."
  • Exact capture command. /sim replay prints a tools/capture.mjs command whose --seconds equals the run's recorded length, so it works for runs shorter than ten seconds and captures the whole of longer runs. A run with no recorded tick yet, such as a just-reset run, gets no capture command and says why.
  • FIFOs are refused at once. A FIFO given as the connection file, a run file or a scenario file is refused by the existing regular-file check instead of blocking forever: the MCP server prints "Invalid SIM_CONNECTION file.", and the pane and action preflight report the unusable file instead of waiting out their timeout.
  • Physics unchanged. Dependency versions and vendored bytes are unchanged: Rapier 0.17.3, MuJoCo 3.14.0, Three.js 0.180.0 and playwright-core 1.62.0. The MCP tool list, titles and hints are unchanged.

Get started

  1. Download toolsenabled-sim-0.1.8.zip and toolsenabled-sim-0.1.8.zip.sha256, then run sha256sum -c toolsenabled-sim-0.1.8.zip.sha256.
  2. With Node.js 22 or later, run unzip toolsenabled-sim-0.1.8.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 connect your own agents, see docs/LIVE.md: node tools/live.mjs --root /absolute/run --work-record /absolute/work-record.json (add --engine mujoco for MuJoCo). See docs/CLAUDE-INSTALL.md for the marketplace commands, one CLAUDE_CONFIG_DIR per robot agent, and per-agent private connection options.

Tested on this exact release (source commit cccb0fb7657f20ce99a8f48a20f0899c200d9a5d, tag v0.1.8; ZIP SHA-256 268f1e25f22b5a9ea9974caa0b41dd8d1764f89832af23a5fc09b47e5908c7c0; Linux, Node.js 22.19.0, Claude Code 2.1.296)

  • 129 of 129 Node tests pass headless on source, including actual Chromium rendering, the printed capture command run exactly as printed, six injected journal failures (a short write and an EFBIG, EROFS or EDQUOT error on each journal) and five FIFO refusals. The 13 new tests fail on 0.1.7. All 14 packaging/scanner tests and the DeepSeek configuration test pass on source. The 44 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.
  • Under a real 32 KiB file-size limit (ulimit -f), 0.1.7 accepted a cut-short tick without an error and kept accepting and journaling calls after EFBIG; 0.1.8 reported the cut-short write, then refused every later call and journaled nothing more.
  • The ZIP rebuilds byte for byte twice from this clean commit: 5,444,316 bytes, 141 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.7.
  • A local Claude Code marketplace add and install from this commit lists toolsenabled-sim 0.1.8, and claude mcp list shows its server Connected to a running hub. Real model-driven sessions, native Desktop installation and Codex's Plugins Directory installation 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.