Installation
Install themesa CLI on macOS or Linux:
On macOS, Mesa also requires macFUSE. See
Platform requirements below for setup instructions.
General flow
- Install Mesa — install the
mesaCLI and any platform-specific FUSE dependencies. - Configure and mount — run
mesa mount(interactive wizard on first run) or write aconfig.tomlwith your API key and runmesa mount --daemonizefor background operation. - Work with your repos —
cdinto the mount path (default:~/.local/share/mesa/mnt/<org>/<repo>) and use any tool — editors, shell commands, agents. File changes are automatically persisted back to Mesa.
Platform requirements
macOS
Mesa requires macFUSE. Follow the official macFUSE guide to install it, including:Linux
Mesa uses FUSE3 vialibfuse3. Most full Linux distributions include this by
default and mesa’s installer installs it for you otherwise.
allow_other and user_allow_other
Mesa mounts with the FUSE allow_other option so that other processes — like
your agent, editors, and language servers — can access the mounted filesystem.
Without this, only the process that ran mesa mount would be able to read the
files.
On Linux, this requires user_allow_other to be enabled in /etc/fuse.conf.
Uncomment or add the following line:
mesa mount will fail with a permission error.
If your environment runs as root (common in some CI and container setups),
allow_other works without this setting. But if you’re running as a non-root
user — which is the default in most sandbox providers like Daytona — you’ll
need to ensure this is configured.Docker
Slim and minimal base images strip out system libraries that Mesa needs at runtime. Install them explicitly:- Debian / Ubuntu
- Alpine
For Debian-based images like
node:22-slim or debian:bookworm-slim:ca-certificates— TLS certificate store, required for connections to Mesa’s API.fuse3— Userspace FUSE library.openssl(andlibssl3on Debian) — OpenSSL shared library, used for TLS.
Usage
Browsing your repos
Mesa exposes standard filesystem semantics. You can use regular shell commands —ls, cat, cp, grep, and more — directly against your mounted repos.
Editing files in repos
Every write you perform in mesa that affects your source code will create a new automatically in the background. Mesa respects your.gitignore and will not create commits for
files which you have configured as ignored.
Commands
mesa new
Create a new detached from a or ID:
New changes are always detached — writes still snapshot the change but do not advance
any bookmark. To work on a bookmark where writes advance it, use
mesa edit instead.mesa edit
Switch to a different bookmark:
mesa bookmark create
Creates a new pointing at the current :
-r:
mesa edit:
mesa bookmark list
List all bookmarks for a repository:
mesa log
To look at the log of all your , you can run mesa log. Mesa will
display a list of changes, as well as a helpful diagram.
Workflow examples
Making changes on a feature bookmark
Create a feature bookmark and write some files.mesa edit, the bookmark also advances automatically. There is no manual save step,
changes are persisted to Mesa as you write.

