vibe-canvas
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@vibe-canvasopen a thinking canvas"
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Vibe Canvas
简体中文 | English
Let Codex conversations grow into a filterable thinking canvas in real time on the right side.

Introduction
Vibe Canvas is a local-first Codex plugin. You keep chatting with Codex normally on the left, and the Browser on the right automatically displays structured content, letting each third-level conclusion expand on demand to reveal fourth-level verbatim evidence:
Verbatim conversation transcripts
Structured understanding summarized by AI
A mind map that keeps growing as the conversation proceeds
Verbatim evidence that is collapsed by default and viewable on click
It is not a standalone website that requires you to type again, send again, or save manually. The HTML page is just a real-time projection view on the right side of Codex; input, understanding, and reasoning still happen in the current Codex task.
It is well suited for brainstorming, scenario exploration, study notes, retrospectives, requirements gathering, and any thinking process where you want to "see the structure while you talk."
Related MCP server: repo-memory-mcp
Features
Conversation as input: The Codex on the left is the only text entry point; there is no second input box inside the canvas.
Traceable transcripts: Every user turn is preserved verbatim; AI rewrites are never passed off as the original text.
AI auto-pick: New content is classified as
picked,candidate, orignored.Candidate buffer: Content that cannot be judged yet waits for later context instead of being forced into the structure.
Human final say: Every turn has a Pick Checkbox; human choices permanently override later AI judgments.
Real-time restructuring: After unpicking, the corresponding content immediately leaves the structure and mind map without calling the model again.
Local-first: Session and theme preferences are stored in the
.local/directory of the current workspace.Dual themes: The bright blue default theme and the warm theme can be switched instantly and the preference is remembered.
Incremental sync: Each turn only reads the compact projection and writes the current increment, avoiding repeated replays of the entire conversation.
Cross-turn aggregation: The same question reuses a stable Topic, and the same claim is merged into one Claim with evidence accumulated across turns, instead of simply appending every sentence as a new node.
Cross-topic links: A viewpoint is saved only once and connected through primary / related Topics and typed relationships, avoiding duplication across multiple branches.
Preserving real conflicts: Opposing viewpoints are not deleted as duplicates; they are kept separately and marked as
contradicts.Bounded projection: At most 25 nodes are shown by default, and the 40 most recently active Claims are kept for matching in the next turn; the summary and evidence index also stay within fixed limits.
Four-level verbatim evidence: Third-level Claims show
原文 N; clicking or pressing Enter / Space expands the verbatim fragment. The verbatim text must match exactly within the corresponding user input and cannot be fabricated by AI.
Screenshots
Picked and unpicked states
The left side shows the green picked state, and the right side shows the gray unpicked state; after unpicking, the structure and mind map update in sync.

