Skip to main content

Wikifier

License: MIT PyPI version GitHub Stars

A zero-dependency codebase wiki for AI agents — token-efficient maps so LLMs look things up instead of re-reading full sources.

Wikifier is an agent-to-agent tool: it builds a living map of a project (health matrix, dependency graph, short file summaries) and agents keep that map current as they work. Humans can peek via a small dashboard; the product is the agent loop, not a general docs site or IDE.

Works from small scripts to large monorepos. Deep import/include maps (zero-dep regex parsers):

Language Extensions Notes
Python .py full ACS/CDIA path
JavaScript / TypeScript .js .ts .jsx .tsx barrels (BREE), dynamic/CDIA
Rust .rs use / mod / extern crate
Go .go import / import blocks
C / C++ .c .h .cpp .cc .cxx .hpp .hh #include (local + system)
C# .cs using namespaces
Java .java import / import static

Health/journal still work for any monitored path. Parsers are pragmatic regex (not full cargo/go.mod/classpath/-I resolution). Prefer lean monitored_paths.txt on huge monorepos; raise dirty cap with WIKIFIER_CHECK_CHANGES_MAX (default 2000) only when needed.

Why

Context windows are finite. Re-reading a large file to answer “what is this and who depends on it?” wastes tokens.

Artifact Role
file_health.md 🟢 / 🟡 / 🔴 matrix — what to trust, what to fix first
library.md File tree, Mermaid dependency map, import tables, cycles + confidence
*.wiki.md Short per-file “what this is for” notes (agent-maintained prose)
journal/ + pending_updates.md Semantic why trail + work queue (audit, not a full issue tracker)

Map first, wiki depth second: update-maps builds the structural map automatically. Rich per-file wiki text is filled by agents as they work — not a free full-repo “understand everything” pass on init.

First run (bootstrap the map)

pip install wikifier            # pure Python stdlib core — no runtime deps
pip install wikifier[mcp]       # optional Model Context Protocol (MCP) server

cd /path/to/your/project
wikifier init                   # seeds + human index.html
wikifier update-maps            # full structural map → library.md + import cache
wikifier health --summary       # matrix counts
wikifier suggest-next           # or MCP suggest_next_actions — 🔴/🟡 only

Always set an explicit root for external trees: WIKIFIER_PROJECT_ROOT=/abs/path wikifier …

Steady state (only touch what needs it)

Full protocol: skills/run.md.

wikifier check-changes          # yellow dirty files; red ghosts (missing paths)
# prioritize 🔴 then 🟡 — do NOT re-wiki 🟢 Green files
# ... edit only those sources ...
wikifier record-change "path/file.py" "why this changed"   # required
# ... refresh that file’s wiki summary only ...
wikifier mark-green "path/file.py"
wikifier update-maps            # only if imports/structure changed
# removals:
wikifier record-deletion "path/gone.py" "why removed"

MCP Core 6 (start every session): get_project_status, check_changes, get_files_needing_attention, get_file_wiki, suggest_next_actions, record_change / mark_green. Intel as needed: get_dependencies, get_dependents, get_cycles. Always pass project_root= for external trees.

What you get

  • Import analysis — Python, JS/TS (ESM/CJS, barrels), Rust, Go, C/C++ includes, C# usings; per-edge confidence; name-routed barrel expansion for TS/JS
  • Incremental pipeline — pure-Python update-maps: dirty parse → import cache → reverse deps → cycles → library.md
  • Selective agent work — health + suggest bias to 🔴/🟡 only; ACS actionable low-conf excludes stdlib/external noise
  • Scale — reverse index + barrel invalidation so one edit doesn’t re-scan the monorepo
  • MCP tools — optional server for Claude, Cursor, Cline, and other MCP clients
  • Zero core dependencies — stdlib only; forks can add their own stack on top
  • Agent navigability — short AGENT MAP docstrings on core modules; self-tests under tests/ (not buried in parsers)

