Sign up and create an API key
- Create an account at app.mesa.dev.
- Create an organization for your product (example:
acme). - Generate an API key with
adminscope.
API keys are only shown once. Save them in your secrets manager before leaving the dashboard.
Install the SDK or CLI
Using MesaFS through the CLI requires FUSE which is not a straightforward process on macOS (yet). If testing with the CLI we recommend
using a FUSE-enabled sandbox. See Sandboxes for more.
Create a repo
In Mesa, you start by creating a special kind of folder called a To retrieve an existing repo later:
repository. Each repository has its own version history and permissions.Repositories are free to create. Use them liberally to isolate resources that belong to different customers or projects.Read and write your first files
Once created, the easiest way to read and write to a repository is by mounting MesaFS, either through our SDKs or through a FUSE mount with our CLI.
Experiment with versioning
A repository is a directed acyclic graph of You can easily roll back to a previous version by switching to an old Change.
Changes: snapshots of the repository at that point in time. See more in Versioning.Every file write is part of specific change. Your first change is created automatically
when you mount an empty repo in MesaFS. All subsequent changes must be explicitly created.Diff two changes
Now you have two changes in your repo.You can imagine having many different changes, each representing the concurrent work of a different agent. Once an agent is done working,
you may want to show a UI for users to review the changes and approve or reject them.
Bookmark changes
By default, changes have random, alphanumeric identifiers. However, you will often want to assign a human-readable name to a change. You can do this with bookmarks.
By default, the first change on a repo is bookmarked
main.Merge two changes
You will eventually have lots of different changes and bookmarks and you’ll want to merge the changes from one bookmark into another.Merge your source bookmark (Now you have 3 changes in your repo.Conventionally, the
my-feature) into your target bookmark (main). This process creates a new Change on top of
main that contains the merged changes and moves the main bookmark to the new Change.main bookmark points to the canonical
version of your documents, and other bookmarks represent “draft” work. A typical pattern is rendering diff UI for human-in-the-loop
approvals, then merging approved changes into your main line of Change history.Next steps
- Versioning for repos, bookmarks, and changes
- Authentication for API key scopes
- TypeScript SDK Reference for the primary TypeScript client
- Python SDK Reference if you’re working in Python
- Rust SDK Reference if you’re working in Rust