Requirements
Codex Desktop with support for local Plugin, Skill, MCP Server, and the right-side Browser
Node.js 20 or higher
A working
codexCLI
The current version was developed and validated on macOS.
Installation
Register the GitHub repository directly as a Codex Marketplace, then install the plugin from it:
codex plugin marketplace add prozacLaputa/vibe-canvas
codex plugin add vibe-canvas@vibe-canvas --jsonConfirm the installation status:
codex plugin list --jsonAfter installing or upgrading, it is recommended to start a new Codex task so that the Skill and MCP tools are rediscovered.
Usage
In a new Codex task, enter:
使用 $vibe-canvas 打开一个思考画板Then just chat normally:
Codex opens Vibe Canvas on the right side.
Before each answer, the current conversation syncs this turn's verbatim text and structural increment to the canvas.
AI automatically picks clearly valuable content and puts uncertain content into the candidate buffer.
You can click Pick in the transcript area to decide at any time whether a turn enters the structure and mind map.
The Switch in the top-right corner toggles between the blue and warm themes.
Click a third-level point in the mind map to expand or collapse the fourth-level verbatim transcript.
The canvas is only active within the current Codex task; ordinary tasks are not taken over automatically.
How it works
flowchart LR
U[左侧正常对话] --> C[当前 Codex 任务]
C -->|读取紧凑投影| M[本地 MCP Server]
C -->|写入原文与类型化概念操作| M
M --> J[本地 Session JSON]
M --> R[Concept Graph Reducer]
R --> J
J -->|revision 变化| B[右侧 Browser 投影]
B -->|Pick / 主题 PATCH| JThe core consists of three parts:
The Skill handles timing and semantic judgment: after being explicitly opened, each turn reads the canonical Topics and recent Claims via
vibe_canvas_get_projection, then decides whether the current expression should be reused, merged, linked, or split. It does not start a second Codex session or fabricate user messages.The MCP Server handles deterministic state: a Node.js process provides MCP tools and a local HTTP API that only listens on
127.0.0.1. The Reducer is responsible for stable IDs, normalized exact deduplication, Pick provenance, cross-topic relationships, bounded projection, and validating that everysourceQuotereally comes from this turn's user transcript, while persisting the full session as JSON.The Browser handles projection and filtering: the page checks the internal revision roughly every 900 ms and only redraws when the state changes. Pick, theme switching, and transcript expansion are done entirely locally, without calling the model or consuming extra tokens.
Semantic paraphrase merging is judged by the current Codex; the server only provides a deterministic fallback for questions or viewpoints that are identical after normalization, so it does not falsely promise that arbitrary rewrites will always merge 100% automatically. Aggregation is scoped to the same Canvas session and does not merge automatically across different Codex tasks.
Tokens mainly come from one compact structure read and one small incremental write per turn. The view is limited to 25 nodes, and the matching index is limited to the 40 most recent Claims; the compact projection from Codex only returns the evidence count and the 3 most recent source IDs, without carrying the verbatim text again. Verbatim evidence is only sent to the local Browser, showing the 5 most recent items by default, with full provenance kept in the local JSON. Browser polling, theme switching, manual Pick, and transcript expansion are all purely local operations.
Default data location:
<workspace>/.local/vibe-canvas-demo/sessions/<session-id>.json
<workspace>/.local/vibe-canvas-demo/preferences.jsonKeyboard shortcuts
After focusing a third-level point with 原文 N, press Enter or Space to expand / collapse the fourth-level transcript. All other operations use the Codex conversation and the Pick / theme controls in the canvas.
Development
npm test33 behavioral tests and browser visual tests cover opening the canvas, incremental sync, AI Pick, candidate re-evaluation, manual override, theme preference, state restoration, cross-turn deduplication, cross-topic relationships, verbatim evidence validation, default collapse, mouse and keyboard expansion, 12-turn aggregation replay, and the 100-turn evidence boundary.
Changelog
See CHANGELOG.md.
License
MIT © 2026 prozacLaputa
This server cannot be deployed
Maintenance
Related MCP Connectors
AI Reasoning Cache & Consensus Layer with 11 MCP tools via Streamable HTTP.
Persistent memory for AI agents — log and recall conversation context over MCP.
Your versioned memory across every AI tool — context maps, personal memory, and tasks over MCP.
Share one project context across ChatGPT, Claude, Telegram and any MCP client.
Related MCP Servers
- AlicenseAqualityCmaintenanceLocal-first external brain for Claude Code, Codex, and any MCP client. Stores decisions, entities, and session artifacts in one SQLite file and exposes MCP tools for recall, page, promote, review, graph-query, and source-status.11104MIT
- AlicenseCqualityDmaintenanceMCP server for sharing source-backed engineering memory across AI coding clients like Cursor and VS Code.301MIT
- AlicenseNot gradedqualityCmaintenanceA local MCP server that provides a shared context and learning foundation across multiple AI tools (Claude, Copilot, Codex) for multiple projects, enabling persistent knowledge, decisions, and gap reflection through note storage.MIT
- AlicenseBqualityDmaintenanceLocal Markdown-backed memory tools for Codex and other MCP-capable agents. Exposes durable agent knowledge via CLI and MCP server.5MIT