Skip to main content
Mesa’s virtual filesystem lets tools interact with repository files directly — no full clone required. Instead of pulling an entire repo to disk, Mesa fetches data on demand and presents it through a standard filesystem interface. Reads and writes go through Mesa’s API transparently, so any tool that works with files can work with Mesa repositories. There are two ways to use the virtual filesystem: OS-level virtualization (FUSE mount) and app-level virtualization (just-bash SDK). Both give you the same underlying Mesa filesystem — the difference is how it’s exposed to your tools.

OS-level virtualization (FUSE)

OS-level virtualization uses FUSE to mount repositories as real directories on the host. Every process on the machine — editors, language servers, build systems, agents — sees standard files and directories at a mount path like ~/.local/share/mesa/mnt/my-org/my-repo. Use OS-level virtualization when:
  • Your agent needs to install dependencies (npm install, pip install, etc.) or run arbitrary code
  • You’re working inside a sandboxed environment (Docker container, Daytona workspace, lightweight VM)
  • You need multiple processes to access the filesystem concurrently through native file paths
  • Your tooling requires a real mount point (e.g., build systems, compilers, language servers)
See OS-level Virtualization for setup and usage.

App-level virtualization (just-bash)

App-level virtualization runs entirely in-process via the @mesadev/sdk package. It integrates with Vercel’s just-bash library to let your agent execute shell commands (ls, cat, grep, cp, etc.) against Mesa repositories — no mount, no FUSE, no sandbox required. Use app-level virtualization when:
  • You have a TypeScript agent running in your own backend and don’t want to manage a sandbox
  • Your agent only needs to read/write files and run shell commands (no dependency installs or arbitrary binaries)
  • You want the simplest possible setup — just npm install @mesadev/sdk and go
  • You’re building with frameworks like Vercel AI SDK, Mastra, or Langchain and want to add a bash tool
See App-level Virtualization for setup and usage.

Choosing between the two

OS-level (FUSE)App-level (just-bash)
SetupRequires FUSE + sandbox/containernpm install only
Install dependenciesYesNo
Run arbitrary binariesYesNo (bash builtins + optional Python/JS)
Multi-process accessYesSingle process
EnvironmentAny (Docker, VMs, local)Node.js backend
Best forFull dev environments, CI, sandbox agentsLightweight agents, multi-tenant backends
Both modes support read and write operations and use the same caching and prefetching under the hood.