3 months of free inference for TypeScript polyrepo teams. Holds even after pricing lands. Apply to see if you qualify. Apply now

The context layer for polyrepo TypeScript teams

Carrick's index lets agents search code by what it does, validate against real types across service boundaries, and reuse functions instead of rewriting them. Agents query it over MCP, and CI checks every PR against the same index.

0.0 The workspace
1.0How it works

Every merge updates
your agent's context

When a PR lands, Carrick re-indexes your code by function intent, routes, and types, and serves it to your agent over MCP.

feature/update-orders → main
GitHub Actions · carrick / analyze

Cross-boundary type safety

The compiler's type safety stops at the repo 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.

2.0Type mapDocs
2.1Routing topology 2.2Middleware chains

Grep by meaning, not by name

Move beyond standard code searches. Carrick maps functions and closures to their underlying intent. Using vector embeddings, agents retrieve specific implementations via MCP calls, reducing redundant logic and API hallucinations.

3.0Semantic searchDocs
3.1Vector embeddings 3.2MCP tools

Catch contract drift in the pull request

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 functions duplicated across repos and dependency version conflicts.

4.0CI checksDocs
4.1Contract drift 4.2Duplicate functions 4.3Version conflicts
Quickstart, MCP tool reference, type coverage, and the PR check format. Explore the documentation
5.0Blog

Notes from the boundary

Benchmarking LLM Structured Outputs
Three Providers, Three Symmetric Ways They Break
The Agentic Bottleneck
Why We Need to Rethink CI
Why Coding Agents Are Getting More Expensive
Prompt Caching, Idle Sessions, and the Real Cost of a Million-Token Window
The Multi-Repository TypeScript Problem
Navigating Type Safety Across Service Boundaries
View all posts →
6.0FAQ

Common questions

Carrick runs as a GitHub Action and builds three layers per TypeScript 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 repo in the project, with exact cosine retrieval rather than 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 across the whole project, 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. A question costs the same handful of tokens whether the project has three repos or thirty.

During a scan your source is analyzed in flight, including by our LLM pipeline, and is never stored. What persists is the index: endpoint signatures, resolved types, dependency information, and one-line intent descriptions. Workspaces are fully isolated from each other, and all stored data is encrypted at rest.

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

Carrick is free while in pre-release. We'll be rolling out a generous free tier alongside paid plans in line with other CI tooling, and pre-release users will get early access to pricing details before anything changes.

Direct support from the team, usually same-day. During pre-release you're talking to the person who built Carrick, so bug reports and feature requests land without a queue.

One index of your whole system. Every service, type and contract, served to agents over MCP and checked in CI.

Get started now Apply for free inference Free during pre-release