Skip to main content
Glama

Kumihimo

組紐 — many threads in, one cord out.

Kumihimo is the Japanese craft of braiding many separate threads into a single cord. This tool works the same way: you lay out a plan as a graph of plain-text files, and Kumihimo braids that graph into a single, well-ordered prompt an LLM or coding agent can act on.

  • See it. kumihimo edit opens a live canvas — kind-colored nodes, dependency/membership/annotation edges drawn distinctly, drag to arrange, click to edit. The canvas follows the files: change a node in vim (or let Claude change it over MCP) and watch it move.

  • Braid it. kumihimo braid compiles the graph into one deterministic prompt: topologically ordered, sectioned by milestone, every item stating its real prerequisites, the graph's own Mermaid diagram embedded.

  • Let Claude drive it. kumihimo mcp serves the plan over MCP — eleven tools to read, restructure, validate, and braid — so an agent can maintain the plan it executes. This repo's own roadmap is a Kumihimo plan (plans/roadmap), its milestone prompts were braided, not hand-written, and the canvas below is that roadmap the morning v0.1 finished — every thread done, the release node blocked on a human with a tag:

The files are the only source of truth — Markdown with YAML frontmatter, in git, diffing cleanly. The editor, CLI, and MCP server are thin clients over one operations layer; node positions live in a view.yaml sidecar so arranging the graph never dirties a semantic diff.

Ten minutes

pip install kumihimo

kumihimo new myplan
kumihimo edit myplan        # live canvas at 127.0.0.1:8720
kumihimo add myplan build --kind task --title "Build the loader" --body "..."
kumihimo check myplan       # cycles named with paths, dangling edges, field breaches
kumihimo braid myplan       # one prompt on stdout — paste into your agent

A node is a file:

---
kind: task
title: Rate-limit middleware
needs: [api-endpoints, pick-algorithm]
in: [ship-guarded-api]
effort: M
acceptance:
  - 429 + Retry-After on breach
---
Middleware on every authenticated route. Fail *open* on Redis errors —
availability beats enforcement.

…and the braid compiles the graph into one prompt — preamble, embedded Mermaid shape, settled decisions stated as constraints, every task with an honest After: line and Done when: checklist:

The core is domain-agnostic: it understands identity, prose, order (needs), membership (in), and annotation (links) — everything else comes from kinds you define in the manifest, fields and Jinja2 templates included. An engineering pack (task, milestone, decision, risk, question) ships as the default; examples/fieldnotes is a research plan whose kinds live entirely in its own manifest.

Docs: https://tzavislan.github.io/kumihimo/ — tutorial, concepts, custom kinds, MCP setup, file formats.

Development

uv sync
uv run pytest -q
uv run python tools/lint.py            # the conventions linter CI runs
npm --prefix frontend install         # only if you work on the canvas
npm --prefix frontend run build

Conventions (enforced in CI): CONVENTIONS.md. Contributions: CONTRIBUTING.md. Design record: PLAN.md. Releases: RELEASING.md.

License

MIT

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • End-to-end agent-managed company brain. Docs, diagrams, plans, Knowledge Graph. Lean & affordable.

  • Cross-agent artifact workspace with provenance across Claude Code, Codex, Cursor, LangGraph.

  • Persistent docs and memory for AI agents — read, write, organize & search a shared workspace.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/tzavislan/kumihimo'

If you have feedback or need assistance with the MCP directory API, please join our Discord server