slashdocs

razorpayMIT活跃维护

让 AI Agent 把生成的 HTML 文档推送到自托管服务器,人类通过评论和版本对比来审阅,解决 Agent 产出难以评审的问题。

Give your agents the power to publish reviewable HTML documents. Self-hosted server + CLI + remote MCP; agents push, humans review with comments and versions.

v0.4.1发布于 2026-10-28 05:00 UTC415star +4 / 7 天54fork同步于 2026-11-10 12:00 UTC

怎么上手

由 README 提炼,执行前请确认
git clone https://github.com/razorpay/slashdocs.git
cd slashdocs
docker compose up
硬件要求按 README 说明

README 未说明具体硬件要求;服务端为单个 Go 二进制,需自备 Postgres 与 S3 兼容存储,可用 Docker 部署。

有 Docker 镜像
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

自托管文档协作服务,让 AI 代理发布 HTML 文档、人类在浏览器中批注并迭代版本

让 AI Agent 把生成的 HTML 文档推送到自托管服务器,人类通过评论和版本对比来审阅,解决 Agent 产出难以评审的问题。

核心能力

  • 每篇文档为单个自包含 HTML 文件,图片可用 base64 内嵌
  • 浏览器沙箱渲染审阅,支持锚定原文的评论与解决/重开流程
  • 版本不可变并带乐观并发控制,保留全部历史版本
  • 提供远程 MCP 端点,走浏览器 OAuth,无需本地 MCP 进程
  • Go CLI 支持紧凑输出与 --json 结构化输出,可拉取/推送文档

容易踩的坑

