StackMap
Subscribe
Explore / mirage
strukto-ai

mirage

Unified virtual filesystem for AI agents — mounts S3, Slack, Gmail, Postgres and ~50 backends as one tree so any bash-speaking LLM can grep and pipe across services. Snapshotable, embeddable.

3,324 239 TypeScript Apache-2.0updated today
Curator's take

One interface instead of N SDKs and M MCP servers: mount S3, Slack, Gmail, GitHub, Postgres, Redis (~50 backends) side-by-side as one filesystem, and any LLM that already knows bash can cat, grep and pipe across all of them with zero new tool vocabulary — plus per-resource command overrides (cat a Parquet as JSON rows), snapshotable/portable workspaces, and in-process Python/TS SDKs with OpenAI Agents/LangChain/Pydantic AI adapters and a CLI+daemon for Claude Code/Codex. Reach for it when your agent touches many external systems and tool-schema sprawl is eating your context window. NOT for a single data source (just use its SDK), heavy binary/streaming workloads, or Windows — FUSE mounts need macOS/Linux.

Mapped by ShipWithAI editors · links verified
README.md

Mirage: A Unified Virtual File System for AI Agents


Python docs
TypeScript docs

README in English 简体中文 README 繁體中文 README README en Français README Tiếng Việt README 한국어

Mirage is a Unified Virtual File System for AI Agents: it mounts services and data sources like S3, Google Drive, Slack, Gmail, and Redis side-by-side as one filesystem. Any LLM that already knows bash can read, grep, and pipe across every backend out of the box, with zero new vocabulary.

const ws = new Workspace({
  '/data':  new RAMResource(),
  '/s3':    new S3Resource({ bucket: 'logs' }),
  '/slack': new SlackResource({ token: process.env.SLACK_BOT_TOKEN! }),
})

await ws.execute('grep -r alert /slack/channels/general__C04QX/ | wc -l')
await ws.execute('cp /s3/report.csv /data/local.csv')
await ws.execute('wc -l $(find /s3/data -name "*.jsonl")')

// Commands are extensible: register new commands, or override one per
// resource + filetype, e.g. `cat` on S3 Parquet renders rows as JSON.
ws.command('summarize', ...)
ws.command('cat', { resource: 's3', filetype: 'parquet' }, ...)

await ws.execute('summarize /data/local.csv')
await ws.execute('cat /s3/events/2026-05-06.parquet | jq .user')

About

  • One interface instead of N SDKs and M MCPs. Every service speaks the same filesystem semantics, and pipelines compose across services as naturally as on a local disk.
  • Around 50 built-in backends: RAM, Disk, Redis, S3 / R2 / OCI / Supabase / GCS, Gmail / GDrive / GDocs / GSheets / GSlides, GitHub / Linear / Notion / Trello, Slack / Discord / Email, MongoDB / Postgres / LanceDB / Qdrant, SSH, and more, mounted side-by-side under a single root.
  • Portable workspaces: clone, snapshot, and version a workspace; agent ru

Continue your stack

What teams reach for next — and why each earns a place beside mirage. Ranked by curator confidence.