Cross-repo intelligence
What repowise learns from analyzing several repos together — co-change pairs, API contracts (HTTP / gRPC / topics), and package dependency mapping. Hidden coupling that single-repo tools can't find.
Workspaces unlock three classes of insight that simply don't exist
in single-repo mode. All three are pure analysis — no extra LLM
calls — and they're refreshed on every workspace update.
Co-change pairs
When backend/api/routes.py and frontend/src/api/client.ts always
change together, repowise records that as a high-strength co-change
pair. There's no import edge between them, but the git history is
unambiguous: they're coupled.
The result lives in .repowise-workspace/cross_repo_edges.json and
surfaces in two places:
- Workspace dashboard —
/w/<id>/co-changes, ranked by strength. get_contextandget_riskMCP tools — when you query a file, its cross-repo co-change partners come back alongside its in-repo ones.
API contract extraction
Repowise scans every workspace repo for:
- HTTP route handlers — Express, FastAPI, Spring, ASP.NET, Laravel, Gin / Echo / Chi (Go).
- gRPC service definitions —
.protofiles (services + RPCs). - Message topics — Kafka, RabbitMQ, Redis pub/sub, NATS publishers and subscribers.
It then matches providers with consumers across repos. If the
backend exposes POST /api/users and the frontend calls
fetch('/api/users', { method: 'POST' }), that's one contract link.
Visible at /w/<id>/contracts, filterable by type and repo.
Package dependency mapping
Repowise reads each repo's manifest:
package.json(npm / pnpm / yarn workspaces)pyproject.toml(Poetry, PEP 621)go.modpom.xml(Maven)Cargo.toml
When one repo depends on another as a published or workspace package, it shows up as an explicit dependency edge — and changes to the upstream package surface as risk signals on consumers.
Why it matters
The most expensive bugs come from implicit coupling — the kind where a refactor in one service silently breaks another because the connection lived in commit history rather than code. Repowise makes that connection explicit:
| Without workspaces | With workspaces |
|---|---|
Refactor backend/api/users.py | Refactor backend/api/users.py |
get_risk shows 4 in-repo dependents | get_risk shows 4 in-repo dependents + 2 cross-repo consumers via the POST /api/users contract + 1 frontend co-change partner |
| Ship; frontend breaks in staging | Realise the frontend client needs an update before merging |
The intelligence is automatic — no annotations, no manual contract declarations. If your code is consistent enough that humans can reason about it, repowise can extract the contracts.
Workspace setup
Index multiple related git repos as a single repowise workspace. Get cross-repo co-changes, API contract matching, and federated MCP queries on top of per-repo intelligence.
Workspace MCP mode
One MCP server, every repo. Pass repo="backend" to target a specific workspace repo, or repo="all" to federate a query across the entire workspace.