TakeSix

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 Codeclaude mcp add takesix -- npx -y @takesix/mcp
  • Codexcodex mcp add takesix -- npx -y @takesix/mcp
Read the format

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
Same answer, one screen at a time.
Live TakeSix diagram

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

🤖

For agents

A skill and an MCP server

{ }

The format

Plain JSON: blocks, children, links

▣

For apps

Viewer and editor for React

○

Open source

MIT licensed: format, libraries, skill and MCP server. Next: integrations

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.

  • 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.

  • 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.

  • 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.

  • 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