Where deeper thinking compounds.
Thinkroom is an open-source, agent-native workspace for human judgment. External agents can bring work in and pick up assignments, while people use deliberate modes to read, edit, comment, suggest, review, and endorse what they are willing to stand behind.
AI makes generation cheap. Thinkroom is designed for the harder part: activating your brain at the right moment. Reading deeply, judging critically, endorsing with conviction—these need focused interfaces, not a generic chat box. Thinkroom puts you in the right mode so you internalize the work before you stand behind it. Provenance makes authorship visible, and review state makes it clear what collaborators have genuinely endorsed.
Thinkroom does not run an embedded agent. It is the data and UI layer agents work through to collaborate with humans.
From the creator of Compound Engineering. Inspired by Proof from Dan Shipper.
- Real-time collaborative Markdown and semantic HTML editing
- Human and AI authorship provenance
- Read, edit, comment, and suggest modes
- Reviewable suggestions, anchored comments, and task checkboxes
- Inline Excalidraw sketches with touch, Apple Pencil, and SVG export
- Agent presence, activity, and a discoverable HTTP API
- Local-first Yjs state synchronized through Action Cable
- Optional password or Google sign-in so claimed documents follow you across browsers
Install the zero-dependency CLI (Node 20 or newer), connect it to your account through a browser approval, and initialize the project-local agent skill:
curl -fsSL https://raw.githubusercontent.com/kieranklaassen/thinkroom/main/script/install_thinkroom_cli.sh | sh
thinkroom login
thinkroom initThe login flow opens a browser and polls until you approve it—there is no token to copy and paste. Documents created through the connected CLI belong to that account while retaining the agent name as provenance:
thinkroom new draft.md --title "Decision memo" --agent "Codex"
thinkroom show https://thinkroom.kieranklaassen.com/d/RETURNED_SLUG
thinkroom suggest RETURNED_SLUG --replaces "Old text" --body "New text" --intent "Tighten the claim" --agent "Codex"thinkroom prime works without a login or network connection. It points the
agent at repository instructions, CONCEPTS.md, documented solutions, and
active plans. For a self-hosted deployment, pass --url https://your-host to
thinkroom login or set THINKROOM_URL; automation can use
THINKROOM_TOKEN without writing a config file.
Thinkroom pages also register WebMCP
tools for agents that drive a browser. In Chrome 149+ (origin trial, or
chrome://flags/#enable-webmcp-testing locally), a document page exposes
thinkroom_* tools on document.modelContext for reading, suggesting,
commenting, resolving, presence, events, and creating unclaimed drafts; the
index exposes guide and create. Every write carries an agent_name and runs at
anonymous link-holder privilege, never the viewer's account. A writable
document page — opened through an Edit link, claimed or not, or owned by the
viewer — also exposes thinkroom_update_document, the in-page equivalent of
thinkroom update: it replaces the whole document through the live editor,
with the replaced text landing as pending AI provenance for human review.
Retitling without a heading, review decisions, claiming, and link access
remain with the CLI and with humans.
Requires Ruby 3.4, Node 20 or newer, and SQLite.
bin/setup
bin/devOpen http://localhost:3000/d/demo.
Anonymous use works without configuration. To enable the Google button, create
an OAuth web application and export GOOGLE_CLIENT_ID and
GOOGLE_CLIENT_SECRET before starting bin/dev. Register the callback for the
port you use, for example:
http://localhost:3000/auth/google_oauth2/callback
http://localhost:3001/auth/google_oauth2/callback
npm run check
bin/rails testSee CONTRIBUTING.md for the complete development workflow and DEPLOYING.md for the environment-driven Kamal setup.
Thinkroom is experimental. Accounts make document ownership portable, while share links remain the collaboration access model and agent identity is not yet authenticated. Keep deployment credentials, OAuth secrets, SSH keys, and API tokens outside the repository.
See SECURITY.md for the supported version and private reporting process.
