v1release notes

One workspace. People and agents.

Docs, databases and realtime editing for your team. The same workspace is open to ChatGPT, Claude and Cursor, on exactly the access you grant them. One binary, on your own server.

AGPL-3.0 · free software, including at work

$ curl -fsSL https://raw.githubusercontent.com/saltmd/salt.md/main/install.sh | sh

Downloads the binary for your platform, installs it and starts it, then prints the address to open. On a server that is the machine's own address, not localhost. Needs curl or wget; the script uses whichever is there.

  • 1process to run
  • 1directory to back up
  • 0external services
  • 33tools your agent can call
claude mcp add --transport http salt https://your-host/mcp \
  --header "Authorization: Bearer <your-token>"
  • Search, read and write every page
  • Create databases, views and rows
  • Scoped to one workspace, or read-only
  • Never: accounts, tokens, backups, settings
Agents

The agent works in the workspace, not beside it.

Ask Claude to turn a page of notes into a project. It creates the page, builds the database, fills the rows. You open the same board a second later and carry on. Same objects, same permissions, same history, over the Model Context Protocol server that ships inside the binary.

What an agent can do
Alternatives

Self-hosted, without the stack underneath it.

The hosted ones keep your pages on their servers. The self-hostable ones want a database server and a cache running first. salt.md is one process and one directory.

ToolRuns onServices to runReal-time collaboration
salt.mdYour server1Yes
NotionTheir serversHosted for youYes
TrelloTheir serversHosted for youYes
DocmostYour server3Yes
OutlineYour server3Yes
AppFlowy CloudYour server11Yes
ObsidianYour own machineNoneNo

Notion, Trello, Obsidian, Docmost, Outline and AppFlowy are trademarks of their respective owners. salt.md is an independent project, not affiliated with or endorsed by any of them, and names them here only to describe what it is an alternative to.

Service counts are the containers in each project's own docker-compose.yml, checked on 26 July 2026. Docmost and Outline each add PostgreSQL and Redis. The AppFlowy figure is its self-hosted backend, AppFlowy-Cloud, which adds a gateway, object storage, an auth service, a worker, a search service and an AI service on top of those. The desktop app is a separate component and is not what that number counts. docmost/docmostOutline hosting guideAppFlowy-IO/AppFlowy-Cloud

Try it

Or just have a click around.

The real thing, running in your browser: the editor, the databases, the search. No account, no server, nothing saved.

salt.md — demo workspaceOpen full screen ↗
salt.md with a document open: the sidebar shows tags, documents and databases; the page has a cover, a title and a checklist.

The real application, with the server replaced by a store in your own tab. Whatever you change is yours alone and gone when you reload.

Interactive setup

Let your assistant install it with you.

Paste this into ChatGPT, Claude, Gemini, Copilot or whatever you already have open. It reads the machine-readable docs and then walks you through it, asking about your setup before it hands you commands.

Works in any assistant that can open a URL. If yours cannot browse, paste the contents of llms.txt after the question. llms.txt

Prompt

Read https://salt.md/llms.txt in full, then walk me through self-hosting salt.md and connecting you to it over MCP. Ask me what operating system, hosting and domain I have before giving me any commands, and give me one step at a time. Flag the licence terms and the security pitfalls as we reach them rather than at the end.

What you get

A real workspace, not a note file.

All of it is in the binary. There is no paid tier holding features back.

Latest · v1.0.3

One binary.
One directory.
Everything in it.

  • No database server
  • No sync service
  • No account anywhere
the whole app
19 MB
default port
8420

Block editor

Type / and the toolbox opens: headings, lists, code, tables, callouts, columns. Every page is stored as open block JSON, never a proprietary format.

Databases with views

Add a collection inside any page. Table, board, calendar, timeline, list, gallery and form. Each view keeps its own filters, sorts and columns.

Running it is not reading it

Four roles, and the line between them holds: an admin manages people, not content. Reaching a workspace you are not in takes time-boxed, written, audited emergency access, and its admins are told.

Real-time collaboration

Live cursors and presence, and offline edits that merge on reconnect. The sync server is the same process.

Your assistant works here too

Your pages and databases are your assistant's too: ChatGPT, Claude and Cursor work over MCP, on the same permissions and the same history. Accounts, tokens, backups and instance settings stay out of reach.

Search that finds passages

