AI-native Markdown document workspace. Write, edit, and iterate on documents side-by-side with an AI assistant β with live rendered preview, rich formatting, LaTeX and Mermaid support, and AI edits you review and approve inline.
Evaluchat Canvas is an independent, open-source continuation of LangChain Open Canvas (MIT). We're grateful for the original project β see Acknowledgments.
Try the hosted version at evaluchat.com, or run it yourself (local or self-hosted β see Setup locally).
- Live markdown editing & rendering β see the rendered document while you edit, no toggling
- Rich formatting toolbar β bold, italic, lists, quotes, code blocks and more
- LaTeX equations & Mermaid diagrams β rendered inline, in markdown and code artifacts
- AI track changes β the assistant proposes edits; you approve or reject them inline
- Artifact versioning β every artifact carries a version history; travel back in time
- Built-in memory β a reflection agent remembers style rules and facts about you across sessions
- Custom & pre-built quick actions β one-click prompts for common writing and coding tasks
- Code, Markdown, or both β switch between code and markdown artifacts in the same session
- Printer-friendly export / PDF β clean output styling for print and PDF
| Path | What it is |
|---|---|
apps/web |
Next.js web app (UI + API routes) β @opencanvas/web |
apps/agents |
LangGraph agent graphs (generation, reflection, routing) β @opencanvas/agents |
packages/shared |
Shared types and utilities β @opencanvas/shared |
Prerequisites: Node 22 and Yarn 1.22 (corepack: corepack enable).
git clone https://github.com/evaluchat/canvas.git
cd canvas
yarn install- Root
.envβ used by the agents (LangGraph). Copy.env.exampleβ.envand add at least one model provider key (OpenAI, Anthropic, Google, Fireworks, or Groq). apps/web/.envβ used by the web app. Copyapps/web/.env.exampleβapps/web/.env, setNEXT_PUBLIC_SUPABASE_URL+NEXT_PUBLIC_SUPABASE_ANON_KEY(create a free Supabase project β it provides auth and persistence), and optionallyGROQ_API_KEY(audio transcription) andFIRECRAWL_API_KEY(URL scraping).
Terminal 1 β agents (LangGraph dev server on port 54367):
yarn workspace @opencanvas/agents devTerminal 2 β web app (Next.js dev server):
yarn workspace @opencanvas/web devOpen http://localhost:3000.
yarn format:check # prettier
yarn lint # eslint
yarn build # turbo build (all workspaces)See CONTRIBUTING.md β setup, conventions, and the PR checklist. External contributions are welcome; this is a small project, so please open an issue before large changes.
Evaluchat Canvas is one of Evaluchat's open surfaces. The same document workspace also powers:
- Evaluchat Essays β AI-assisted essay workflows for education
- Evaluchat Research β public research on AI in education and assessment
Evaluchat Canvas is derived from and inspired by LangChain Open Canvas, licensed under the MIT License. The original copyright notice and license text are preserved in LICENSE-LANGCHAIN. We extend our appreciation to the LangChain team and open-source contributors for the initial structural concept of canvas-based AI interaction.
MIT β see LICENSE. Upstream attribution: LICENSE-LANGCHAIN.