Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.mirage.strukto.ai/llms.txt

Use this file to discover all available pages before exploring further.

Installation

Install the Node runtime:
pnpm add @struktoai/mirage-node
pnpm add -D tsx typescript
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.
import { MountMode, RAMResource, Workspace } from '@struktoai/mirage-node'

async function main(): Promise<void> {
  const ws = new Workspace({ '/data': new RAMResource() }, { mode: MountMode.WRITE })

  await ws.execute('echo "hello mirage" | tee /data/hello.txt')
  const result = await ws.execute('cat /data/hello.txt')
  process.stdout.write(result.stdoutText)

  await ws.close()
}

main()
Run it:
pnpm tsx quickstart.ts

Run Commands

Once a resource is mounted, you can use Mirage like a shell over your virtual filesystem:
import { MountMode, RAMResource, Workspace } from '@struktoai/mirage-node'

async function main(): Promise<void> {
  const ws = new Workspace({ '/data': new RAMResource() }, { mode: MountMode.WRITE })

  await ws.execute(`echo '{"name": "alice"}' | tee /data/user.json`)

  const files = await ws.execute('ls /data/')
  process.stdout.write(files.stdoutText)

  const name = await ws.execute('jq ".name" /data/user.json')
  process.stdout.write(name.stdoutText)

  const match = await ws.execute('grep alice /data/user.json')
  process.stdout.write(match.stdoutText)

  await ws.close()
}

main()

Next Steps

  • See TypeScript Installation for optional native peers (FUSE, Redis, Postgres, MongoDB, SSH, Email, Audio).
  • 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.