Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Clone and explore GitHub repositories locally for analysis. Use when the user wants to: (1) Analyze a GitHub repo's architecture or code structure (2) Search for patterns, functions, or code in a remote repo (3) Understand dependencies and entry points of a project (4) Find code hotspots, TODOs, or frequently changed files (5) Map the public API/exports of a library Triggers: "explore repo", "analyze this github repo", "search in repo", "clone and analyze", "what's in this repo", "show me the s
.claude/skills/nexxeln-repo-explorer/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 53% | 0% |
| case-08 | ✗→✓ | ▲ Improved | 26% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 158% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 52% | 0% |
Clone GitHub repositories locally and explore them with powerful search and analysis tools.
bash# 1. Clone/cache the repo ./scripts/repo-clone.sh owner/repo # 2. Explore structure ./scripts/repo-structure.sh owner/repo # 3. Search code ./scripts/repo-search.sh owner/repo "pattern"
All repos are cached at ~/.pi-repos/ for fast subsequent access.
| Command | Purpose | |---------|---------| | repo-clone.sh | Clone or update a GitHub repo | | repo-structure.sh | Show directory tree | | repo-search.sh | Search with ripgrep | | repo-file.sh | Read file contents | | repo-find.sh | Find files by pattern | | repo-deps.sh | Analyze dependencies | | repo-hotspots.sh | Find code hotspots | | repo-exports.sh | Map public API exports | | repo-ast.sh | AST structural search | | repo-cleanup.sh | Remove cached repos |
Clone or update a repository.
bashrepo-clone.sh <owner/repo or URL> [--refresh] # Examples repo-clone.sh vercel/next.js repo-clone.sh https://github.com/facebook/react repo-clone.sh git@github.com:owner/repo.git repo-clone.sh owner/repo --refresh # Force update
Show directory structure.
bashrepo-structure.sh <owner/repo> [--path <subpath>] [--depth <n>] # Examples repo-structure.sh vercel/next.js repo-structure.sh vercel/next.js --path packages/next/src --depth 3
Search code with ripgrep.
bashrepo-search.sh <owner/repo> <pattern> [--glob <glob>] [--context <n>] # Examples repo-search.sh vercel/next.js "useRouter" --glob "*.ts" repo-search.sh facebook/react "useState" --context 5 repo-search.sh owner/repo "TODO|FIXME"
Read file contents with line numbers.
bashrepo-file.sh <owner/repo> <path> [--start <line>] [--end <line>] # Examples repo-file.sh vercel/next.js package.json repo-file.sh owner/repo src/index.ts --start 1 --end 50
Find files by pattern.
bashrepo-find.sh <owner/repo> <pattern> [--type <f|d>] [--ext <ext>] # Examples repo-find.sh vercel/next.js "config" --type f repo-find.sh owner/repo "test" --ext ts
Analyze project dependencies.
bashrepo-deps.sh <owner/repo> # Supports: package.json, requirements.txt, pyproject.toml, # go.mod, Cargo.toml, Gemfile, build.gradle, pom.xml
Find code hotspots (churn, large files, TODOs).
bashrepo-hotspots.sh <owner/repo> # Shows: # - Most frequently changed files (git churn) # - Largest files by line count # - Files with most TODOs/FIXMEs # - Recent commits
Map public API and exports.
bashrepo-exports.sh <owner/repo> [--entry <path>] # Examples repo-exports.sh vercel/next.js repo-exports.sh owner/repo --entry src/lib/index.ts
AST-grep structural code search. See ast-patterns.md for pattern examples.
bashrepo-ast.sh <owner/repo> <pattern> [--lang <language>] # Examples repo-ast.sh owner/repo 'function $NAME($$ARGS) { $$BODY }' repo-ast.sh owner/repo 'console.log($$_)' --lang ts repo-ast.sh owner/repo 'useState($INIT)' --lang tsx
Remove cached repositories.
bashrepo-cleanup.sh <owner/repo> # Remove specific repo repo-cleanup.sh --all # Clear entire cache repo-cleanup.sh # List cached repos
bashrepo-clone.sh owner/repo repo-structure.sh owner/repo --depth 3 repo-deps.sh owner/repo repo-exports.sh owner/repo
bashrepo-clone.sh owner/repo repo-search.sh owner/repo "authentication" --glob "*.ts" repo-ast.sh owner/repo 'async function $NAME($$_) { $$_ }' --lang ts
bashrepo-clone.sh owner/repo repo-hotspots.sh owner/repo repo-search.sh owner/repo "TODO|FIXME|HACK|XXX"
bashrepo-clone.sh owner/repo repo-exports.sh owner/repo repo-file.sh owner/repo src/index.ts
Required:
git - For cloning repositoriesrg (ripgrep) - For fast code searchOptional (enhanced features):
fd - Better file finding (falls back to find)tree - Better directory structure (falls back to find)ast-grep / sg - Structural code searchjq - Better JSON parsing for dependenciesInstall on macOS:
bashbrew install ripgrep fd tree ast-grep jq
Install on Linux:
bash# Debian/Ubuntu apt install ripgrep fd-find tree jq cargo install ast-grep # or npm i -g @ast-grep/cli
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | pass→pass | 7,177 | 3,387 | -53% | 1 | 1 | 0% | 1,337 | 2,049 | +53% | 0 | 0 | — |
case-01 | fail→fail | 15,514 | 4,912 | -68% | 1 | 1 | 0% | 2,590 | 1,787 | -31% | 0 | 0 | — |
case-02 | fail→fail | 11,224 | 5,384 | -52% | 1 | 1 | 0% | 2,204 | 1,674 | -24% | 0 | 0 | — |
case-03 | fail→fail | 17,122 | 4,959 | -71% | 1 | 1 | 0% | 2,906 | 1,687 | -42% | 0 | 0 | — |
case-05 | pass→pass | 7,238 | 5,310 | -27% | 1 | 1 | 0% | 1,456 | 2,509 | +72% | 0 | 0 | — |
case-06 | pass→pass | 5,081 | 3,718 | -27% | 1 | 1 | 0% | 894 | 2,104 | +135% | 0 | 0 | — |
case-07 | fail→pass | 6,977 | 2,467 | -65% | 1 | 1 | 0% | 1,237 | 1,895 | +53% | 0 | 0 | — |
case-08 | fail→pass | 7,815 | 1,606 | -79% | 1 | 1 | 0% | 1,360 | 1,714 | +26% | 0 | 0 | — |
case-09 | fail→pass | 7,711 | 1,994 | -74% | 1 | 1 | 0% | 1,308 | 1,755 | +34% | 0 | 0 | — |
case-10 | fail→pass | 4,447 | 2,129 | -52% | 1 | 1 | 0% | 714 | 1,842 | +158% | 0 | 0 | — |
case-11 | fail→pass | 7,163 | 2,700 | -62% | 1 | 1 | 0% | 1,280 | 1,949 | +52% | 0 | 0 | — |
case-12 | fail→pass | 9,307 | 2,790 | -70% | 1 | 1 | 0% | 1,715 | 1,954 | +14% | 0 | 0 | — |
case-13 | fail→pass | 12,407 | 1,583 | -87% | 1 | 1 | 0% | 2,052 | 1,675 | -18% | 0 | 0 | — |
case-14 | fail→pass | 8,617 | 1,807 | -79% | 1 | 1 | 0% | 1,349 | 1,691 | +25% | 0 | 0 | — |
case-15 | fail→pass | 10,793 | 1,786 | -83% | 1 | 1 | 0% | 1,805 | 1,747 | -3% | 0 | 0 | — |
case-16 | fail→pass | 4,343 | 2,149 | -51% | 1 | 1 | 0% | 686 | 1,805 | +163% | 0 | 0 | — |
case-17 | fail→pass | 13,941 | 2,342 | -83% | 1 | 1 | 0% | 2,358 | 1,823 | -23% | 0 | 0 | — |
case-18 | fail→pass | 8,955 | 2,617 | -71% | 1 | 1 | 0% | 1,496 | 1,925 | +29% | 0 | 0 | — |
case-19 | fail→pass | 11,908 | 4,315 | -64% | 1 | 1 | 0% | 2,019 | 2,232 | +11% | 0 | 0 | — |
case-20 | fail→pass | 5,324 | 2,058 | -61% | 1 | 1 | 0% | 907 | 1,753 | +93% | 0 | 0 | — |
case-21 | pass→pass | 14,085 | 3,960 | -72% | 1 | 1 | 0% | 2,291 | 2,187 | -5% | 0 | 0 | — |
case-22 | fail→pass | 17,786 | 7,552 | -58% | 1 | 1 | 0% | 2,969 | 2,802 | -6% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 19 counted toward the lift figure. The other 3 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +68 percentage points is the difference between those two pass rates over the 19 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.