{"adoption": {"forks": 343, "observed_at": "2026-08-28T04:07:28.770073+00:00", "stars": 2897}, "canonical_url": "https://ross.abutalabs.com/products/circuit-tracer", "card": {"archived": false, "artifact_type": "library", "description": null, "domain": ["machine-learning", "deep-learning", "large-language-models", "artificial-intelligence", "developer-tools"], "enriched": true, "function": ["machine-learning", "deep-learning", "data-visualization", "developer-tools"], "health_score": 99, "homepage": null, "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["decoderesearch/circuit-tracer"], "name": "decoderesearch/circuit-tracer", "platform": ["python", "cli"], "pushed_at": "2026-08-21T03:05:53+00:00", "repo": "decoderesearch/circuit-tracer", "stars": 2897, "tags": ["mechanistic-interpretability", "attribution-graphs", "circuit-tracing", "transcoders", "sparse-autoencoders", "llm-interpretability", "feature-visualization", "gpu"], "topics": [], "urls": [], "use_cases": ["trace circuits in a language model with attribution graphs", "visualize and annotate attribution graphs for LLM interpretability research", "intervene on transcoder features and observe model output changes", "study how features influence logits in transformer models", "run circuit tracing on Gemma-2 with limited GPU resources", "explore attribution graphs interactively via Neuronpedia"], "what_it_is": "A Python library for circuit tracing and attribution graphs in language model interpretability, based on cross-layer MLP transcoders. It computes attribution graphs, visualizes and annotates them, and enables interventions on transcoder features.", "when_to_avoid": ["you need general-purpose sparse autoencoder training rather than circuit analysis", "you have no GPU access and cannot use hosted tools", "you need interpretability tooling for non-transformer architectures"], "when_to_choose": ["you need to compute direct effects between transcoder features, error nodes, and tokens", "you want to replicate attribution graph methods from Anthropic's circuit tracing papers", "you need feature-level interventions on a transformer model", "you want interactive visualization of interpretability graphs"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/circuit-tracer", "repo": "decoderesearch/circuit-tracer", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:07:28.770073+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T07:35:14.197461+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "ff55b37d692f1105b1b99652cd3573c74e3894cbafeb9b60493fca0389fef3f3", "fetched_at": "2026-08-28T04:07:28.770073+00:00", "kind": "readme", "missing": false, "url": "https://github.com/decoderesearch/circuit-tracer"}, {"content_hash": "fe12e9ff0d91f43c1c56e16b91ed2c01047925b9836d3e83093348590b30c58d", "fetched_at": "2026-08-29T09:50:01.114784+00:00", "kind": "registry_pypi", "missing": false, "url": "https://pypi.org/pypi/circuit-tracer/json"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 33, "rhythm": 81}, "computed_at": "2026-09-03T02:20:16.233290+00:00", "flags": [], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 462, "days_push": 12, "days_rel": 46, "gap_med": 40, "n_releases_24m": 8}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}