# slivingdoc

Keeps agent context in plain text files that several sessions read and write at once. Merges edits instead of overwriting them.

- MCP server · `type=mcp` · Claude Code, Codex, Cursor, GitHub Copilot, Windsurf (Devin Desktop), Cline, Zed, Gemini CLI · ★ 6
- Author: baalimago
- License: MIT · policy=link-only · description only; the file stays with the author
- Source: https://github.com/baalimago/slivingdoc
- Updated: 2026-10-22
- HTML: https://affpapa.org/en/nevibecode/mcp/slivingdoc

## What it does

slivingdoc gives agents a shared store of notes. Files live in an S3-compatible bucket, agents call `pull` and `commit`, and overlapping edits merge the way Git does. When two writers touch the same line, the later commit comes back as `CONTENT_CONFLICT` with both versions left in the file. Nothing gets silently dropped.

Setup runs through `npx`, which fetches the native binary on first use. You can host on slivingdoc.dev: sign in with GitHub or Google, create a token, and the free tier covers one space. A bucket of your own works too, but it has to support conditional writes — without that, concurrent commits won't land. The repo ships a SeaweedFS example in a container if you want to try it locally first.

ACLs decide where agents may read and where they may write. The interface stays narrow on purpose: slivingdoc stores notes, it doesn't write them for you.

## Requirements
- Needs: Node.js (commands run via npx)
- Environment variables: `SLIVINGDOC_TOKEN`, `SLIVINGDOC_BUCKET`, `AWS_PROFILE`, `AWS_REGION`, `AWS_ENDPOINT_URL_S3`, `SLIVINGDOC_WORKSPACE_ROOT` — keys and tokens: ask the human for the values, never commit them or put them in shared files.

## Install

### Claude Code (native platform)

**Platform CLI**
```bash
claude mcp add --env SLIVINGDOC_TOKEN=<SLIVINGDOC_TOKEN> --env SLIVINGDOC_BUCKET=<SLIVINGDOC_BUCKET> --env AWS_PROFILE=<AWS_PROFILE> --env AWS_REGION=<AWS_REGION> --env AWS_ENDPOINT_URL_S3=<AWS_ENDPOINT_URL_S3> --transport stdio slivingdoc -- npx -y slivingdoc
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Codex

**Platform CLI**
```bash
codex mcp add slivingdoc --env SLIVINGDOC_TOKEN=<SLIVINGDOC_TOKEN> --env SLIVINGDOC_BUCKET=<SLIVINGDOC_BUCKET> --env AWS_PROFILE=<AWS_PROFILE> --env AWS_REGION=<AWS_REGION> --env AWS_ENDPOINT_URL_S3=<AWS_ENDPOINT_URL_S3> -- npx -y slivingdoc
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Cursor

**Config file**
File `.cursor/mcp.json`:
```json
{
    "mcpServers": {
        "slivingdoc": {
            "command": "npx",
            "args": [
                "-y",
                "slivingdoc"
            ],
            "env": {
                "SLIVINGDOC_TOKEN": "<SLIVINGDOC_TOKEN>",
                "SLIVINGDOC_BUCKET": "<SLIVINGDOC_BUCKET>",
                "AWS_PROFILE": "<AWS_PROFILE>",
                "AWS_REGION": "<AWS_REGION>",
                "AWS_ENDPOINT_URL_S3": "<AWS_ENDPOINT_URL_S3>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### GitHub Copilot

**Config file**
File `.vscode/mcp.json`:
```json
{
    "servers": {
        "slivingdoc": {
            "type": "stdio",
            "command": "npx",
            "args": [
                "-y",
                "slivingdoc"
            ],
            "env": {
                "SLIVINGDOC_TOKEN": "<SLIVINGDOC_TOKEN>",
                "SLIVINGDOC_BUCKET": "<SLIVINGDOC_BUCKET>",
                "AWS_PROFILE": "<AWS_PROFILE>",
                "AWS_REGION": "<AWS_REGION>",
                "AWS_ENDPOINT_URL_S3": "<AWS_ENDPOINT_URL_S3>"
            }
        }
    }
}
```
Replace <…> with your own values. 1 more environment variable is in the server README

### Gemini CLI

**Platform CLI**
```bash
gemini mcp add -e SLIVINGDOC_TOKEN=<SLIVINGDOC_TOKEN> -e SLIVINGDOC_BUCKET=<SLIVINGDOC_BUCKET> -e AWS_PROFILE=<AWS_PROFILE> -e AWS_REGION=<AWS_REGION> -e AWS_ENDPOINT_URL_S3=<AWS_ENDPOINT_URL_S3> slivingdoc npx -y slivingdoc
```
Replace <…> with your own values. 1 more environment variable is in the server README

## When to use it
- carry agent context across sessions so it survives restarts
- let several agents write to the same notes without losing edits
- split read and write permissions across spaces
- run the note store in your own S3 bucket
- inspect a merge conflict directly in the file

## Example prompts
- Pull the notes from slivingdoc and pick up where we left off
- Write the refactor plan to `plan.md` and commit it
- Show me what changed in the notes since the last commit

## Similar
- [REA](https://affpapa.org/en/nevibecode/mcp/rea.md) — MCP server · ★ 386989
- [GitHub](https://affpapa.org/en/nevibecode/mcp/github.md) — MCP server · ★ 33918
- [Netdata](https://affpapa.org/en/nevibecode/mcp/netdata.md) — MCP server · ★ 81115
- [browser-use](https://affpapa.org/en/nevibecode/mcp/browser-use.md) — MCP server · ★ 119160
- [Codebase Memory](https://affpapa.org/en/nevibecode/mcp/codebase-memory.md) — MCP server · ★ 47392
- [mcp-server](https://affpapa.org/en/nevibecode/mcp/mcp-server.md) — MCP server · ★ 43872

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
