An open-source filesystem that mounts enterprise REST APIs as files. No SDKs, no new abstractions. Agents use ls, cat, grep, and diff — the tools they were trained on.
No SDKs. No new abstractions. Every LLM was trained on Unix. ls, cat, grep, diff work out of the box.
The entire enterprise is mounted. ls returns instantly from cached metadata. Bytes only move on cat — pay-per-access.
Drafts, locks, versions via path conventions. .draft.md for isolation. @v3.md for snapshots. .lock for concurrency.
Every operation is audit-logged. Versions auto-snapshot. Rollback with tap rollback [email protected]. Compliance is built in, not bolted on.
Google Workspace ships built-in. Install more from GitHub: tap install tapfs/jira. Or build your own with a YAML spec.
FUSE on Linux/Docker. File Provider Extension on macOS (Finder integration). Works in E2B sandboxes, Cloudflare Workers, anywhere.
Point tapfs at a backend and it appears as files. Agents explore with ls. Every directory has an agent.md that teaches the agent what's available. Resources render as Markdown with YAML frontmatter.
Writes are safe by default. Direct writes auto-promote on close. Or use the explicit draft workflow for staged changes. Every write is versioned and reversible.
Define endpoints, describe your collections, and add agent tips. tapfs resolves slugs, paginates, caches, and auto-generates an agent.md that teaches agents how to navigate your API.
14 connectors ship today — GitHub, Jira, Slack, Salesforce, Linear, Notion, Stripe, and more. Install from the registry or drop a YAML file in your connectors directory.
agent.md — a Markdown file that tells the agent what's here, how to navigate it, and what operations are safe. No system prompt engineering. No pre-configuration. The agent learns by reading, the way it reads any file.Descriptions, capabilities, tips, and relationships from the connector YAML are rendered into agent.md automatically at mount time. The agent discovers what's available by reading — the way it reads any file.
Connector authors write domain expertise once in the spec. Every agent that mounts the filesystem inherits it. No system prompt engineering. No pre-configuration. And because it's Markdown, it's versionable, diffable, and human-reviewable.
Map list_endpoint and get_endpoint for each collection. Set id_field and slug_field so tapfs knows how to build filenames from API responses.
Write description, slug_hint, and tips in the spec. tapfs auto-generates a rich agent.md that teaches agents how to navigate your API as a filesystem.
Run tap mount rest --spec my-api.yaml. Browse with ls, read with cat. Your API is now a filesystem that any agent can use with zero integration.
| tapfs | MCP | API Gateways | LangChain Tools | |
|---|---|---|---|---|
| Abstraction level | OS (filesystem) | Protocol | Network | Application |
| Agent integration | Zero (POSIX) | SDK required | SDK required | Framework-locked |
| Transactional | Built-in | No | No | No |
| Governance | Structural | Bolt-on | Partial | None |
| Discovery | ls |
Tool listing | API catalog | Code |
| Offline capable | Yes | No | No | No |
docker run --rm -it \
--device /dev/fuse --cap-add SYS_ADMIN \
-e GOOGLE_ACCESS_TOKEN="ya29...." \
tapfs:latest shell
tap mount google --mount-point /mnt/tap --data-dir /var/lib/tapfs &cargo install tapfs
tap mount google --mount-point /mnt/tap
apt install libfuse-dev (Linux) or macFUSE/FUSE-T (macOS)git clone https://github.com/tapfs/tap.git
cd tap
cargo build --release
./target/release/tap mount google --mount-point /mnt/tap