Performance (measured)

Project Scale Full update-maps
llama_index ~3.8k Python files ~8.5s
Babylon.js ~3.9k TS files, barrel-heavy ~4.5 min (scoped re-runs ~80s)
Large trees (e.g. LLVM-scale) tens of thousands of files candidate scan in seconds

Tests: python -m unittest discover tests (stdlib only).

Commands

Command Purpose
wikifier init [--target DIR] Bootstrap project + human index.html
wikifier check-changes Incremental scan → health / pending
wikifier record-change <file> "reason" Log why (required after edits)
wikifier mark-green <file> Mark wiki current
wikifier record-deletion <file> "reason" Mark removed paths 🔴 + prune barrel refs
wikifier suggest-next Next actions (🔴/🟡 only)
wikifier update-maps [--directory=src/] [--max-files=N] Rebuild graph + library.md
wikifier health [--summary|--json] Health matrix (machine-friendly flags)
wikifier validate Missing wiki rows + ghost paths
wikifier cycles Circular deps + break hints
wikifier monitor / daemon Background maintenance (WIKIFIER_DAEMON_MAPS=0 for check-only)
wikifier serve Localhost dashboard with Run/Stop

Library: from wikifier import check_changes, record_change, mark_green, suggest_next_actions, update_maps, health.

MCP

WIKIFIER_PROJECT_ROOT=/abs/path/to/project wikifier-mcp
# or: python3 -m wikifier.mcp.server

Setup and tool list: wikifier/mcp/README.md.

Human dashboard (secondary)

Wikifier dashboard — file tree, health pills, local Run/Stop

wikifier init drops a single index.html. Prefer wikifier serve (e.g. http://localhost:8787/index.html) — file:// can’t load project files. The markdown artifacts and CLI/MCP tools stay the source of truth; the UI is a read-only window.

Scope

In: agent-maintained codebase wiki, dependency intelligence, token-saving lookup for LLMs and coding agents.
Out: general human documentation systems, IDE plugins, “docs for everyone” product growth.

Agent navigability: Prefer protocol (skills/run.md) + MCP Core 6 over reading 20k LOC of parsers/cache. Production modules carry a short AGENT MAP docstring; self-tests live under tests/ and tests/selftest/, not inline at the bottom of parsers.

Links

Download files

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

Source Distribution

wikifier-4.6.1.tar.gz (340.9 kB view details)

Uploaded Source

Built Distribution

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

wikifier-4.6.1-py3-none-any.whl (301.2 kB view details)

Uploaded Python 3

File details

Details for the file wikifier-4.6.1.tar.gz.

File metadata

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

File hashes

Hashes for wikifier-4.6.1.tar.gz
Algorithm Hash digest
SHA256 7f4663135cee5583decff09462678dafc7774bbac7c20df7576456ebb542b76d
MD5 903af73b7c53ef9df44890216200a1d1
BLAKE2b-256 6dd550ed020b26b24398f489c9bba35b7301a12e3d8a06176aa171bb305cdbae

See more details on using hashes here.

Provenance

The following attestation bundles were made for wikifier-4.6.1.tar.gz:

Publisher: publish.yml on IronAdamant/wikifier

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

File details

Details for the file wikifier-4.6.1-py3-none-any.whl.

File metadata

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

File hashes

Hashes for wikifier-4.6.1-py3-none-any.whl
Algorithm Hash digest
SHA256 5e746a83b253726a7cb8678b70602feb1234460effc5c7b6f6bed70385942e40
MD5 e8e9c8711862f6f180b7f45414296950
BLAKE2b-256 c6aa170b3313dea0fc38544e60eda2f67cf3d0cf8fa54c69d1c1ffa85f48f478

See more details on using hashes here.

Provenance

The following attestation bundles were made for wikifier-4.6.1-py3-none-any.whl:

Publisher: publish.yml on IronAdamant/wikifier

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 Sentry Error logging StatusPage Status page