本地构建需 Docker Compose v2 和 Buildx 插件,Ubuntu/Debian 发行版包可能需另装 docker-buildx;Dex 登录([email protected]/password)仅用于开发,生产需配置 Google 等 OIDC;文档渲染要求应用与渲染使用不同主机名,仅端口或协议不同无法隔离 Cookie。

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.4.1
  1. v0.4.1最新正式版2026-10-28 · 2026-10-28 05:00 UTC

    slashdocs v0.4.1

    Docker image

    docker pull razorpay/slashdocs:0.4.1
    

    Helm chart: slashdocs-0.4.1.tgz is attached below.

    helm upgrade --install slashdocs ./slashdocs-0.4.1.tgz -n slashdocs --create-namespace -f my-values.yaml
    

    CLI: install from a running server with curl -fsSL https://<your-slashdocs-host>/install.sh | bash, or download an archive below.

    Changelog

    Fixes

    • 094491b8208ce5cf0e80ac6892ec244c0974f666: fix(sharing): prevent grant creation from overwriting user profiles (#248) (@anuragrao04)

    Other changes

    • 67bcf169fe8595cf07b70e89aac1a3de97d6f98f: Allow editing comments and replies (#249) (@anuragrao04)

    See docs/self-hosting.md for configuration.

  2. v0.4.02026-10-19 · 2026-10-19 06:50 UTC
    查看更新说明

    slashdocs v0.4.0

    Docker image

    docker pull razorpay/slashdocs:0.4.0
    

    Helm chart: slashdocs-0.4.0.tgz is attached below.

    helm upgrade --install slashdocs ./slashdocs-0.4.0.tgz -n slashdocs --create-namespace -f my-values.yaml
    

    CLI: install from a running server with curl -fsSL https://<your-slashdocs-host>/install.sh | bash, or download an archive below.

    Changelog

    Features

    • 3f00c2866f4e1660dcba6583bfbabdbcb8048dfc: feat(auth): issue rotating refresh tokens for the MCP OAuth flow (#212) (@AbhishekChaursia6788)
    • e3f165b8009e986ab4aa0eb2c2e7eb6e369f8bae: feat(auth): let signed-out readers view documents shared with anyone on public deployments (#223) (@anuragrao04)

    See docs/self-hosting.md for configuration.

  3. v0.3.02026-10-15 · 2026-10-15 15:02 UTC
    查看更新说明

    slashdocs v0.3.0

    Docker image

    docker pull razorpay/slashdocs:0.3.0
    

    Helm chart: slashdocs-0.3.0.tgz is attached below.

    helm upgrade --install slashdocs ./slashdocs-0.3.0.tgz -n slashdocs --create-namespace -f my-values.yaml
    

    CLI: install from a running server with curl -fsSL https://<your-slashdocs-host>/install.sh | bash, or download an archive below.

    Changelog

    Fixes

    • 0712c3f6f7c69e3b0f91a3f2926b691a4f079043: fix(frontend): keep menu-launched dialogs open when the window loses focus (#211) (@razvi-razorpay)
    • 78139547d2afb7278936c99ca4a911d7b386e83b: fix(search): index document search so that it does not time out (#214) (@anuragrao04)

    Other changes

    • d89d1f1e8aa5bec251fa326a71d99589e4d53f52: Show commenter names in Slack notifications (#167) (@mohitpaddhariya)

    See docs/self-hosting.md for configuration.

  4. v0.2.12026-10-13 · 2026-10-13 13:48 UTC
    查看更新说明

    slashdocs v0.2.1

    Docker image

    docker pull razorpay/slashdocs:0.2.1
    

    Helm chart: slashdocs-0.2.1.tgz is attached below.

    helm upgrade --install slashdocs ./slashdocs-0.2.1.tgz -n slashdocs --create-namespace -f my-values.yaml
    

    CLI: install from a running server with curl -fsSL https://<your-slashdocs-host>/install.sh | bash, or download an archive below.

    Changelog

    Features

    • 426c4f5477357387b9efdad1e7846e4c2b38831c: feat(cli): slashdocs local, and --local for every command (#191) (@anuragrao04)
    • 9486e558d3b03824e1e7d64c0bbf1a6dc1f39d93: feat: limit people search to contacts on public servers (#190) (@anuragrao04)
    • 5fc18d03586c22fc29bc187b052432010b6cde15: feat: live cursors that follow, play back smoothly, and can be hidden (#132) (@anuragrao04)

    Fixes

    • d4f5c29954c6056ec66b2d7f8c08903682287395: fix(auth): require a verified email at OIDC login (#195) (@anuragrao04)
    • 5d063a656246965149795bdb969105789c9780ce: fix(frontend): stop the landing page animations from using the CPU and GPU off screen (#189) (@anuragrao04)
    • d615247cbaab54817f26692e0704d4e2e61e485f: fix(sharing): require the editor role to manage grants (#178) (@anuragrao04)

    See docs/self-hosting.md for configuration.

  5. v0.2.02026-10-13 · 2026-10-13 03:47 UTC
    查看更新说明

    slashdocs v0.2.0

    Docker image

    docker pull razorpay/slashdocs:0.2.0
    

    Helm chart: slashdocs-0.2.0.tgz is attached below.

    helm upgrade --install slashdocs ./slashdocs-0.2.0.tgz -n slashdocs --create-namespace -f my-values.yaml
    

    CLI: install from a running server with curl -fsSL https://<your-slashdocs-host>/install.sh | bash, or download an archive below.

    Changelog

    Fixes

    • 0d457137030b6590fd58a417acaeb923a48099d6: fix(frontend): use the new Claude add-connector link (#181) (@anuragrao04)

    See docs/self-hosting.md for configuration.

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    slashdocs

    CI Release Docker Pulls Go Reference License: MIT

    The collaborative workspace for agentic organizations.

    slashdocs is where agents and people work on the same documents. Agents publish rich, self-contained HTML: reports, specs, dashboards, diagrams, and decision docs. People open them in the browser, comment on the exact words, and share them. Agents read the comments and publish the next version. Every version is kept.

    Instead of pasting giant reports into chat, give the work a shared home where your team and its agents improve it together.

    What you can build with it

    • Agent-generated architecture reviews
    • Incident reports and postmortems
    • Product specs and launch plans
    • Data analysis reports
    • Design proposals with Mermaid/SVG diagrams
    • QA findings and browser-test reports
    • Internal dashboards captured as portable HTML

    Features

    • One self-contained HTML file per document
    • Browser review UI with sandboxed rendering
    • Anchored comments and resolve/reopen workflow
    • Slack notifications, personal mute controls, and comment/heading links
    • Immutable versions with optimistic concurrency
    • OpenID Connect for human users (Google, Okta, Entra ID, Keycloak, Dex, ...)
    • Native service accounts for headless/agent workflows
    • Remote MCP endpoint with browser OAuth—no local MCP process or CLI required
    • Go CLI with compact default output and JSON mode
    • Generated OpenAPI/Swagger docs
    • Self-hostable Go server with embedded React frontend
    • Dockerfile for container deployments

    Why one HTML file?

    A single HTML artifact is easy for agents to generate, easy to version, easy to archive, and easy to move through a CLI. Images can be embedded with base64 data URLs, and diagrams can be Mermaid, inline SVG, or rendered HTML/CSS.

    <img src="https://raw.githubusercontent.com/razorpay/slashdocs/HEAD/data:image/png;base64,..." alt="embedded screenshot" />
    

    No separate image hosting is required for v1.

    Quickstart (docker compose)

    The fastest way to try slashdocs is the bundled compose stack, which brings up the server with Postgres, versitygw (S3), and a Dex identity provider — no cloud accounts or OAuth setup needed:

    git clone https://github.com/razorpay/slashdocs.git
    cd slashdocs
    docker compose up
    

    This pulls the latest published image, so nothing is compiled on your machine. To run your local changes instead, use docker compose up --build. Building needs Docker with Compose v2 and the Buildx plugin, because the Dockerfile uses BuildKit features. Docker Desktop and Docker's official Engine packages include both. Distro packages may not: on Ubuntu or Debian, run sudo apt install docker-buildx. Check with docker buildx version.

    Open http://localhost:8080 and sign in as [email protected] with password password.

    Dex is the development login only. Real deployments configure Google or any other OIDC provider — see Self-hosting.

    make e2e boots the same stack and runs the full non-interactive smoke test (login, documents, comments, sharing, folders, sandboxed rendering, SSE). make e2e-browser runs the advisory Chromium browser suite. It reuses a healthy slashdocs + Dex stack already listening on ports 8080 and 5556; otherwise it boots the isolated slashdocs-e2e compose project and leaves it running for inspection. Browser E2E is deliberately separate from make ci.

    Tear down the isolated E2E project, including data volumes, with:

    scripts/e2e.sh down
    

    If you started the normal quickstart project with docker compose up, stop that project with docker compose down -v instead.

    Install from source

    git clone https://github.com/razorpay/slashdocs.git
    cd slashdocs
    make build
    

    Binaries are written to:

    bin/slashdocs-server
    bin/slashdocs
    

    Run with Docker

    Every tagged release publishes a multi-arch (amd64, arm64) image to Docker Hub at razorpay/slashdocs:

    docker pull razorpay/slashdocs:latest
    

    Copy .env.example to .env, fill it in, and run. Pin an exact version (razorpay/slashdocs:0.1.0) or digest in production rather than :latest:

    docker run --rm -p 8080:8080 --env-file .env razorpay/slashdocs:latest
    

    Each GitHub Release also carries standalone CLI archives and the packaged Helm chart. See docs/releasing.md for how releases are cut.

    See Self-hosting for production setup and all environment variables. A Kubernetes Helm chart is available in charts/slashdocs.

    Connect an MCP client

    The application server exposes Streamable HTTP directly at:

    https://your-slashdocs-host.example/mcp
    

    Add that URL to a remote MCP client. Standards-based clients discover the server's OAuth metadata, open the normal slashdocs sign-in and consent flow, and receive a short-lived, audience-bound token using authorization code + PKCE. No slashdocs CLI or local MCP bridge is involved. Unattended agents can instead send a slashdocs service-account key as a bearer token.

    The MCP surface covers document, version, comment, sharing, and folder workflows, plus management of existing service accounts. Creating service accounts or bearer keys is intentionally not exposed over MCP; mint those credentials in the web application or CLI. Client-local operations such as installing or updating the CLI, switching local contexts, or opening a browser are also not MCP tools.

    MCP mirrors the CLI's authoring conventions: get_authoring_guidelines serves the same sectioned guidelines as slashdocs guidelines (index first, then per-section detail). Default sharing of new documents is server-controlled: org deployments can set SLASHDOCS_DEFAULT_DOC_PERMISSION to viewer, commenter, or editor (default private), and both MCP and CLI creates report the applied default_grant so the share can be revoked.

    CLI quickstart

    slashdocs auth login localhost:8080
    slashdocs auth whoami
    
    slashdocs docs create report.html --title "Agent report"
    slashdocs docs list
    slashdocs docs pull doc_123 --out report.html
    slashdocs docs push doc_123 report.html --summary "Update findings"
    
    slashdocs docs comments list doc_123
    slashdocs docs comments create doc_123 --quote "important text" --body "Please clarify this."
    slashdocs docs comments resolve doc_123 cmt_123
    

    Use --json for structured output:

    slashdocs --json docs list
    

    Development

    make build
    make swagger
    make test
    

    Useful targets:

    make build          build server and CLI
    make build-backend  build API server
    make build-cli      build CLI
    make build-frontend build embedded frontend assets
    make swagger        regenerate OpenAPI docs
    make test           run backend, CLI, and frontend tests
    make lint           run Go, TypeScript, React, and formatting checks
    make e2e            run the API and CLI compose smoke test
    make e2e-browser    run the advisory Chromium browser suite
    

    Build the server through make build-backend rather than a bare go build. The target regenerates the iframe bridge and links its source fingerprint so startup can reject missing, stale, or corrupt embedded assets.

    Architecture

    Everything ships as one Go binary, slashdocs-server. It serves the REST API, the embedded React frontend, and the embedded per-platform CLI binaries (/install.sh and downloads). You bring Postgres and an S3-compatible bucket. The same binary answers on two hostnames: the app hostname for the authenticated UI and API, and a separate render hostname where document HTML is served inside a sandboxed frame — the browser's same-origin policy keeps untrusted documents away from your session.

    flowchart LR
        browser["Browser<br/>(React review UI)"]
        clients["slashdocs CLI / remote MCP agents"]
    
        subgraph server["slashdocs-server (single Go binary)"]
            api["REST API"]
            fe["Embedded frontend"]
            dl["Embedded CLI downloads<br/>+ install.sh"]
            render["Sandboxed document render"]
        end
    
        pg[("Postgres<br/>metadata, comments,<br/>grants, sessions")]
        s3[("S3-compatible blob store<br/>immutable HTML versions")]
    
        browser -- "app origin" --> api
        browser -- "app origin" --> fe
        browser -- "render origin" --> render
        clients -- "REST or /mcp" --> api
        clients -- "CLI install / update" --> dl
        api --> pg
        api --> s3
        render --> s3
    

    Project layout

    api/       Go API server and embedded frontend assets
    cli/       Go CLI
    frontend/  React + Vite frontend
    docs/      Self-hosting, operator, and release docs
    

    API docs

    When the server is running:

    /openapi.json
    /api-docs
    /commit.txt
    

    Security model

    Uploaded HTML should be treated as untrusted content. slashdocs renders documents in a sandboxed frame and requires app and render URLs on different hostnames. Scheme or port differences on the same hostname do not isolate cookies; the unsafe override is for local development only.

    Telemetry

    None. slashdocs collects no telemetry, analytics, or usage data, and phones home to no one. The only outbound calls the server makes are to your Postgres, your blob storage, and your configured OpenID Connect provider during login.

    License

    MIT — see LICENSE.