CircuitKit
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.
Quick start
# 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.
What is a circuit?
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.
What you can do
| 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 |
Why CircuitKit?
| 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 |
Next steps
| 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 |
Tests
pip install -e ".[dev]"
pytest tests/ -q
Citation
@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}
}
License
Lexsi Labs Source Available License (LSAL) v1.2: free for academic research and teaching on MIT-like terms; use by any organization requires written acknowledgement or permission (Section 1A); commercial use requires a separate license; responsible-use conditions apply. See LICENSE.md.
Metadata
Release files for circuitkit 0.1.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| circuitkit-0.1.5.tar.gz | 1.8 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| circuitkit-0.1.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 3.0 MB
Release files / circuitkit-0.1.5.tar.gz
| Download URL | circuitkit-0.1.5.tar.gz |
|---|---|
| Size | 1.8 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a1752f2e0d6235adb7a8a058d634e500eac95a3f7c457af74c901ab29362b00
|
|
BLAKE2b-256 checksum How to use checksums |
de5bbe93b9ee52a36ee6375feb31a48ce31dcd3c35bdbc17fc2563e5701ebb1f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|
Release files / circuitkit-0.1.5-py3-none-any.whl
| Download URL | circuitkit-0.1.5-py3-none-any.whl |
|---|---|
| Size | 1.3 MB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
b51a04c36c62d6ba5cdb7408624c402bf4e910f5c28517fdfbfec8e82b635aa3
|
|
BLAKE2b-256 checksum How to use checksums |
7cae0564057926f30ec0329db81a556fdfd59bb5aa6be562e1eff928e9aca0c9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.12.14
|