| Project | Repos | Last scan | Scans · 30d | PR comments | |
|---|---|---|---|---|---|
| Ordersorders | 2 repos | 22h ago | 118 | on | Open → |
| Catalogcatalog | 2 repos | 1d ago | 96 | on | Open → |
| Fulfillmentfulfillment | 2 repos | 2d ago | 71 | on | Open → |
| Platformplatform | 1 repo | 4d ago | 26 | off | Open → |
Carrick builds one index of every service, type and contract in your TypeScript repos, from source, on every merge.
It resolves request and response types across service boundaries, maps every function to what it does, checks pull requests before they merge, and reaches you in your editor and in your agents.
npm install -g carrick carrick init The compiler's type safety stops at the service boundary. It can't see the service on the other side of a fetch. Carrick resolves request and response types across that boundary, mapping routing topology and middleware chains, so contract drift surfaces without a dedicated test suite.
Carrick ships with four skills for the most common agent failures — breaking a caller in another service, rebuilding existing code, trusting a stale copy of another service's type, and missing places in a codebase-wide change. Each skill gets its answer from the Carrick index.
The same index your agent uses runs in CI. When a producer and consumer drift apart, whichever protocol they speak, Carrick flags the mismatch in the PR before it merges. It also flags dependency version conflicts across services.
The same index, inside the editor. Go to definition jumps from an indexed call to its handler when the other service's code is on disk. A route's code lens lists the counterpart call sites held in the local index. Type disagreements appear as diagnostics on the indexed route or call.
18const res = await fetch("/orders/summary") 19const body = await res.json() 20const total: number = body.total
41router.get("/orders/summary", async (req, res) => { 42 res.json({ total: total.toFixed(2) })
total: string not assignable to numbercarrick(type_mismatch)[Ln 18, Col 1]total: string, read as numbercarrick(type_mismatch)[Ln 41, Col 1]Ships with the CLI. The extension is available from Visual Studio Marketplace and Open VSX. Other LSP clients can start the same server directly.
Every service, type and contract in one index, browsable in the dashboard and served to your agents over MCP.
1 contract risk and 1 dependency conflict across 7 services.
Indexed 34 endpoints and 20 cross-service calls.
19 contracts matched, 1 drifted, 0 calls unresolved.
Full analysis in the Carrick dashboard.