Now in Beta

The missing context layer
for AI coding agents.

Stop feeding entire repositories into LLM context windows. Carrick indexes your codebase by function intent, routing graphs, and compiler-grade type definitions, serving a clean semantic index to your agents over MCP.

Vector-indexed IntentsExpanded AST TypesModel Context Protocol (MCP)CI-Native
feature/update-orders → main
GitHub Actions · carrick / analyze

Concept-level retrieval for agents.

Don't rely on your agent guessing the exact string match for a utility function written three years ago. Carrick extracts function intents into a vector index across your entire organization, giving your agent exactly what it needs without reading source code.

carrick list_function_intents
user-service
Ask
Target underlying logic.
When an agent asks to "find where we verify webhook signatures" or "show me functions that dedupe users by email," it matches on behavior and intent rather than strict keyword identity. It finds the right code even if the function isn't named what you would expect.
Resolve
Pre-expanded, fully resolved types.
LLMs struggle to parse generic abstractions and implicit types. Carrick resolves the AST at scan time, presenting your agent with fully expanded schemas. Every field is mapped with precise provenance including file origin, exact line number, and whether it is Explicit, Implicit, or Unknown.
Map
Trace the entire request lifecycle.
Isolated files do not show the whole picture. Carrick builds a complete mount graph during static analysis. Your agent can instantly inspect the true runtime path of an endpoint to see its full middleware execution chain, routing logic, and cross-service HTTP dependencies.

Cut context overhead by 95%+.

Passing raw files into a prompt is an architectural anti-pattern. Agents waste massive token budgets and induce latency just trying to locate relevant logic via primitive grepping. By decoupling discovery from reading, Carrick provides the exact snippet and type definition via a tight MCP call. As your multi-repo codebase grows, your context consumption scales linearly instead of exponentially.

010k20k30k40k1 repo3 repos10 reposcodebase size →tokens per querygrepcarrick

Measured on semantic lookups across three TypeScript microservices, then extrapolated to a 50-source-file baseline. Keyword-friendly queries sit toward the low end of the range; the gap widens with codebase size and the number of repos searched.

See how your services connect.

Carrick maps your endpoints natively to expose the full path and middleware chain for every route. This generates a live architectural map across your entire organization that automatically regenerates on every pull request.

Catch contract drift in the pull request.

The exact same index your agent uses to understand the codebase also runs in your CI pipeline. When a producer API and a consumer client drift apart and break compatibility, Carrick flags the mismatch as a PR comment before it can merge.

github-actionsbot
🪢 CARRICK: API Analysis Results
Analyzed 14 endpoints and 8 API calls across 3 repositories.
Found 2 critical mismatches, 3 connectivity issues, 1 dependency conflict.
2 Critical: API Mismatches
Type Compatibility Issue: GET /users/:id/comments
Producer: GET /users/:id/comments → Response
Consumer: GET /users/:userId/comments → Response
missing properties from Comment[]: length, pop, push, concat, and 28 more.
Type Compatibility Issue: GET /api/comments
Producer: GET /api/comments → Response
Consumer: GET /api/comments → Response
missing properties from { id: string; order_id: string; }[]: length, pop, push, concat, and 28 more.
3 Connectivity Issues
Endpoints defined but never called, or called but never defined.
GET /api/orders/:id/items — called but not defined
DELETE /users/:id — called but not defined
GET /api/stats — defined but never called
1 Dependency Conflict
Major version differences that could cause breaking changes.
express
user-service: 5.1.0
order-service: 4.21.0
comment-service: 5.0.1

Notes from the boundary.

The Multi-Repository TypeScript Problem
Navigating Type Safety Across Service Boundaries

Common questions.

Carrick runs as a GitHub Action and builds three layers per repo: a mount graph (endpoints with their full paths and middleware chains, via SWC), expanded AST types (compiler-grade, fully resolved via ts-morph), and intent embeddings (one-to-two-sentence descriptions vectorised with Bedrock Titan v2). Your agent queries them via MCP — including semantic search across every function in the org, with exact cosine retrieval, not approximate.

Grep finds the name you guessed. Carrick matches on behavior and intent — so the agent finds the function that does what you described, even when it's named something unexpected in a sibling repo. Embeddings are exact-cosine at org scale, so misses don't get silently filtered.

Your agent reads one structured response per question instead of grepping and reading source. A 'what does this endpoint return' query returns the resolved type, not the file it lives in. A 'find functions that do X' query returns ranked matches, not a directory tree to crawl. Context usage scales linearly with your codebase instead of exponentially.

Carrick stores only API metadata — endpoint signatures, resolved types, and dependency information. It never stores or transmits your source code. Your organisation's data is isolated using unique API keys, and all storage is encrypted at rest.

Currently JavaScript and TypeScript. Once the core tooling is refined, we plan to expand to other major languages.

We'll be rolling out a generous free tier alongside paid plans in line with other CI tooling. Beta users will get early access to pricing details.

Beta members get access to a private Discord server with dedicated channels for support, feature requests, and discussion. Invitations are sent to approved beta users via email.

Stop shipping blind.

Join the beta. Be the first to give your AI agents a map of your system.