Skip to content

he-yufeng/RepoWiki

Repository files navigation

Open-source DeepWiki alternative — generate comprehensive wiki documentation for any codebase from your terminal or browser.

Why RepoWiki?

DeepWiki deepwiki-open RepoWiki
Deploy SaaS only Docker Compose pip install repowiki
Local repos No No Yes
CLI No No Yes
Web UI Yes Yes Yes
Export Web only Web only Markdown / JSON / HTML
Reading guide No No PageRank + guided path
Terminal Q&A No No repowiki chat
Dependencies N/A Docker + PostgreSQL Python + SQLite

Quick Start

pip install repowiki

# set your API key (DeepSeek, OpenAI, Anthropic, etc.)
export DEEPSEEK_API_KEY=<your-api-key>
# or
repowiki config set api_key <your-api-key>

# scan a local project
repowiki scan ./my-project

# scan a GitHub repo
repowiki scan https://github.com/pallets/flask

# generate self-contained HTML
repowiki scan ./my-project --format html --open

# start the web interface
pip install repowiki[web]
repowiki serve

RepoWiki respects .gitignore and .repowikiignore during scans. It also skips common local secret files such as .env, .env.local, .npmrc, .pypirc, and SSH private keys by default.

Features

  • Structured wiki — project overview, per-module docs, auto-detected architecture with Mermaid diagrams, and a PageRank "start here" reading path.
  • Import-aware ranking — resolves Python and JS/TS imports before ranking files, and skips minified/generated bundles so they don't burn LLM context.
  • Three output formats — a Markdown directory to commit, structured JSON, or a self-contained HTML file to share (diagrams included).
  • Web viewer + terminal chat — a three-column browser UI, or repowiki chat . for grounded Q&A in the terminal (built-in TF-IDF retrieval, no embeddings service).
  • CLI-first — no Docker, no database server, no browser required.
repowiki scan .                    # generate wiki
repowiki scan . -f html --open     # open in browser
repowiki scan . -l zh              # Chinese output
repowiki chat .                    # interactive Q&A about the code

Languages & Models

Detects Python, JavaScript, TypeScript, Go, Rust, Java, Kotlin, C/C++, C#, Ruby, PHP, Swift, and 30+ more. Any of litellm's 100+ providers works — pick one with an alias or pass it directly:

repowiki config set model deepseek   # deepseek / claude / gpt / gemini / qwen / kimi / glm ...
repowiki scan . -m gpt               # or pass a model directly

Configuration

RepoWiki looks for config in this order:

  1. CLI flags (-m, -l, -o)
  2. Environment variables (REPOWIKI_MODEL, REPOWIKI_API_KEY)
  3. Config file (~/.repowiki/config.json)
  4. Provider-specific env vars (DEEPSEEK_API_KEY, OPENAI_API_KEY, ANTHROPIC_API_KEY)

Project Structure

RepoWiki/
├── src/repowiki/
│   ├── cli.py              # Click CLI with scan/serve/chat/config commands
│   ├── config.py           # Configuration management
│   ├── core/
│   │   ├── scanner.py      # File scanning with language detection
│   │   ├── analyzer.py     # Multi-step LLM analysis pipeline
│   │   ├── graph.py        # Dependency graph + PageRank
│   │   ├── wiki_builder.py # Wiki page assembly
│   │   ├── rag.py          # TF-IDF retrieval for Q&A
│   │   └── cache.py        # SQLite caching
│   ├── llm/
│   │   ├── client.py       # litellm async wrapper
│   │   └── prompts.py      # Structured prompt templates
│   ├── ingest/
│   │   ├── local.py        # Local directory ingestion
│   │   └── github.py       # Git clone with caching
│   ├── export/
│   │   ├── markdown.py     # Markdown directory export
│   │   ├── json_export.py  # JSON export
│   │   └── html.py         # Self-contained HTML export
│   └── server/             # FastAPI web backend
├── frontend/               # React + Vite + TailwindCSS
├── pyproject.toml
└── LICENSE

How It Works

RepoWiki pipeline

  1. Scan — Walk the directory tree, filter out binaries, generated bundles, and oversized files, detect languages and entry points
  2. Graph — Resolve imports across 6 languages, including Python package-relative and JavaScript/TypeScript relative modules, then run PageRank to rank file importance
  3. Analyze — Send file tree + key files to LLM in 4 structured passes (overview, modules, architecture, reading guide)
  4. Cache — Store results in SQLite keyed by content hash, skip unchanged files on re-scan
  5. Export — Assemble wiki pages with Mermaid diagrams and source links, output in chosen format

Development

git clone https://github.com/he-yufeng/RepoWiki.git
cd RepoWiki

# backend
python -m venv .venv && source .venv/bin/activate
pip install -e ".[dev,web]"

# frontend
cd frontend && npm install && npm run dev

# run backend
repowiki serve --port 8000

Roadmap

Generation, the web interface, and the diagrams work. The next steps are about keeping a wiki fresh and better connected:

  • Incremental re-generation — regenerate only the pages whose source changed since the last run, so updating a wiki on a large repo isn't a full rebuild every time.
  • Cross-reference links — link a symbol mentioned on one module page to the page where it's defined, so the wiki reads like connected docs instead of isolated pages.
  • More diagram types — a call graph and a data-flow view alongside the dependency graph, since the analysis already walks imports and could surface more.
  • Publish to a static site — a one-command export to a GitHub Pages-ready site, so a generated wiki can live as a project's docs, not just a local file.

Related Projects

If RepoWiki helped you find your way around a codebase, a few other things I've built:

  • CoreCoder — want to understand how a coding agent really works? Read the whole ~1k-line engine end to end, not a black box.
  • FindJobs-Agent — stop sifting job boards by hand: it ranks postings against your resume and runs mock interviews.
  • ContractGuard — catch the risky clauses before you sign: it reads contracts and flags the dangerous bits.
  • GitSense — want to contribute to open source? It finds issues worth your time and gauges whether your PR will get merged.
  • CodeABC — understand any codebase even if you don't code, built for non-programmers.

License

MIT

About

Open-source DeepWiki alternative — generate comprehensive wiki documentation for any codebase from terminal or browser

Topics

Resources

License

Stars

214 stars

Watchers

13 watching

Forks

Packages

 
 
 

Contributors