GitNexus/gitnexus/skills/gitnexus-cli.md
Linus Beckhaus 9465c52ab9 feat(hooks): auto-reindex after git commit with embeddings preservation
feat(hooks): auto-reindex after git commit with embeddings preservation

Add PostToolUse hook that re-runs `gitnexus analyze` after git commit/merge,
automatically detecting and preserving embeddings via meta.json stats.

- Persist embeddings count in meta.json stats.embeddings field
- Add PostToolUse handler to both hook variants (cjs + plugin)
- Register PostToolUse hook in setup.ts for Claude Code
- Add "Keeping the Index Fresh" section to generated CLAUDE.md/AGENTS.md

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

revert running gitanalyz

fix: address code review findings for auto-reindex hooks

- Fix hook timeout units: seconds not milliseconds (8000->8, 120000->120)
- Remove unused execFileSync import from gitnexus-hook.cjs
- Remove unused `output` variable in PostToolUse handler
- Remove spurious template interpolation in ai-context.ts

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

refactor: clean up gitnexus-hook.cjs per review feedback

- Hoist spawnSync import to module scope
- Add shell: isWin for npx fallback on Windows
- Extract findGitNexusDir helper, reuse in both PreToolUse and PostToolUse

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

fix(hooks): stricter git regex, proper spawnSync error handling, embeddings in recovery commands

- Tighten commit/merge regex to not match git merge-base (require \s|$ after subcommand)
- Replace try/catch with child.error/signal inspection for spawnSync timeout detection
- Include --embeddings in manual recovery commands when embeddings were detected
- Extract emitPostToolContext helper to reduce duplication
- Apply all fixes to both hook variants (cjs + plugin)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

fix(hooks): single-launch CLI resolution, guard PreToolUse stderr on failure

- Plugin: detect gitnexus binary via which/where once, then run exactly once
  (prevents double execution when binary exists but command fails)
- Both hooks: only forward augment stderr as additionalContext when exit code
  is 0, preventing CLI error output from leaking into agent context

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

docs: update README and CLI skill for PostToolUse auto-reindex

- README: editor support table now shows PreToolUse + PostToolUse
- README: description mentions auto-reindex after commits
- gitnexus-cli skill: document auto-reindex in "When to run" section

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-06 23:07:17 +01:00

3.4 KiB

name description
gitnexus-cli Use when the user needs to run GitNexus CLI commands like analyze/index a repo, check status, clean the index, generate a wiki, or list indexed repos. Examples: "Index this repo", "Reanalyze the codebase", "Generate a wiki"

GitNexus CLI Commands

All commands work via npx — no global install required.

Commands

analyze — Build or refresh the index

npx gitnexus analyze

Run from the project root. This parses all source files, builds the knowledge graph, writes it to .gitnexus/, and generates CLAUDE.md / AGENTS.md context files.

Flag Effect
--force Force full re-index even if up to date
--embeddings Enable embedding generation for semantic search (off by default)

When to run: First time in a project, after major code changes, or when gitnexus://repo/{name}/context reports the index is stale. In Claude Code, a PostToolUse hook runs analyze automatically after git commit and git merge, preserving embeddings if previously generated.

status — Check index freshness

npx gitnexus status

Shows whether the current repo has a GitNexus index, when it was last updated, and symbol/relationship counts. Use this to check if re-indexing is needed.

clean — Delete the index

npx gitnexus clean

Deletes the .gitnexus/ directory and unregisters the repo from the global registry. Use before re-indexing if the index is corrupt or after removing GitNexus from a project.

Flag Effect
--force Skip confirmation prompt
--all Clean all indexed repos, not just the current one

wiki — Generate documentation from the graph

npx gitnexus wiki

Generates repository documentation from the knowledge graph using an LLM. Requires an API key (saved to ~/.gitnexus/config.json on first use).

Flag Effect
--force Force full regeneration
--model <model> LLM model (default: minimax/minimax-m2.5)
--base-url <url> LLM API base URL
--api-key <key> LLM API key
--concurrency <n> Parallel LLM calls (default: 3)
--gist Publish wiki as a public GitHub Gist

list — Show all indexed repos

npx gitnexus list

Lists all repositories registered in ~/.gitnexus/registry.json. The MCP list_repos tool provides the same information.

After Indexing

  1. Read gitnexus://repo/{name}/context to verify the index loaded
  2. Use the other GitNexus skills (exploring, debugging, impact-analysis, refactoring) for your task

Troubleshooting

  • "Not inside a git repository": Run from a directory inside a git repo
  • Index is stale after re-analyzing: Restart Claude Code to reload the MCP server
  • Embeddings slow: Omit --embeddings (it's off by default) or set OPENAI_API_KEY for faster API-based embedding