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 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. The deterministic steps run via the doctyze CLI (over uvx), so there's nothing to approve — it works right after reload.

Optional — faster MCP tools instead of the CLI. init also registers Doctyze as an MCP server. To use it, approve the server once: project-scoped MCP servers need a one-time OK before their tools load, so reloading alone isn't enough (Claude Code: run /mcp → select doctyzeEnable; Cursor: Settings → MCP; VS Code: Start the server when prompted). The doctyze prompt works either way.

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.3.tar.gz (45.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.3-py3-none-any.whl (46.1 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: doctyze-0.3.3.tar.gz
  • Upload date:
  • Size: 45.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.3.tar.gz
Algorithm Hash digest
SHA256 d16808c75db30e7a87c7cdea3b51aebc08d5f51a52d01f0ef7ec513774f34f27
MD5 1a9ecf6eb5e0b07db5967b77ac22851d
BLAKE2b-256 622e7a90f96d672fb42fed3ef41ec33717536fe98937aff545f5d5bfcad7b0d9

See more details on using hashes here.

Provenance

The following attestation bundles were made for doctyze-0.3.3.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.3-py3-none-any.whl.

File metadata

  • Download URL: doctyze-0.3.3-py3-none-any.whl
  • Upload date:
  • Size: 46.1 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.3-py3-none-any.whl
Algorithm Hash digest
SHA256 d98c99a87f8de4191f03a454ab993b2c6b24df7f5356f2707519b41bc1823538
MD5 f7716a7030ba80ff5e40e8706b3274de
BLAKE2b-256 94e54f87621de1825ddc74209307161931c561b490611778f2bd8e2dcb670f8c

See more details on using hashes here.

Provenance

The following attestation bundles were made for doctyze-0.3.3-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