[{"data":1,"prerenderedAt":4},["ShallowReactive",2],{"readme:mirage":3},"\u003Cp align=\"center\">\n  \u003Cimg src=\"https:\u002F\u002Fraw.githubusercontent.com\u002Fstrukto-ai\u002Fmirage\u002FHEAD\u002Fassets\u002Fmirage-og-light@2x.png\" alt=\"Mirage: A Unified Virtual File System for AI Agents\" width=\"900\" \u002F>\n\u003C\u002Fp>\u003Cp align=\"center\">\n    \u003Ca href=\"https:\u002F\u002Fdocs.mirage.strukto.ai\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fmirage-docs-0C0C0C?labelColor=FAFAFA\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fwww.strukto.ai\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fmade by-strukto.ai-0C0C0C?labelColor=FAFAFA\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002Fmain\u002FLICENSE\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Flicense-Apache--2.0-0C0C0C?labelColor=FAFAFA\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fdiscord.gg\u002Fu8BPQ65KsS\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fdiscord-join-0C0C0C?labelColor=FAFAFA&amp;logo=discord&amp;logoColor=0C0C0C\" \u002F>\u003C\u002Fa>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fdocs.mirage.strukto.ai\u002Fpython\u002Fquickstart\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Fpython-docs-0C0C0C?labelColor=FAFAFA&amp;logo=python&amp;logoColor=0C0C0C\" alt=\"Python docs\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fpypi.org\u002Fproject\u002Fmirage-ai\u002F\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fpypi\u002Fv\u002Fmirage-ai.svg?color=0C0C0C&amp;labelColor=FAFAFA\" \u002F>\u003C\u002Fa>\n    \u003Cbr \u002F>\n    \u003Ca href=\"https:\u002F\u002Fdocs.mirage.strukto.ai\u002Ftypescript\u002Fquickstart\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002Ftypescript-docs-0C0C0C?labelColor=FAFAFA&amp;logo=typescript&amp;logoColor=0C0C0C\" alt=\"TypeScript docs\" \u002F>\u003C\u002Fa>\n    \u003Ca href=\"https:\u002F\u002Fwww.npmjs.com\u002Fpackage\u002F@struktoai\u002Fmirage-node\" rel=\"nofollow ugc noopener\">\n        \u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fnpm\u002Fv\u002F@struktoai\u002Fmirage-node.svg?color=0C0C0C&amp;labelColor=FAFAFA\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\u003Cp align=\"center\">\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002FHEAD\u002FREADME.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"README in English\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FEnglish-d9d9d9\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002FHEAD\u002Freadme\u002FREADME.zh-CN.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"简体中文 README\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F简体中文-d9d9d9\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002FHEAD\u002Freadme\u002FREADME.zh-TW.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"繁體中文 README\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F繁體中文-d9d9d9\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002FHEAD\u002Freadme\u002FREADME.fr.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"README en Français\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FFrançais-d9d9d9\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002FHEAD\u002Freadme\u002FREADME.vi.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"README Tiếng Việt\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FTi%E1%BA%BFng%20Vi%E1%BB%87t-d9d9d9\" \u002F>\u003C\u002Fa>\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fstrukto-ai\u002Fmirage\u002Fblob\u002FHEAD\u002Freadme\u002FREADME.ko.md\" rel=\"nofollow ugc noopener\">\u003Cimg alt=\"README 한국어\" src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002F%ED%95%9C%EA%B5%AD%EC%96%B4-d9d9d9\" \u002F>\u003C\u002Fa>\n\u003C\u002Fp>\u003Cp>Mirage is \u003Cstrong>a Unified Virtual File System for AI Agents\u003C\u002Fstrong>: 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.\u003C\u002Fp>\n\u003Cpre>\u003Ccode class=\"language-ts\">const ws = new Workspace({\n  '\u002Fdata':  new RAMResource(),\n  '\u002Fs3':    new S3Resource({ bucket: 'logs' }),\n  '\u002Fslack': new SlackResource({ token: process.env.SLACK_BOT_TOKEN! }),\n})\n\nawait ws.execute('grep -r alert \u002Fslack\u002Fchannels\u002Fgeneral__C04QX\u002F | wc -l')\nawait ws.execute('cp \u002Fs3\u002Freport.csv \u002Fdata\u002Flocal.csv')\nawait ws.execute('wc -l $(find \u002Fs3\u002Fdata -name \"*.jsonl\")')\n\n\u002F\u002F Commands are extensible: register new commands, or override one per\n\u002F\u002F resource + filetype, e.g. `cat` on S3 Parquet renders rows as JSON.\nws.command('summarize', ...)\nws.command('cat', { resource: 's3', filetype: 'parquet' }, ...)\n\nawait ws.execute('summarize \u002Fdata\u002Flocal.csv')\nawait ws.execute('cat \u002Fs3\u002Fevents\u002F2026-05-06.parquet | jq .user')\n\u003C\u002Fcode>\u003C\u002Fpre>\n\u003Ch2>About\u003C\u002Fh2>\n\u003Cul>\n\u003Cli>\u003Cstrong>One interface instead of N SDKs and M MCPs.\u003C\u002Fstrong> Every service speaks the same filesystem semantics, and pipelines compose across services as naturally as on a local disk.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Around 50 built-in backends:\u003C\u002Fstrong> RAM, Disk, Redis, S3 \u002F R2 \u002F OCI \u002F Supabase \u002F GCS, Gmail \u002F GDrive \u002F GDocs \u002F GSheets \u002F GSlides, GitHub \u002F Linear \u002F Notion \u002F Trello, Slack \u002F Discord \u002F Email, MongoDB \u002F Postgres \u002F LanceDB \u002F Qdrant, SSH, and more, mounted side-by-side under a single root.\u003C\u002Fli>\n\u003Cli>\u003Cstrong>Portable workspaces:\u003C\u002Fstrong> clone, snapshot, and version a workspace; agent ru\u003C\u002Fli>\n\u003C\u002Ful>\n",1784240407652]