Agent edits await review by default in a self-hosted workspace for documents and databases.
AI suggests. You decide.
Self-hosted documents and databases where edits from Claude Code, Codex or any MCP client arrive as tracked changes and, by default, land only when a person accepts them. Use it on your own or with your team.
Download for Mac (Apple silicon, macOS 13+) · Install with Docker
Install, then create your account and workspace and connect an agent. Help for people using Stuga: stuga.dev/docs.


.stuga.zip of Markdown, JSON Lines and its files.
Agents connect over MCP. Settings → Your AI agents gives the setup for Claude Code, Claude Desktop, Codex, Antigravity, Cursor, VS Code, Kiro, Goose, LM Studio, DeepSeek Harness and Pi, with your node's address filled in, and the URL any other MCP client needs (docs/agents.md). Each agent brings its own model, so the node needs no AI key.
Stuga sends no telemetry, and nothing reaches us unless a node admin turns on remote access. The node makes outbound requests only for features in use, such as an AI provider, and asks GitHub once a day for the list of releases unless a node admin turns that off. docs/privacy.md lists what the node sends and stores.
A Mac with Apple silicon, on macOS 13 or later: open Stuga.pkg. It carries its own Postgres and Node.js (docs/install/macos.md).
Docker on x86-64 or arm64, such as a Linux server or a NAS: install.sh starts Postgres
and the node with Compose (docs/install/docker.md):
curl -fsSL https://github.com/stuga-dev/stuga/releases/latest/download/install.sh | bash
A node is one Node.js process and Postgres with pgvector and pg_search; people open it in a browser. It backs itself up every day by default and before every upgrade (docs/operations.md). docs/getting-started.md walks through the first hour.
Ask a question or share an idea in Discussions; report a bug as an issue.
Issues and pull requests are welcome. CONTRIBUTING.md covers running Stuga from source, the tests and the conventions, and RELEASING.md how a release is cut. Contributions are accepted under a Contributor License Agreement (CLA.md); a bot asks on your first pull request. Report a vulnerability privately, as SECURITY.md describes.
AGPL-3.0-only, except integrations/, which is MIT; copyright notice in NOTICE. If you modify Stuga and offer it to others over a network, you share your changes under the same terms. The name and logo are not covered by the license: TRADEMARKS.md says how you may use them.
Source-derived launch command. Check the maintainer’s required arguments and credentials before running:
npx -y @stuga/mcpMerge this template into ~/Library/Application Support/Claude/claude_desktop_config.json. Keep existing servers. Add any arguments, credentials, and permissions required by the maintainer; this template has not been install-tested.
{
"mcpServers": {
"dev-stuga-stuga": {
"command": "npx",
"args": [
"-y",
"@stuga/mcp"
]
}
}
}Restart Claude Desktop completely for changes to take effect. Confirm the server appears connected in the client’s tool list, then try a read-only example from its documentation.
Claude Desktop setup referenceStuga works with any MCP-compatible client. Copy the config snippet from the Configuration section above and add it to the file shown for your client, then restart the application.
~/Library/Application Support/Claude/claude_desktop_config.jsonRestart Claude Desktop completely for changes to take effect.~/.cursor/mcp.jsonRestart Cursor for changes to take effect..vscode/mcp.jsonReload VS Code window for changes to take effect.~/.codeium/windsurf/mcp_config.jsonRestart Windsurf for changes to take effect..mcp.jsonSave at the project root, then start Claude Code in that project and review the MCP server approval prompt. Keep real credentials out of shared files.