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 Integration Guides for more.
Create a repo
In Mesa, you organize resources using a special type of directory called a To retrieve an existing repo later:
repository. A repository has a completely unique version history
in Mesa and its own permissions and access controls.Repositories are free to create on Mesa. You should use them liberally to isolate resources that belong to different tenants, different internal teams,
and even different projects or workspaces within a single tenant.Use the SDK to create repositories on-demand and edit their contents through Mesa.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 or snapshots of the repository at that point in time. You can always go back and view the state of files at older
Changes and even restore the current state of a file from an older Change version.See more in Versioning.Every time you make file edits in Mesa, those writes are going to a 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: the first Change with the default
main bookmark, and the second Change with the feature-changes bookmark.You can imagine having many different changes and many different bookmarks with different agents doing work. Once an agent is done with their work,
you may want to show a UI for users to review the changes and approve or reject them.Bookmark changes
By default, Changes are “anonymous”. If you want to create a named checkpoint or merge one change into another, you should Bookmark the change.
By default, the first change on a repo is automatically bookmarked as
main (or whatever you set as defaultBookmark when creating the repo).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. You can use these patterns to effectively have staged changes. Your
feature-changes) 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 holds the canonical
version of your documents, agents and humans create changes on separate Changes with named Bookmarks. You render UI for human-in-the-loop
approvals, and when you’re ready you can merge one set of experimental changes into your main line of Change history.Next steps
- Versioning for repos, bookmarks, and changes
- Auth & Permissions 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

