
Write HTML. Render video. Built for agents.
Mirage gives agents one terminal that ties together a virtual filesystem, virtual command-line tools, and routed runtimes. That means files from services like Slack, Redis, or cloud storage can appear under one root and be handled with normal shell commands. It also adds profiles, allow/ask/deny rules, hidden files, and a policy engine so agent actions can be controlled before they run. The repo ships TypeScript and Python SDKs plus examples, docs, and conformance tests.
Builders who want their agent to work inside a controlled shell with mounted data sources and virtual tools.
You can let an agent inspect files, run commands, and touch external systems through one sandboxed terminal instead of stitching together separate tools.
Mount sources like S3, Google Drive, Slack, Gmail, Redis, and databases under one root so agents use POSIX-style commands on all of them.
Answer commands like `git`, `slack`, or `ntn` inside Mirage, with tools dispatched by name and routed to the right backend.
Send Python, JavaScript, or other commands to in-process, sandboxed, or remote runtimes without changing the workspace layout.
Combine filesystem access, CLIs, pipes, redirection, variables, jobs, and history into one shell experience for agents.
Use `allow`, `ask`, `deny`, `hide`, and `show` rules to control what commands run and what files an agent can see.
Block dangerous actions before they run and gate filesystem operations and session writes through the same policy layer.
Turn external changes into filesystem events so agents can react to new messages or updates without rescanning.
Use the SDKs and examples to embed Mirage into applications and define workspaces, resources, mounts, and runtimes.
uv add mirage-ai # installs the `mirage` library and the `mirage` CLI binary
npm install @struktoai/mirage-node # Node.js servers and CLIs npm install @struktoai/mirage-browser # browser / edge runtimes npm install @struktoai/mirage-agents # OpenAI / Vercel AI / LangChain / Mastra adapters
curl -fsSL https://strukto.ai/mirage/install.sh | sh # or npm install -g @struktoai/mirage-cli # or uvx mirage-ai # or npx @struktoai/mirage-cli
mirage workspace create ws.yaml --id demo mirage execute --workspace_id demo --command "cp /s3/report.csv /data/report.csv" mirage provision --workspace_id demo --command "cat /s3/data/large.jsonl" mirage workspace snapshot demo demo.tar mirage workspace load demo.tar --id demo-restored
Mirage is a Virtual Terminal for AI Agents. The virtual filesystem delivers broad data context, virtualized CLIs give an agent more flexibility on tool use, dynamic runtimes save underlying infrastructure cost and are more token efficient, and fine-grained control over an agent's actions and even over what it can see gives the best security. Together these parts form one virtualized terminal, giving the best agent performance, cost efficiency and security.
Here is an example of launching Mirage inside an application:
ws = Workspace(
{
"/tmp": (RAMResource(), MountMode.EXEC),
"/redis": (RedisResource(url=redis_url), MountMode.WRITE),
"/slack": (SlackResource(SlackConfig(token=slack_bot_token)), MountMode.EXEC),
},
# monty captures python, so scripts run sandboxed inside the workspace
runtimes=[MontyRuntime(captures=["python", "python3"]), "vfs"],
)
# one grep sweeps every source
await ws.execute("grep -rln session /redis /tmp")
# run a script that lives in Slack, file the report into Redis
await ws.execute("python3 /slack/channels/general_.../files/example__F....py > /redis/report.txt")
# install a typed CLI under a head word: dispatched by name, not by path,
# and discoverable through `man`, `type` and `which` like any other program
ws.register_cli("slack", SLACK, {"token": slack_bot_token})
await ws.execute('slack send-message --channel general --text "report is up"')
ls, grep, find and jq.git, slack and ntn are answered by Mirage itself, so an agent drives the service with nothing installed, across different runtimes and machines, and one tool can be virtualized into two or more, each under its own name with its own credentials.allow, ask and deny govern commands and CLIs, while hide and show govern files and folders, so a hidden path is not merely unreadable but absent from the filesystem the agent sees.Everything Mirage "mounts" as one unified virtual filesystem for AI agents. Each service sits side-by-side under a single root and answers the same POSIX semantics.
| Resources | |
|---|---|
| Object Storage | |
| Files and Documents | |
| Messaging and Work | |
| Databases and Data Platforms |
Sign in to join the discussion.
No comments yet. Be the first to say what this is good for.

Write HTML. Render video. Built for agents.
Ultra-lightweight, open-source, self-hosted personal AI agent framework in Python with WebUI, tools, memory, MCP, multi-agent workflows, automation, and chat apps
SkillOpt is a text-space optimizer that trains reusable natural-language skills for frozen LLM agents through trajectory-driven edits, validation-gated updates, and deployable best_skill.md artifacts.

Omnigent is an open-source AI agent framework and meta-harness: orchestrate Claude Code, Codex, Cursor, Pi, and custom agents — swap harnesses without rewriting, enforce policies and sandboxing, and collaborate in real time from any device.
A theoretical reconstruction of the Claude Mythos architecture, built from first principles using the available research literature.
🕷️ An adaptive Web Scraping framework that handles everything from a single request to a full-scale crawl!