Not just the page, but the paragraph in it. The index speaks German as well as English, and it lives inside the binary. No search service beside it.

Yours to take away

Markdown in and out, a workspace archive that carries pages, databases and files to another instance, and the SQLite file itself.

Speaks your language

Interface, dates and times follow the reader, automatically or by hand. A new language is one command, and the build fails if a string is left behind.

Also in the box
  • Relations & rollups
  • Formulas
  • Comments
  • Backlinks
  • Version history
  • Templates
  • Trash & restore
  • A private space per account
  • Offboarding with a successor
  • 2FA & OAuth
  • Public links
  • Public forms
  • iCal feed
  • Activity log
  • PWA / offline
  • Live backups
See every feature
For your Mac

salt.md, in your dock.

Your workspace stops being tab number forty. Its own window, its own place in ⌘-Tab, one click from the dock. Point it at your instance once and it opens there every time.

  • Own window, own shortcuts
  • Opens straight into your workspace
  • Free, like the rest of it

Apple silicon · 94 MB·Intel Mac

The app is the window; the server is the thing you install. Linux has a build too, as an AppImage and a .deb.

How it runs

One process. That is the whole architecture.

No Postgres to babysit, no Redis, no sync server, no S3 bucket. The binary is statically linked with a pure-Go SQLite, so there is nothing to install underneath it.

  • Backups are a file copy

    Everything lives under one data directory. The built-in snapshot is transactionally consistent and safe to take while the instance is running.

  • Runs on the small box you already have

    A Raspberry Pi, an old NUC, a 5 € VPS. No container orchestration required, though a multi-arch Docker image is there if you prefer one.

  • Upgrades are one binary swap

    Replace the file and restart. Open tabs notice the version change and ask you to reload.

saltrunning
salt  (single Go binary)
├── REST API (net/http)
├── MCP server (/mcp, JSON-RPC)
├── Yjs relay (WebSocket)
├── SSE change feed
├── SQLite + FTS5 (pure Go, no CGO)
└── embedded React frontend
    (Vite + BlockNote + Yjs)
1 process to run1 directory to back up0 external services
Questions

The ones that decide it.

Anything else is best asked where the code is: open an issue.

Is salt.md open source?
Yes, under the AGPL-3.0. Use it anywhere, including at work, with no fee and no separate licence. The one condition: if you change it and let others use your version over a network, you publish those changes. Running it unmodified asks nothing of you.
What do I need to run it?
A machine that can run a single binary. No database server, no runtime, no dependencies: SQLite is compiled in and the frontend is embedded. Linux and macOS binaries are prebuilt for amd64 and arm64; a Docker image covers both too.
Where is my data?
In one directory you choose, containing a SQLite file and your uploads. Nothing is sent anywhere. There is no telemetry and no phone-home.
Can I get my content back out?
Yes, in three ways: Markdown export for a single page or a whole workspace as a ZIP, a native workspace archive that moves everything to another instance including databases and files, and the SQLite file itself, which you can query with any SQLite client.
Does collaboration need a sync server?
No. The Yjs relay is part of the same binary. Edits merge through CRDTs, so two people editing the same paragraph offline converge when they reconnect.
Is salt.md a good Notion alternative?
It is the closest self-hosted equivalent for the parts most people use Notion for: a block editor with a slash menu, databases with table, board and gallery views, real-time collaboration and sharing. The difference is where it runs. Notion is hosted for you and your pages live on their servers; salt.md is one binary on a machine you control, with your content in a SQLite file you can copy, query and take away.
How does it compare to Docmost, Outline or AppFlowy?
Those are self-hosted too, so the question is what you have to operate. Docmost and Outline each want PostgreSQL and Redis beside the app; AppFlowy Cloud's own compose file brings up eleven containers. salt.md is one process with SQLite compiled in, so there is nothing underneath it to patch or back up separately.
How does it compare to Obsidian?
Obsidian is local files and excellent for writing alone; its Bases plugin even gives table and card views. What it does not do is several people editing one document at once, or an agent reaching the vault over MCP. If nobody else needs access, Obsidian is the simpler answer.

One command. Then it is yours.

Install it, open the browser, create your admin account. If you do not like it, delete one directory and it is gone.

$ curl -fsSL https://raw.githubusercontent.com/saltmd/salt.md/main/install.sh | sh