{"slug": "quire-humans-and-ai-agents-editing-local-markdown-together", "title": "Quire – humans and AI agents editing local Markdown together", "summary": "Quire, a new open-source tool, lets humans and AI agents edit local Markdown files together in a live multiplayer workspace, with every edit visible, attributable, and separately revertable. The public beta requires Node.js 22 or newer, runs locally with no account or telemetry, and keeps the filesystem as the source of truth. Quire distinguishes itself by allowing AI agents to join the same CRDT session as peers, rather than as batch processes.", "body_md": "**Local Markdown for humans and AI agents, with every edit visible, attributable, and reviewable.**\n\nPoint Quire at a folder of Markdown. The original `.md` files become a live multiplayer workspace,\nand AI agents can join the same editing sessions as first-class collaborators with visible cursors\nand separately revertable edits. There is no import step, cloud copy, or conversion round trip:\nyour filesystem remains the source of truth, ready for git, vim, VS Code, and every other tool you\nalready use.\n\n*Recorded against the real application. A person types while an agent edits the same document,\nproposes a change that never touches the file until it is accepted, and then authorship is\nrevealed. Nobody reloads, and nothing conflicts.*\n\n**Public beta:** Quire requires Node.js 22 or newer and runs locally with no Quire account,\nsubscription, or telemetry.\n\n```\nnpx quiredocs ~/my-notes\n```\n\nOpen `http://127.0.0.1:4321` in a browser. Press `Ctrl+C` in the terminal when you are done.\n\nOr from a clone:\n\n```\nnpm install && npm run build\nnode packages/cli/bin/quire.js ~/my-notes\n```\n\nNo account. No signup. Binds `127.0.0.1` by default. Core editing makes no outbound requests.\n\nNot ready to point it at your own files? Start a sample vault that is deleted when Quire stops:\n\n```\nnpx quiredocs --demo\n```\n\nPlenty of tools do two of these. Quire is the one that does all three.\n\n|  | Multiplayer | Agent-native | Plain files | \n|---|---|---|---|\n| Notion · Outline · Docmost · HedgeDoc | ✅ | ❌ | ❌ | \n| Obsidian · SilverBullet · Logseq | ❌ | ~ | ✅ | \n| [SoloMD](https://github.com/zhitongblog/solomd) | ❌ | ✅ | ✅ | \n| [CollabMD](https://github.com/andes90/collabmd) | ✅ | ❌ | ✅ | \n| **Quire** | ✅ | ✅ | ✅ | \n\nThe difference that matters: in Quire the agent is a peer in the *same CRDT session* you are typing\nin — visible cursor, attributed spans, separately revertable — rather than a batch process whose\ndiff you read afterwards.\n\n[Google Docs can import and export Markdown](https://support.google.com/docs/answer/12014036?hl=en),\nand other cloud editors offer similar conversion workflows. That is useful when the cloud document\nis the workspace. Quire is for the opposite workflow: the files in your local folder stay\nauthoritative while people, agents, external editors, and git can all work with them.\n\n|  | Cloud Markdown import/export | **Quire** | \n|---|---|---|\n| Source of truth | A converted cloud document | The original local `.md` file | \n| File workflow | Import, collaborate, export | Edit in place with continuous filesystem sync | \n| External tools | Reconcile after export | Changes from editors and git merge into the live session | \n| AI collaboration | Assistant output inside a document | MCP agents with presence, attribution, policies, suggestions, and author-specific revert | \n| Account and hosting | Provider account and cloud service | No Quire account; localhost by default | \n\nQuire does not claim that every renderer interprets every Markdown extension identically. It does\nkeep syntax-rich Markdown as source text, and the release suite checks a fixture containing YAML\nfrontmatter, task lists, tables, fenced code, Mermaid, wiki-links, footnotes, raw HTML, and comments\nfor byte-for-byte stability through an unchanged editing session. The same fixture changed by 22\ninserted and 30 deleted lines after an untouched Google Docs import/export round trip; see the\n[reproducible comparison](/heetdalsania/quire/blob/main/docs/markdown-roundtrip.md), including what Google preserved.\n\n| **Live co-editing** | Multiple browsers on one file, remote cursors and selections, offline-tolerant reconnect | \n| **Plain files** | The filesystem is the source of truth. Edit in vim or `git pull` mid-session and it merges as a delta, not an overwrite | \n| **Agents as peers** | An MCP endpoint lets Claude Code (or any MCP client) join the *same CRDT session* — not rewrite files behind your back | \n| **Attribution** | Every span carries its author. Toggle **Authors** to tint text by who wrote it | \n| **Suggest mode** | Agent edits can be proposed rather than applied. They show inline, and never reach disk until accepted | \n| **Revert by author** | Remove one agent's contributions without touching the paragraph you wrote beside them | \n| **Comments** | Anchored to text ranges, survive concurrent edits, and are flagged rather than dropped when their anchor is deleted | \n| **Wiki-links** | `[[links]]` , backlinks panel, unresolved links flagged | \n| **Search** | ripgrep-backed, with an in-process fallback | \n| **Mermaid** | Rendered in the live preview | \n| **Git snapshots** | Optional `--git` restore points commit only Markdown paths Quire changed; snapshots are off by default | \n| **Discover** | Browse widely-used Markdown — agent configs, skills, conventions — and add it to your vault with provenance recorded. An index, not a host: files come from their own repositories | \n| **Durable collaboration** | Authorship, comments, provenance and policy persist in `.quire/state/` and survive a restart. The Markdown stays clean; delete the directory and you lose only the collaboration layer | \n| **Themes** | Sixteen colourways — Paper, Ink, Nord, Gruvbox, Solarized, Dracula, Tokyo Night, Catppuccin, Everforest, Monokai, Sepia, Terminal, and classic light and dark. Contrast is corrected per theme and asserted in tests | \n| **Live updates** | Files created by an agent, by Discover, or by another tool appear immediately | \n| **Provenance receipts** | One click turns a document into a shareable page: how much a person wrote, how much an agent did, which suggestions were accepted, and a replay of it being written. Self-contained HTML — no server, no account, works offline | \n| **Review requests** | Send a link with a brief. The reviewer comments without an account, and comment-only is enforced by the server rather than by hiding the editor | \n| **Suggesting mode** | People get the same suggest mode agents have. Your edits become proposals and stay off disk until accepted | \n| **Share links** | Capability links scoped to a file or the vault, with view / comment / edit. View is enforced server-side | \n| **Export** | Markdown, self-contained HTML, plain text, copy-with-formatting for pasting into Docs, and print or save as PDF | \n| **Typography** | Prose and editor typefaces, size, leading, measure, theme, and a focus mode. Display only — never a byte of the file | \n| **GitHub search** | Search GitHub from Discover for anything the curated index misses, then pick which Markdown file to bring across | \n| **Adjustable panels** | Drag any divider, double-click to reset. Each panel closes from its own corner and leaves a stub to reopen it — sidebar (Cmd+), source (Cmd+Shift+E), comments (Cmd+Shift+). Sizes persist | \n\nKeep Quire running, then add its local MCP server to the client you use. These commands download the published Quire package from npm; they do not require a Quire account or credential.\n\n```\nclaude mcp add quire -- npx -y -p quiredocs@latest quire-mcp \\\n  --url http://127.0.0.1:4321 --name \"Claude Code\"\n```\n\nOn native Windows, put `cmd /c` before `npx`:\n\n```\nclaude mcp add quire -- cmd /c npx -y -p quiredocs@latest quire-mcp --url http://127.0.0.1:4321 --name \"Claude Code\"\ncodex mcp add quire -- npx -y -p quiredocs@latest quire-mcp \\\n  --url http://127.0.0.1:4321 --name Codex\n```\n\nAdd this to `.cursor/mcp.json` in the project where Cursor should use Quire:\n\n```\n{\n  \"mcpServers\": {\n    \"quire\": {\n      \"command\": \"npx\",\n      \"args\": [\n        \"-y\", \"-p\", \"quiredocs@latest\", \"quire-mcp\",\n        \"--url\", \"http://127.0.0.1:4321\",\n        \"--name\", \"Cursor\"\n      ]\n    }\n  }\n}\n```\n\nRestart or reload the client after adding Quire. The AI client may require its own account or paid plan; that is separate from Quire, which remains free and local.\n\nTools: `list_documents`, `read_document`, `edit_document` (with `suggest`), `append_document`,\n`list_suggestions`, `list_comments`, `add_comment`, `search_vault`.\n\nThe agent gets a presence identity and a cursor. You can type straight through its edits — CRDTs make that a non-event.\n\nQuire is open source under AGPL-3.0-or-later, and the npm package is built from this\nrepository. The package has no runtime dependency downloads and no `preinstall`, `install`, or\n`postinstall` hooks. Its `prepublishOnly` script is a maintainer-side release check; npm does not\nrun it when somebody installs Quire.\n\nWhat Quire can do on a user's computer:\n\n| Surface | Default | Exact behavior | \n|---|---|---|\n| **Files** | On | Reads Markdown under the folder passed on the command line. Writes edited Markdown, collaboration state in `.quire/state/` , and`quire.lock` when a Discover item is added. Paths outside the chosen folder are rejected | \n| **Git** | Off | `--git` enables local snapshots. Quire commits only Markdown paths it changed and does not push, pull, alter remotes, or include unrelated staged work | \n| **Network** | Core editing is offline | Discover contacts `api.github.com` and`raw.githubusercontent.com` only after a person searches, previews, or installs. Direct peer setup contacts Google's public STUN service only after a person chooses that command; document bytes then travel over encrypted WebRTC directly between peers, with no Quire relay | \n| **Code execution** | Off | `--allow-exec` permits a person to run a selected fenced block as their own OS user. Nothing runs when a document opens, and execution is refused when Quire is bound beyond loopback | \n| **Agents** | Disconnected | An MCP client receives vault read/edit tools only after the user starts `quire-mcp` and points it at the local server. Connect only agents you trust with that folder | \n| **Sharing** | Local only | Share links are capabilities served by the running Quire process. Quire does not upload the vault or operate a hosted relay | \n\nQuire has no analytics, advertising SDK, auto-updater, credential prompt, background service, or\npayment integration. Discover does not read or forward `GITHUB_TOKEN`. Third-party Markdown added\nthrough Discover is data, not executable code, but agent instruction files can influence an agent\nthat later reads them; inspect imported content before relying on it.\n\nThe server serves only its own origin and rejects cross-origin browser requests. **There is no\nauthentication**, so treat `--host 0.0.0.0` as \"anyone who can reach this port can read and edit the\nvault.\" The complete threat model and limitations are in [SECURITY.md](/heetdalsania/quire/blob/main/SECURITY.md).\n\nQuire itself is free to download, run, self-host, and publish as a public npm package. It requires no paid Quire infrastructure. Your computer, internet connection, and any AI provider you connect are separate: Claude, OpenAI, a hosted VM, a domain, a tunnel, Codespaces, or a larger CI runner may charge under that provider's own plan. None is required for local Quire.\n\n```\ndocker compose up --build\n```\n\nThe container binds to `127.0.0.1` deliberately. Quire has no authentication, so anyone who\ncan reach the port can read and edit every document — read [SECURITY.md](/heetdalsania/quire/blob/main/SECURITY.md)\nbefore widening that.\n\nQuestions and ideas belong in [Discussions](https://github.com/heetdalsania/quire/discussions).\nUse the [issue tracker](https://github.com/heetdalsania/quire/issues) for reproducible bugs and\nplanned features, and read [CONTRIBUTING.md](/heetdalsania/quire/blob/main/CONTRIBUTING.md) before opening a pull request.\nIf Quire solves a problem you care about, starring the repository helps other people find it.\n\n- General questions and feedback: [GitHub Discussions](https://github.com/heetdalsania/quire/discussions)\n- Bug reports: [GitHub Issues](https://github.com/heetdalsania/quire/issues)\n- Security vulnerabilities: [report privately](https://github.com/heetdalsania/quire/security/advisories/new)\n\n| File | What's in it | \n|---|---|\n| [CONTRIBUTING.md](/heetdalsania/quire/blob/main/CONTRIBUTING.md) | Development setup, verification, and architecture invariants | \n| [SECURITY.md](/heetdalsania/quire/blob/main/SECURITY.md) | Threat model and known limitations | \n| [RELEASING.md](/heetdalsania/quire/blob/main/RELEASING.md) | How to build, verify and publish a release | \n| [CHANGELOG.md](/heetdalsania/quire/blob/main/CHANGELOG.md) | What is in each version | \n| [docs/markdown-roundtrip.md](/heetdalsania/quire/blob/main/docs/markdown-roundtrip.md) | Reproducible Quire and Google Docs Markdown fidelity comparison | \n| [tools/recorder](/heetdalsania/quire/blob/main/tools/recorder) | Regenerates `docs/demo.gif` from the real app | \n\nThe entire repository and the bundled `quiredocs` distribution are licensed under\nAGPL-3.0-or-later. Quire does not currently publish a separate permissive SDK.", "url": "https://wpnews.pro/news/quire-humans-and-ai-agents-editing-local-markdown-together", "canonical_source": "https://github.com/heetdalsania/quire", "published_at": "2026-09-07 22:17:21+00:00", "updated_at": "2026-09-07 22:30:48.037106+00:00", "lang": "en", "topics": ["ai-tools", "developer-tools", "ai-agents"], "entities": ["Quire", "Node.js", "Claude Code", "MCP"], "alternates": {"html": "https://wpnews.pro/news/quire-humans-and-ai-agents-editing-local-markdown-together", "markdown": "https://wpnews.pro/news/quire-humans-and-ai-agents-editing-local-markdown-together.md", "text": "https://wpnews.pro/news/quire-humans-and-ai-agents-editing-local-markdown-together.txt", "jsonld": "https://wpnews.pro/news/quire-humans-and-ai-agents-editing-local-markdown-together.jsonld"}}