Discover, evaluate, and intervene on circuits in transformer models.
One call takes a model + task to a discovered circuit, a 6-pillar faithfulness score, and a intervened HuggingFace checkpoint.
CircuitKit is a framework for mechanistic interpretability. Given a model and a task, it discovers the circuit driving that behaviour, evaluates how faithful it is, and lets you act on it (prune, quantize, edit, steer, or fine-tune), then export a reloadable HuggingFace checkpoint.
No GPU required for the quickstart — GPT-2 runs on CPU in a few minutes.
# CPU-only, no GPU needed:
pip install -e .
# For benchmarking, add: pip install -e ".[benchmarks]"from circuitkit import Pipeline
pipe = Pipeline("gpt2", task="ioi")
pipe.discover(algorithm="eap-ig", sparsity=0.3)
pipe.evaluate()
pipe.prune()
pipe.export("./checkpoint")Also works as a CLI and YAML config.
A circuit is the minimal set of attention heads and MLP layers in a transformer that drives a specific behaviour. Most interp tooling stops at "here is a subgraph with attribution scores." CircuitKit goes further: it prunes (or quantizes) the model down to that subgraph, exports a reloadable HuggingFace checkpoint, and measures how faithful the pruned model stays. Because the circuit is task-specific, this produces a task-specialized checkpoint — not a general-purpose compressed model.
| Capability | What it means |
|---|---|
| Discover | 13 algorithms across maturity tiers — 2 stable (EAP, EAP-IG), 2 experimental (ACDC, IBCircuit), 9 research |
| Evaluate | 6-pillar faithfulness: causal patching, ablation, stability, robustness, baselines, generalization |
| Prune | Structural weight pruning down to the circuit |
| Quantize | Circuit-aware mixed-precision quantization (3/4-bit + protect tiers) |
| Edit | ROME / MEMIT knowledge editing at circuit-identified components |
| Steer | Activation steering at inference (no retraining) |
| Fine-tune | Circuit-restricted LoRA — only circuit components update |
| Benchmark | lm-evaluation-harness integration for compressed checkpoints |
| Instead of stitching together… | …CircuitKit gives you |
|---|---|
| A separate repo per discovery algorithm, plus a pruning script and lm-eval-harness — wired together by hand | One Pipeline: discover → evaluate → prune → export → benchmark |
| One-off data formats per tool | Standard circuit artifact + HuggingFace checkpoint |
| GPT-2-only tooling | Llama-3, Gemma, Qwen — with GQA, RoPE, chat templates |
| One faithfulness score | 6-pillar evaluation suite |
| Getting Started | Install, quickstart, core concepts |
| User Guide | Pipeline, custom data, evaluation, selectors, tasks |
| Algorithms | EAP, ACDC, IBCircuit, CD-T — with stability tiers |
| Applications | Pruning, quantization, editing, steering, fine-tuning |
| Examples | Runnable scripts and notebooks (all CPU-friendly) |
| API Reference | Full API and CLI reference |
pip install -e ".[dev]"
pytest tests/ -q@software{circuitkit2026,
title = {CircuitKit: Circuit Discovery, Evaluation, and Application Toolkit
for Mechanistic Interpretability},
author = {Seth, Pratinav and Gosalia, Hem and Kasliwal, Aditya
and Sankarapu, Vinay Kumar},
year = {2026},
version = {1.0.0},
url = {https://github.com/Lexsi-Labs/CircuitKIT}
}Lexsi Labs Source Available License (LSAL) v1.1: free for research, evaluation, education, and audit; commercial use requires a separate license; responsible-use conditions apply. See LICENSE.md.