Answers as diagrams, not walls of text
TakeSix lets an AI agent answer with a diagram you can click into. The gist fits on one screen of six blocks at most; every block opens into its own screen, and the long text waits in a side panel.
- Claude Code
claude mcp add takesix -- npx -y @takesix/mcp - Codex
codex mcp add takesix -- npx -y @takesix/mcp
Open source under MIT: format, libraries, skill and MCP server.
Explain how our checkout works
- CartItems, discounts, totals3 more inside
- Checkout APICreates the order4 more inside
- PaymentsCharges via the provider5 more inside
- OrdersPending to shipped4 more inside
- NotificationsEmails and webhooks2 more inside
- SettlementNightly reconciliation3 more inside
TakeSix, explained by itself
Click any block to open it. Every screen shows six blocks at most; longer text waits in the side panel
- The idea: An agent answers with a diagram you can click into, not pages of prose. Click Me! I have more inside
Ask an agent to explain a codebase, a spec or a plan and you usually get many screens of headings and bullet lists. TakeSix turns that answer into a tree: the whole thing fits on the first screen, and each part opens into its own screen.
- Six at most: A screen you can take in at a glance
Six is a hard limit, checked by the validator. When there are more things to show, they are grouped into a parent that names what they share. That grouping is the explanation.
- Depth on demand: The gist first, details one click away
Cards show a title and one line. Click to open a block, use the breadcrumb to go back. Long explanations, code and lists live in a Markdown side panel.
- Checked, not guessed: A JSON format with a schema an agent can validate against
Errors come with JSON paths (`/blocks/2/children: 7 blocks on one level`), so the agent fixes its own answer before you see it.
- Six at most: A screen you can take in at a glance
- For agents: A skill and an MCP server
Both teach the agent the same rules for readable diagrams, check the result and render it.
- MCP server: @takesix/mcp for any MCP client
``` claude mcp add takesix -- npx -y @takesix/mcp codex mcp add takesix -- npx -y @takesix/mcp ``` Tools: `guide` (the rules), `validate`, `show` (writes one HTML file). Runs locally over stdio.
- In the conversation: MCP Apps hosts show the diagram inline
In clients that support MCP Apps, such as Claude Desktop, `show` opens the diagram right in the chat, with a full screen button. Elsewhere you get a self-contained HTML file.
- Agent Skill: For Claude: rules plus a validate and render script
Copy `skill/takesix` from the takesix-agent repository into `~/.claude/skills/`. It needs only Node.js: the script and the viewer are bundled.
- MCP server: @takesix/mcp for any MCP client
- The format: Plain JSON: blocks, children, links
```json { "takesix": "1.0", "title": "Payments", "blocks": [ { "id": "api", "title": "API", "size": "S" }, { "id": "bank", "title": "Bank" } ], "links": [{ "from": "api", "to": "bank" }] } ``` Full specification: [FORMAT.md](https://github.com/vvapnik/takesix-core/blob/main/FORMAT.md)
- Block: id, title, one-line description, up to six children
Optional fields: `icon`, `size`, `details` (Markdown for the side panel) and `meta` for data of other tools. Ids are stable, so links and comments can rely on them.
- Size: S, M, L or F on a six-column grid
- **S** a third of the width - **M** a half (default) - **L** two thirds - **F** the full width Blocks flow left to right and wrap. Plans use F, so each step is a row.
- Link: Between any two blocks, on any levels
`from`, `to`, an optional `label` and `direction`. A link between nested blocks also shows one level up, as an arrow between their parents.
- Block: id, title, one-line description, up to six children
- For apps: Viewer and editor for React
``` npm install @takesix/react ```
- @takesix/react: One component: view, or edit with onChange
```tsx import { TakeSix } from '@takesix/react' import '@takesix/react/style.css' <TakeSix document={doc} onChange={setDoc} editing /> ``` Light and dark themes, drag and drop, grouping, phones. This page uses it.
- @takesix/core: Parse, validate, edit; no dependencies
Everything about the document without UI: `parseDocument`, `validateDocument`, immutable edits, and `visibleLinks` for drawing arrows on a level.
- @takesix/react: One component: view, or edit with onChange
- Open source: MIT licensed: format, libraries, skill and MCP server. Next: integrations
- Repositories: core, react, agent, and this site
- [takesix-core](https://github.com/vvapnik/takesix-core) - [takesix-react](https://github.com/vvapnik/takesix-react) - [takesix-agent](https://github.com/vvapnik/takesix-agent) - [takesix](https://github.com/vvapnik/takesix)
- Coming next: Confluence and other integrations, export, embedding
- Plugins: Confluence first, then Notion, GitHub, VS Code, Obsidian - Embedding with an `<iframe>` or a `<take-six>` web component - Converters from C4, Mermaid, OpenAPI - Presentation mode and PNG/SVG export
- Repositories: core, react, agent, and this site