Skip to main content

Generate and maintain a complete documentation context layer for any repo — using the LLM already in your IDE.

Project description

Doctyze

Turn any repo into living documentation — for humans and AI agents — using the LLM already in your IDE.

PyPI License: Apache 2.0 AGENTS.md


What it does

Point Doctyze at any repository, any stack. Your IDE's AI assistant then:

  1. Consolidates scattered docs (loose READMEs, wiki notes, design files) into one canonical docs/ tree — non-destructively.
  2. Generates the missing docs from the actual code: feature specs, architecture + Mermaid diagrams, decisions (ADRs), runbooks, observability, dev/testing skills.
  3. Keeps them fresh — when code changes, it flags exactly which docs are now stale.

No API key. Doctyze uses the AI you already have in your IDE (Cursor / Claude Code / Copilot) — it never calls an LLM itself or asks for a key.


Get started — one command

In your repo (nothing to install — uvx fetches it on demand):

uvx doctyze init

That one command wires Doctyze into whatever AI assistants you have — it:

  • registers the Doctyze MCP server in project configs: .mcp.json (Claude Code), .cursor/mcp.json (Cursor), .vscode/mcp.json (VS Code / Copilot), and — if it detects them — .codex/config.toml (Codex) and .gemini/settings.json (Gemini). All repo-scoped and merge-safe (won't touch your other servers).
  • installs the skills (.claude/skills, .cursor/rules, AGENTS.md),
  • scaffolds the canonical docs/ structure.

(Windsurf and Cline only support a global MCP config, so init detects them and prints how to add the server there; both read AGENTS.md, so their playbook is already covered.)

Then reload your IDE and, in your assistant, invoke the doctyze prompt (Claude Code: /doctyze — or just say "set up the documentation for this repo with Doctyze"). Your assistant organizes existing docs, reads the code, and writes the new docs — using its own model, no API key.

Commit the result and your teammates inherit Doctyze (MCP config + skills) on git clonezero setup for them.

Works with any MCP-capable assistant — Claude Code, Cursor, VS Code/Copilot, Codex, Gemini, Windsurf, Cline, and more. The MCP server ships both the tools and the playbook (as an MCP prompt), so every IDE gets the full guided workflow on the first run.

Prefer to add the MCP server manually, or on another IDE?

The server is identical everywhere:

{ "mcpServers": { "doctyze": { "command": "uvx", "args": ["--from", "doctyze[mcp]", "doctyze-mcp"] } } }
Assistant How
Claude Code claude mcp add doctyze -- uvx --from 'doctyze[mcp]' doctyze-mcp
Cursor add to .cursor/mcp.json (project) or ~/.cursor/mcp.json (global)
VS Code / Copilot run “MCP: Add Server”, or add to .vscode/mcp.json (a servers map with "type": "stdio")
Codex CLI codex mcp add doctyze -- uvx --from doctyze[mcp] doctyze-mcp, or [mcp_servers.doctyze] in .codex/config.toml
Gemini CLI add to .gemini/settings.json (mcpServers)
Windsurf ~/.codeium/windsurf/mcp_config.json (mcpServers) — global only
Cline its “Configure MCP Servers” UI (global)

Every entry runs the same server: uvx --from "doctyze[mcp]" doctyze-mcp.

What you get: a docs/ tree — specs/, architecture/{diagrams,decisions}/, runbooks/, observability/, guides/, skills/ — with a docs/index.md table of contents, fanned out to AGENTS.md / .cursor/rules / Claude Code skills so every assistant on the repo inherits the context.

Each generated doc carries a freshness anchor so a code change flags the specific docs it makes stale:

---
doctyze:
  artifact: spec
  generated_by: write-spec
  affects: [src/payments/**]
  last_verified: 2026-06-28
---

For CI & automation (optional)

The same operations are a small CLI, for pipelines and scripting (this is what the assistant calls under the hood — you don't need it for normal use):

pip install doctyze
doctyze --help     # init · consolidate · bootstrap · index · distribute · watch

Wire doctyze watch into a pre-commit hook or PR check to keep docs from drifting in CI. These commands are deterministic (file moves, drift detection) and never call an LLM — generation stays with your IDE/CI agent.


How it's built

A deterministic Python engine (no LLM, no key) exposed as both an MCP server and a CLI, plus agent-run generation skills. See CONTRIBUTING.md and docs/architecture/decisions/0003-pivot-to-context-layer-generator.md.

License

Apache 2.0. Free and open source for everyone.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doctyze-0.3.2.tar.gz (44.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

doctyze-0.3.2-py3-none-any.whl (45.2 kB view details)

Uploaded Python 3

File details

Details for the file doctyze-0.3.2.tar.gz.

File metadata

  • Download URL: doctyze-0.3.2.tar.gz
  • Upload date:
  • Size: 44.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for doctyze-0.3.2.tar.gz
Algorithm Hash digest
SHA256 b78bb58faf25634be567449adc943a28716aa1aa21dc935d96a0ea698bcf5af1
MD5 5f9ec0c6968bb702a15590929d55da53
BLAKE2b-256 d57e0278e7bb87d19bf0f7b36b1f701426099df9d75c891b0c61dcea663e36d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for doctyze-0.3.2.tar.gz:

Publisher: release.yml on actyze/doctyze

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file doctyze-0.3.2-py3-none-any.whl.

File metadata

  • Download URL: doctyze-0.3.2-py3-none-any.whl
  • Upload date:
  • Size: 45.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for doctyze-0.3.2-py3-none-any.whl
Algorithm Hash digest
SHA256 dce343182576aa21c1e990457b236f0cf9a7b0521fe87edf482e57d41dd1458c
MD5 92fa242f4b216f32b9272cb33e7d492a
BLAKE2b-256 238f61a0a5be0d03dadab1d3071eeaccacaad7a245826d750f7e50132cb4685b

See more details on using hashes here.

Provenance

The following attestation bundles were made for doctyze-0.3.2-py3-none-any.whl:

Publisher: release.yml on actyze/doctyze

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page