https://github.com/grippado/claude-atlas
Scan, map, and visualize your Claude Code setup: agents, skills, slash commands, and CLAUDE.md β all in one interactive graph.
https://github.com/grippado/claude-atlas
anthropic claude-code cli developer-tools graph-visualization python
Last synced: 2 months ago
JSON representation
Scan, map, and visualize your Claude Code setup: agents, skills, slash commands, and CLAUDE.md β all in one interactive graph.
- Host: GitHub
- URL: https://github.com/grippado/claude-atlas
- Owner: grippado
- License: mit
- Created: 2026-04-21T15:13:20.000Z (2 months ago)
- Default Branch: main
- Last Pushed: 2026-04-21T15:33:54.000Z (2 months ago)
- Last Synced: 2026-04-21T17:37:06.197Z (2 months ago)
- Topics: anthropic, claude-code, cli, developer-tools, graph-visualization, python
- Language: Python
- Size: 28.3 KB
- Stars: 0
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# πΊοΈ Claude Atlas
> Scan, map, and visualize your Claude Code setup: agents, skills, slash commands, and `CLAUDE.md` memory files β all in one interactive graph.
**Languages:** [English](README.md) Β· [PortuguΓͺs π§π·](README.pt-BR.md)
---
## Why
As you accumulate agents, skills, slash commands, and `CLAUDE.md` files across global (`~/.claude/`) and project scopes, it becomes surprisingly hard to answer:
- Which skills are near-duplicates of each other?
- Which project-scoped agent silently overrides a global one?
- Which artifacts share the same triggers and will compete for activation?
- Which `CLAUDE.md` is actually in effect for this repo?
**claude-atlas** scans your machine, builds a relationship graph, and renders a standalone HTML report so you can see all of it at once.
## Install
```bash
uv tool install claude-atlas
# or from source:
uv pip install -e .
```
Python 3.11+ required.
## Quick start
```bash
# Scan ~/.claude + current dir, output to ./claude-atlas.html
claude-atlas scan
# Scan specific trees
claude-atlas scan --paths ~/work/arco --paths ~/work/flagbridge -o /tmp/atlas.html
# Auto-discover nested .claude/ dirs under several trees
claude-atlas scan --auto-discover ~/work --auto-discover ~/personal
# Refine duplicate candidates with Claude (needs ANTHROPIC_API_KEY)
claude-atlas scan --semantic
```
Open the resulting HTML in a browser. Click nodes to inspect, switch to the **Issues** tab to see what needs attention.
## What it detects
| Edge kind | Meaning |
|-----------------------|-------------------------------------------------------------------------|
| `duplicate_exact` | Identical SHA-256 body hash β one is a literal copy of the other. |
| `duplicate_semantic` | Jaccard similarity β₯ 0.60 (suspicious) / β₯ 0.85 (probable). |
| `overrides` | Project artifact shadows a same-named global one. |
| `trigger_collision` | Two artifacts share β₯ 2 distinctive trigger tokens. |
| `references` | One artifact's body mentions another's name. |
| `contains` | Memory file groups artifacts in the same `.claude/` root (UI only). |
Thresholds live in `src/claude_atlas/analysis/graph.py` if you want to tune them.
## Optional: LLM-as-judge
With `--semantic`, pairs flagged by Jaccard are sent to the Anthropic API for a structured verdict (`duplicate` / `overlap` / `distinct`). Pairs the model calls "distinct" are dropped from the graph; the rest get the model's reasoning attached to the edge detail.
Requires `ANTHROPIC_API_KEY` and `uv pip install "claude-atlas[semantic]"` (adds the `anthropic` SDK).
## Commands
```text
claude-atlas scan full scan + report
claude-atlas report alias for scan with default flags
claude-atlas version print version
```
Run any command with `--help` for full flags.
## CI / pre-commit usage
Use `claude-atlas check` for lint-style health checks in scripts and CI:
```bash
# Default: fail on any HIGH-severity issue
claude-atlas check
# Pre-commit hook: only fail on duplicates and overrides
claude-atlas check --max-severity high --quiet
# CI with GitHub Actions annotations
claude-atlas check --format github
# Get everything as JSON for custom tooling
claude-atlas check --top 0 --format json
```
Exit codes: `0` (clean), `1` (issues found at threshold), `2` (error).
## Project layout
```
src/claude_atlas/
βββ cli.py # typer CLI
βββ models.py # dataclasses + enums
βββ scanner/
β βββ discovery.py # find .claude/ dirs and CLAUDE.md files
β βββ parsers.py # frontmatter β Artifact
βββ analysis/
β βββ graph.py # heuristics β Edge list
β βββ llm_judge.py # optional Anthropic refinement
βββ report/
βββ renderer.py # ScanResult β HTML
βββ templates/report.mustache
```
## Roadmap
Claude-atlas is in active evolution. See the full [ROADMAP.md](ROADMAP.md) for principles, released versions, and what's planned.
**Next up: v0.4.0 β HTML triage dashboard.** The graph view becomes a secondary tab; the primary view becomes a card-based triage dashboard with health score, side-by-side previews, and per-issue actions. Follow progress in [#1](https://github.com/grippado/claude-atlas/issues/1).
**Considering:** interactive fix-prompt export (`claude-atlas fix`), scan history diffing, pre-commit hook templates, editor status-bar plugin.
**Won't do:** automatic editing/deletion of artifacts, cloud sync, accounts, or support for non-Claude-Code AI tools. See the [anti-roadmap](ROADMAP.md#anti-roadmap-wont-do) for why.
## Contributing
PRs welcome. Before opening one:
```bash
uv sync --all-extras
uv run pytest
uv run ruff check .
uv run mypy
```
## License
MIT β see [LICENSE](LICENSE).