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)
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/sdkand go - You’re building with frameworks like Vercel AI SDK, Mastra, or Langchain and want to add a bash tool
Choosing between the two
| OS-level (FUSE) | App-level (just-bash) | |
|---|---|---|
| Setup | Requires FUSE + sandbox/container | npm install only |
| Install dependencies | Yes | No |
| Run arbitrary binaries | Yes | No (bash builtins + optional Python/JS) |
| Multi-process access | Yes | Single process |
| Environment | Any (Docker, VMs, local) | Node.js backend |
| Best for | Full dev environments, CI, sandbox agents | Lightweight agents, multi-tenant backends |

