{"id":49139086,"url":"https://github.com/grippado/claude-atlas","last_synced_at":"2026-04-22T00:00:17.953Z","repository":{"id":352901385,"uuid":"1217126552","full_name":"grippado/claude-atlas","owner":"grippado","description":"Scan, map, and visualize your Claude Code setup: agents, skills, slash commands, and CLAUDE.md — all in one interactive graph.","archived":false,"fork":false,"pushed_at":"2026-04-21T15:33:54.000Z","size":29,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-04-21T17:37:06.197Z","etag":null,"topics":["anthropic","claude-code","cli","developer-tools","graph-visualization","python"],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/grippado.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-04-21T15:13:20.000Z","updated_at":"2026-04-21T15:34:40.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/grippado/claude-atlas","commit_stats":null,"previous_names":["grippado/claude-atlas"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/grippado/claude-atlas","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grippado%2Fclaude-atlas","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grippado%2Fclaude-atlas/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grippado%2Fclaude-atlas/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grippado%2Fclaude-atlas/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/grippado","download_url":"https://codeload.github.com/grippado/claude-atlas/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/grippado%2Fclaude-atlas/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32115216,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-21T11:25:29.218Z","status":"ssl_error","status_checked_at":"2026-04-21T11:25:28.499Z","response_time":128,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["anthropic","claude-code","cli","developer-tools","graph-visualization","python"],"created_at":"2026-04-22T00:00:16.318Z","updated_at":"2026-04-22T00:00:17.948Z","avatar_url":"https://github.com/grippado.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🗺️ Claude Atlas\n\n\u003e Scan, map, and visualize your Claude Code setup: agents, skills, slash commands, and `CLAUDE.md` memory files — all in one interactive graph.\n\n**Languages:** [English](README.md) · [Português 🇧🇷](README.pt-BR.md)\n\n---\n\n## Why\n\nAs you accumulate agents, skills, slash commands, and `CLAUDE.md` files across global (`~/.claude/`) and project scopes, it becomes surprisingly hard to answer:\n\n- Which skills are near-duplicates of each other?\n- Which project-scoped agent silently overrides a global one?\n- Which artifacts share the same triggers and will compete for activation?\n- Which `CLAUDE.md` is actually in effect for this repo?\n\n**claude-atlas** scans your machine, builds a relationship graph, and renders a standalone HTML report so you can see all of it at once.\n\n## Install\n\n```bash\nuv tool install claude-atlas\n# or from source:\nuv pip install -e .\n```\n\nPython 3.11+ required.\n\n## Quick start\n\n```bash\n# Scan ~/.claude + current dir, output to ./claude-atlas.html\nclaude-atlas scan\n\n# Scan specific trees\nclaude-atlas scan --paths ~/work/arco --paths ~/work/flagbridge -o /tmp/atlas.html\n\n# Auto-discover nested .claude/ dirs under several trees\nclaude-atlas scan --auto-discover ~/work --auto-discover ~/personal\n\n# Refine duplicate candidates with Claude (needs ANTHROPIC_API_KEY)\nclaude-atlas scan --semantic\n```\n\nOpen the resulting HTML in a browser. Click nodes to inspect, switch to the **Issues** tab to see what needs attention.\n\n## What it detects\n\n| Edge kind             | Meaning                                                                 |\n|-----------------------|-------------------------------------------------------------------------|\n| `duplicate_exact`     | Identical SHA-256 body hash — one is a literal copy of the other.       |\n| `duplicate_semantic`  | Jaccard similarity ≥ 0.60 (suspicious) / ≥ 0.85 (probable).             |\n| `overrides`           | Project artifact shadows a same-named global one.                        |\n| `trigger_collision`   | Two artifacts share ≥ 2 distinctive trigger tokens.                      |\n| `references`          | One artifact's body mentions another's name.                             |\n| `contains`            | Memory file groups artifacts in the same `.claude/` root (UI only).      |\n\nThresholds live in `src/claude_atlas/analysis/graph.py` if you want to tune them.\n\n## Optional: LLM-as-judge\n\nWith `--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.\n\nRequires `ANTHROPIC_API_KEY` and `uv pip install \"claude-atlas[semantic]\"` (adds the `anthropic` SDK).\n\n## Commands\n\n```text\nclaude-atlas scan        full scan + report\nclaude-atlas report      alias for scan with default flags\nclaude-atlas version     print version\n```\n\nRun any command with `--help` for full flags.\n\n## CI / pre-commit usage\n\nUse `claude-atlas check` for lint-style health checks in scripts and CI:\n\n```bash\n# Default: fail on any HIGH-severity issue\nclaude-atlas check\n\n# Pre-commit hook: only fail on duplicates and overrides\nclaude-atlas check --max-severity high --quiet\n\n# CI with GitHub Actions annotations\nclaude-atlas check --format github\n\n# Get everything as JSON for custom tooling\nclaude-atlas check --top 0 --format json\n```\n\nExit codes: `0` (clean), `1` (issues found at threshold), `2` (error).\n\n## Project layout\n\n```\nsrc/claude_atlas/\n├── cli.py                 # typer CLI\n├── models.py              # dataclasses + enums\n├── scanner/\n│   ├── discovery.py       # find .claude/ dirs and CLAUDE.md files\n│   └── parsers.py         # frontmatter → Artifact\n├── analysis/\n│   ├── graph.py           # heuristics → Edge list\n│   └── llm_judge.py       # optional Anthropic refinement\n└── report/\n    ├── renderer.py        # ScanResult → HTML\n    └── templates/report.mustache\n```\n\n## Roadmap\n\nClaude-atlas is in active evolution. See the full [ROADMAP.md](ROADMAP.md) for principles, released versions, and what's planned.\n\n**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).\n\n**Considering:** interactive fix-prompt export (`claude-atlas fix`), scan history diffing, pre-commit hook templates, editor status-bar plugin.\n\n**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.\n\n## Contributing\n\nPRs welcome. Before opening one:\n\n```bash\nuv sync --all-extras\nuv run pytest\nuv run ruff check .\nuv run mypy\n```\n\n## License\n\nMIT — see [LICENSE](LICENSE).\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrippado%2Fclaude-atlas","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgrippado%2Fclaude-atlas","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgrippado%2Fclaude-atlas/lists"}