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 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.
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 acommandSafeguards 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):
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.