Repowise

Query an index of a repository's dependency graph, git history, docs and code health from a coding agent

By Repowise Python Local · stdio Developer toolsKnowledge and memoryGit and code hosting

86 popularity score ★ 8.1k ↓ 17k/mo

Connect your client

Local (PyPI)

Add in one click

Opens the app, which asks before it adds the server. Then replace each <NAME> in its settings with your value.

Or add it by command or config

FirstTerminal
uv tool install repowise
cd <ABSOLUTE_PATH_TO_REPO>
repowise init --yes --no-prose
Claude CodeTerminal
claude mcp add repowise -- repowise mcp '<ABSOLUTE_PATH_TO_REPO>'
Claude Desktopclaude_desktop_config.json
{
  "mcpServers": {
    "repowise": {
      "command": "repowise",
      "args": [
        "mcp",
        "<ABSOLUTE_PATH_TO_REPO>"
      ]
    }
  }
}
Cursor~/.cursor/mcp.json
{
  "mcpServers": {
    "repowise": {
      "command": "repowise",
      "args": [
        "mcp",
        "<ABSOLUTE_PATH_TO_REPO>"
      ]
    }
  }
}
VS Code.vscode/mcp.json
{
  "servers": {
    "repowise": {
      "type": "stdio",
      "command": "repowise",
      "args": [
        "mcp",
        "<ABSOLUTE_PATH_TO_REPO>"
      ]
    }
  }
}
Codex~/.codex/config.toml
[mcp_servers.repowise]
command = "repowise"
args = ["mcp", "<ABSOLUTE_PATH_TO_REPO>"]
Gemini CLITerminal
gemini mcp add --scope user repowise repowise -- mcp '<ABSOLUTE_PATH_TO_REPO>'

Settings 4

REPOWISE_HOST Optional: Host the HTTP or SSE transport binds to when --host is not given. Default 127.0.0.1.
REPOWISE_API_KEY secret Optional: Key that protects the HTTP server. Without it, binding to 0.0.0.0 leaves every tool unauthenticated and the server prints a warning.
REPOWISE_SKIP_EDITOR_SETUP Optional: Set to 1 so repowise init does not register the server with editors (scratch clones, worktrees, CI).
DO_NOT_TRACK Optional: Set to 1 to turn off the CLI's anonymous usage telemetry.

What it does

Repowise builds an index of a code repository and hands it to coding agents such as Claude Code or Cursor over MCP. The index holds the dependency graph, the git history, generated documentation, decision records, ownership, code-health scores and dead-code findings. An agent can then ask who calls a function, what a change might break or why a file looks the way it does, instead of opening file after file.

The code registers 18 tools. A single-repo server shows 10 of them by default (get_answer and get_change_risk among them), workspace mode adds list_repos, and 7 more are opt-in through --tools or the mcp.tools block in .repowise/config.yaml. There is also a lean profile of six tools.

You install the Python package, run repowise init in the repository to build the index, and then start the server with repowise mcp (stdio by default) or repowise serve, which also opens a web dashboard. The basic index needs no API key and calls no model. Written docs and answers come later from repowise generate with your own LLM key or a local Ollama model. Over HTTP the server listens on 127.0.0.1 port 7338 unless --host or REPOWISE_HOST says otherwise.

The CLI also ships repowise distill, which trims noisy test and build output before an agent reads it. The code is AGPL-3.0 and a hosted version runs at repowise.dev.

What it needs

RuntimePython 3.11+
Runs onmacOS, Windows, Linux
Also
  • Git
  • Node.js 20+ for the repowise serve dashboard only

Run repowise init in the repository once before starting the server, so there is an index in .repowise/ to answer from (repowise init --yes --no-prose skips the questions and the model). Model-written docs need an LLM key in .repowise/.env and a run of repowise generate. The dashboard downloads about 50 MB of UI on its first run.

Limits

  • Limit Answers come from the index, so the repository must be indexed with repowise init first and kept current with repowise update or the post-commit hook.
  • Not covered Only 10 tools are on by default. The other 7 must be turned on with --tools, --all or mcp.tools, and clients see a change only after a restart.
  • Not covered get_blast_radius, get_architecture and get_conformance work only in workspace mode and are ignored with a warning in a single repo.
  • Cost generate_refactoring_code and repowise generate call the LLM you configure, which can cost money. The keyless index does not.
  • Limit Each Claude config holds one global repowise entry, so indexing a second repo with --yes points it at the new repo.

Who it suits

Suits a developer who runs a coding agent on a large or long-lived repository and wants it to ask about callers, change risk, ownership and history from a prebuilt local index. It runs on your own machine and only reads code, apart from one opt-in tool that writes to its own index. It is less of a fit for a tiny repo the agent can read whole, or for a team that will not run an indexing step and keep it current. The hosted repowise.dev version covers teams that want nothing to run locally.

Tools 18

17 only read, 1 changes things.

get_answer
Answers a how, where or why question about the code in one call, citing the wiki and symbol index.
get_context
Triage card for files, modules or symbols: summary, signatures, line numbers, hotspots, owners and decisions.
get_symbol
Returns verified, line-numbered source for one symbol, a line range, or an omitted chunk.
search_codebase
Hybrid search over the symbol index, file paths and the generated wiki, with ranked hits.
get_risk
What history says about touching a file: hotspot score, bug-fix record, owners, co-change partners and dependents.
get_change_risk
Reviews a commit, a base..head range or uncommitted work and reports what got worse and which tests cover it.
get_why
Why code is shaped the way it is, from decision records, git archaeology and rationale comments.
get_overview
Architecture map of the repository: key modules, entry points, layers, code and git health.
get_health
Code-health scores and findings for defect risk, maintainability and performance, with a ranked fix-first queue.
get_dead_code
Unreachable files, unused exports, unused internals and zombie packages, tiered by confidence.
list_repos
Lists the repositories the server serves (on by default in workspace mode only).
get_dependency_path
Shortest dependency path between two files or modules (opt-in).
get_execution_flows
Top entry points with a call trace from each (opt-in).
generate_refactoring_code
Turns a refactoring plan into generated code and a unified diff using the configured LLM (opt-in).
set_finding_status changes
Records a triage verdict on a refactoring finding in the index (opt-in).
get_blast_radius
Workspace only: which services in other repositories a changed service can reach (opt-in).
get_architecture
Workspace only: whole-system structure, cyclic core, service roles and a structure score (opt-in).
get_conformance
Workspace only: cross-repo dependencies that break declared rules, plus circular service dependencies (opt-in).

Similar servers