Skip to main content

Installation

Install the Node runtime:
npm install @struktoai/mirage-node and yarn add @struktoai/mirage-node work too.

Create a Workspace

Start with the RAM resource so you can try Mirage without credentials.
Run it:

Run Commands

Once a resource is mounted, you can use Mirage like a shell over your virtual filesystem:

Estimate Before You Run

execute(..., { provision: true }) returns a ProvisionResult instead of running the command: network/cache bytes, read ops, and a precision telling you how much to trust the numbers (exact, range, unknown — totals under unknown are floors). Pipelines, &&/||, if/case, loops, and subshells aggregate automatically.
Read commands are estimated out of the box on every backend. When you register your own command, pass provision: to command({...}) (reuse a helper like makeFileReadProvision(myStat) or defaultProvision(name, myStat), or wrap a bespoke command list with withDefaultProvisions(commands, myStat)), or omit it and the planner reports unknown. Full semantics live in the CLI provision docs.

Output Safeguards

To keep huge reads from flooding an agent, cat, grep, rg, head, and tail cap their final output at 2000 lines by default. When a cap fires, the agent sees the truncated bytes plus a stderr notice (output truncated at safeguard limit (2000 lines); ...); the exit code stays 0. Caps fire only on the terminal command of a pipeline, so cat big.txt | head -n 30 still shows 30 lines.

Configure per mount

Pass a commandSafeguards option keyed by mount prefix, then command. Each CommandSafeguard sets maxLines / maxBytes (output cap) and/or timeoutSeconds (deadline); onExceed is TRUNCATE (default, exit 0 plus notice) or ERROR (exit 1 plus notice):
The same limits are available to the CLI as a command_safeguards block in the workspace YAML.

Next Steps

  • See TypeScript Installation for optional native peers (FUSE, Redis, Postgres, MongoDB, SSH, Email).
  • Browse TypeScript Agents to wire Mirage into OpenAI Agents SDK, Vercel AI SDK, LangChain, Mastra, and more.
  • Pick a real backend from the Resources section, such as S3, Slack, or Discord.