Code Change Capture shows everything a change touches: the functions, tests, services and cross-service contracts it reaches. It shows them in your IDE, in your pipeline, and to the coding agents making the change.
Open source core. Runs on your machine, and your code stays there.
Runccc is built on ccc (Collateral Code Check), which is free and open source. Read the code, run it locally, and talk to us when your teams need more.
View colwill/cccAgents now write much of the code, which makes it harder to follow what changed. Runccc lays out each change before it lands.
See which pipeline tests run against your change, and which services need testing, before you push.
New or modified calls between services show up before you commit, even when the other side lives in another repository or language.
Flags language lint violations, security findings and vulnerable dependencies checked against the OSV advisory database.
Runccc scans your project into an in-memory code map that stays current as you work. Everything below reads from that same map.
Built on Tree-sitter. Every file's functions, return types, doc summaries, call graph and TODO/FIXME notes, refreshed seconds after each save.
A local MCP server gives Claude, Copilot, Cursor and other agents exact answers on definitions, references, dependencies and test targets.
Agents change code through Runccc's edit tools rather than raw shell writes. Each edit stays inside the project and is staged as a diff, applied all-or-nothing and revertible.
Drill down from the whole system to a single function's logic, following the C4 model. A timeline replays what an agent read and changed, one definition at a time.
The VS Code extension runs the analysis in the background for each workspace folder, over loopback only, with nothing to configure.
Run the same analysis in CI: changed services, dependency deltas, SAST and lockfile audits as JSON, with a non-zero exit on high-severity findings.
Agents read the map and also make their changes through it. A rename, a dead-code delete or a new function takes one previewed call, so the agent doesn't have to read and edit file by file.
.git
# AGENTS.md
This repo has a ccc map served over MCP at
http://127.0.0.1:6767/mcp. Use it as the
entry point for everything you do here.
- Navigation and questions go through the
ccc tools: find, references, dependencies,
test_targets, changes, ...
- ccc is the only writer: make every change
with edit_rename, edit_replace, edit_delete,
edit_insert or edit_text, then edit_apply.
{
"services": {
"auth": ["apps/auth/**"],
"billing": ["apps/billing/**", "libs/money/**"],
"gateway": ["apps/gateway/**"]
},
"relatives": {
// gateway calls auth over HTTP
"gateway": ["auth"]
},
"externals": {
"billing": { "repo": "acme/billing", "lang": "go" }
}
}
// gateway (rust)
fn checkout(cart: &[Item]) {
// ccc:calls grpc billing.v1.Charge
client.charge(total)
}
// billing (go), another repository
// ccc:serves grpc billing.v1.Charge
func Charge(account string, amount int) error { ... }
*Estimate: renaming a function used at 20 sites across 8 files of ~300 lines, by an agent that must read a file before editing it.
An agent's own tools read whole files to change a few lines. Runccc's edits act on the map, so agents need fewer turns and you can see each change before it's written.
| Task | Agent's own tools | Through Runccc | Saving |
|---|---|---|---|
| Rename a function used at 20 sites in 8 files | ≈ 33k tokens, 29 calls | ≈ 2.3k tokens, 3 calls | ~14x tokens, ~10x calls |
| Delete a dead 50-line function | ≈ 4.4k tokens, 3 calls | ≈ 1k tokens, 2 calls | ~4x tokens |
| Add a 25-line function beside an existing one | ≈ 4.2k tokens, 3 calls | ≈ 0.9k tokens, 2 calls | ~4.5x tokens |
| Change a few lines inside one function | read + edit | read + edit | about even |
Estimates assume 300-line source files at ~12 tokens a line, and an agent that must read a file before it edits it. Every call saved is also a model turn saved.
Languages
Install, map your project, and point your agent at it.
# Latest release (Linux / macOS / Windows)
curl -fsSL https://raw.githubusercontent.com/colwill/ccc/main/install.sh | bash
# or build from source
cargo build --release && ./target/release/ccc -- install
# Generate .ccc/map.json, then add your services to it
ccc init
# In-memory map, MCP server and insights UI
ccc run # http://127.0.0.1:6767/insights
ccc run --vis # ...and the visualiser at :6767/vis
# Claude Code
claude mcp add --transport http ccc http://127.0.0.1:6767/mcp
# GitHub Copilot
copilot mcp add --transport http ccc http://127.0.0.1:6767/mcp
# Then add the ccc block to AGENTS.md and work as usual
ccc changes --telemetry # services to test vs the base ref
ccc deps # dependency delta as JSON
ccc sast # non-zero exit on a high finding
ccc audit # lockfiles vs the OSV advisory db
ccc insights --html report.html
Talk to us about Runccc for your organisation: support, onboarding, and running it across many repositories and services.