MesaFS is a FUSE-based virtual filesystem that mounts Mesa repositories as local read-only directories without cloning.
It is ideal for agents, CI pipelines, and large monorepos where a full clone is impractical. MesaFS supports macOS and
Linux.
Effectively, when you’re running mesafs, all your Mesa repos become just a directory on your system:
MesaFS is early-stage, alpha software. We’ve tried our best to make it reliable, but you may encounter occasional
performance issues.If you run into any issues, we urge you to open an issue.
Installing
The quickest way to install mesafs on macOS or Linux:
curl -fsSL https://raw.githubusercontent.com/mesa-dot-dev/mesafs/refs/heads/main/install.sh | sh
This will auto-detect your platform and install the latest stable release. Re-run the same command at any time to update.
Getting Started
The easiest way to get started is to run:
On first run, mesafs will walk you through an interactive configuration wizard and store the config for future use.
The default point point is ~/.local/share/mesafs/mnt.
Try browsing the Daytona source:
ls ~/.local/share/mesafs/mnt/<your-org>/daytona
When you’re done, hit Ctrl+C and mesafs will clean up after itself.
Configuration
mesafs is configured through a TOML config file. The configuration file is searched for in the following locations
(highest priority first):
$XDG_CONFIG_HOME/mesafs/config.toml (Linux only)
$HOME/.config/mesafs/config.toml
/etc/mesafs/config.toml
You can override the path to the config file with the --config-path flag.
An example config file:
# mesafs configuration file
# mount-point specifies where the local filesystem will be mounted.
# Each of your orgs will be available as a top-level directory within
# this mount point.
#
# In this example, the resulting file tree will look like this:
#
# /run/user/1000/mesafs/mnt/
# ├── hooli-corp/
# │ ├── my-repo1
# │ └── my-repo2
# ├── globex-corp/
# │ ├── my-repo1
# │ └── my-repo2
mount-point = "~/.local/share/mesafs/mnt" # The default
# Daemon configuration.
[daemon]
# Path to the PID lock file.
pid-file = "~/.local/share/mesafs/mesafs.pid" # The default
# You can register any number of private organizations here. Each
# organization will be mounted within the mesa mount point as a
# top-level directory.
[organizations.hooli-corp]
api-key = "" # Your Mesa API key for this organization.
[organizations.globex-corp]
api-key = ""
# MesaFS requires a local cache directory to store repository data.
[cache]
# Path to the cache.
path = "/run/user/1000/mesafs/cache"
# Maximum size of the cache (e.g. "10GB").
max-size = "10GB"
# Telemetry configuration.
[telemetry]
# Whether to send anonymous usage data to Mesa.
vendor = true
Daemon Mode
You can run mesafs as a background daemon:
Daemon logging can be configured in the [daemon.log] section of the config file:
[daemon.log]
# Where to write logs: "stdout", "stderr", or a file path.
target = { file = "/var/log/mesafs.log" }
# Color mode: "auto", "always", or "never".
color = "auto"