RepoWiki

June 3, 2026 · View on GitHub

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

PyPI Python License: MIT

中文文档

Why RepoWiki?

DeepWikideepwiki-openRepoWiki
DeploySaaS onlyDocker Composepip install repowiki
Local reposNoNoYes
CLINoNoYes
Web UIYesYesYes
ExportWeb onlyWeb onlyMarkdown / JSON / HTML
Reading guideNoNoPageRank + guided path
Terminal Q&ANoNorepowiki chat
DependenciesN/ADocker + PostgreSQLPython + 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

Wiki Generation

Automatically generates structured documentation for any codebase:

  • Project overview — what it does, tech stack, setup instructions
  • Module documentation — purpose, key files, relationships, important functions
  • Architecture diagrams — auto-detected architecture type with Mermaid visualizations
  • Reading guide — "start here" path based on PageRank file importance ranking
  • Bundle-aware scanner — skips minified JS/CSS and generated frontend chunks before they burn LLM context

Multiple Output Formats

  • Markdown — directory of .md files, ready to commit to your repo
  • JSON — structured data for API consumption or custom rendering
  • HTML — self-contained single file, share with anyone (Mermaid diagrams included)

Web Interface

Three-column wiki viewer with sidebar navigation, Mermaid diagram rendering, and an AI-powered Q&A chat about the codebase.

CLI-First Design

Everything works from the terminal. No Docker, no database server, no web browser required.

repowiki scan .                    # generate wiki
repowiki scan . -f html --open     # open in browser
repowiki scan . -l zh              # Chinese output
repowiki chat .                    # ask questions (coming soon)
repowiki config list               # show configuration

Supported Languages

Python, JavaScript, TypeScript, Go, Rust, Java, Kotlin, C/C++, C#, Ruby, PHP, Swift, Dart, Vue, Svelte, and 30+ more.

Supported LLM Providers

Powered by litellm, RepoWiki works with 100+ LLM providers:

ProviderModelAlias
AnthropicClaude Opus 4.6opus
AnthropicClaude Sonnet 4.6claude
OpenAIGPT-5.4gpt
OpenAIGPT-5.4 Minigpt-mini
GoogleGemini 3.1 Progemini
GoogleGemini 2.5 Flashgemini-flash
DeepSeekDeepSeek V3.2deepseek
AlibabaQwen3.5 Plusqwen
MoonshotKimi K2.6kimi
ZhipuGLM-5glm
MiniMaxM2.7minimax
repowiki config set model deepseek    # use alias
repowiki scan . -m gpt                # or pass 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

  1. Scan — Walk the directory tree, filter out binaries, generated bundles, and oversized files, detect languages and entry points
  2. Graph — Parse import statements across 6 languages, build a dependency graph, 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
  • CodeJoust — once RepoWiki tells you how the repo works, CodeJoust helps you change it: race Claude Code, aider, Codex, and Gemini on the same bug in parallel git worktrees, auto-score by tests/cost/diff/time, merge the winner. pip install codejoust.
  • LiteBench — one-command LLM/agent benchmark. HumanEval/GSM8K/MMLU/MATH-500 built in, plus YAML-defined custom tasks and a single-file HTML dashboard.
  • CoreCoder — Claude Code's architecture distilled to ~1,400 lines of Python, with 7 deep-dive architecture articles.
  • AnyCoder — practical terminal AI coding agent, 100+ model support via litellm.

License

MIT