Gitnexus Cli

abhigyanpatwari/gitnexus/.claude/skills/gitnexus-cli

by abhigyanpatwariff922c0a3b0cNo license47K starsListed Oct 8, 2026Updated Oct 8, 2026Repository updated today

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"

Instructions onlySoftware Development
AI-generated overview

Runs GitNexus CLI commands to index a repository, check status, clean the index, generate a wiki, or list indexed repos.

What it does
This skill documents how to invoke GitNexus CLI commands through the project-local runner node .gitnexus/run.cjs. It covers analyze (building or refreshing a code knowledge graph and generating CLAUDE.md/AGENTS.md context files), status, clean, wiki (LLM-generated repository documentation), and list. It also describes index storage and retention environment variables, watch mode behavior, and troubleshooting steps.
When to use it
Use it when a user wants to index or re-index a repository, check whether an existing index is stale, remove an index, generate repository documentation, or see which repositories are registered. It is also relevant after major code changes or when the index is reported stale.
Requirements
Requires Node.js and the GitNexus package, invoked via a project-local runner or npx/bunx/pnpm dlx; no global install is strictly required. The wiki command needs an LLM provider, either an HTTP API key or an existing local CLI login (cursor, claude, codex, opencode, grok). Optional environment variables control storage path and content retention. Ships no scripts; instructions only.

GitNexus CLI Commands

Commands below use node .gitnexus/run.cjs <command> — the project-local runner gitnexus analyze drops next to the index. It auto-selects an available runner at call time (global gitnexus, else pnpm dlx, else bunx, else npx), so no package-manager assumption and no global install is required — including on a bun-only machine, which has no npm, npx or pnpm at all.

Not analyzed yet, or node .gitnexus/run.cjs reports Cannot find module (the gitignored runner is absent — e.g. a fresh clone or git clean)? (Re)generate it with npx gitnexus analyze from the project root, or bunx gitnexus@latest analyze on a bun-only machine. On npm 11.x, if npx crashes during install (node.target is null), install once with npm i -g gitnexus (then gitnexus analyze), or use bunx gitnexus@latest analyze, or pnpm --allow-build=@ladybugdb/core --allow-build=gitnexus --allow-build=tree-sitter dlx gitnexus@latest analyze. See #1939.

Commands

analyze — Build or refresh the index

bash
node .gitnexus/run.cjs 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.

FlagEffect
--watchKeep a Git repository index current with serialized refreshes
--debounce <ms>Watch quiet period before refresh (default: 300 ms)
--forceForce full re-index even if up to date
--embeddingsEnable embedding generation for semantic search (off by default)
--drop-embeddingsDrop existing embeddings on rebuild. By default, an analyze without --embeddings preserves them.
--pdgBuild the program-dependence layers used by explain and pdg_query (taint, CDG, and REACHING_DEF).
--spring-actuator <path>Import opt-in Spring Boot Actuator mappings, beans, conditions, configprops, and env snapshots. Forces a full rebuild; unsupported with --watch.
--asyncapi-spec <path>Read opt-in AsyncAPI 3.x documents (directory or single file) and mint Destination nodes from their operations. 2.x is refused, not mapped. Unsupported with --watch.

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 detects staleness after git commit and git merge and notifies the agent to run analyze — the hook does not run analyze itself, to avoid blocking the agent for up to 120s and risking KuzuDB corruption on timeout.

For Spring runtime enrichment, pass a JSON bundle, one endpoint JSON file, or a directory containing endpoint files. Route evidence is authoritative only when runtimeConfirmed === true; runtimeSource records provenance and may also accompany handler-conflict. Env/configprops values are never persisted.

Index storage and retention

Default location is <repo>/.gitnexus/. Override with environment variables (also documented in README):

EnvEffect
GITNEXUS_STORAGE_PATHOne complete external index directory. Wins if both storage vars are set.
GITNEXUS_STORAGE_ROOTAbsolute root; GitNexus creates an isolated <repo-basename>-<12-hex>/ slot per repository.
GITNEXUS_CONTENT_RETENTIONfull (default) keeps file text; symbol keeps snippets; none keeps the graph only.

list_repos, gitnexus://repo/{name}/context, and HTTP GET /api/repos / GET /api/repo expose storagePath, contentRetention, and sourceAvailable. HTTP /api/file and /api/grep return 410 unless retention is full. MCP include_content may still return symbol spans when retention is symbol.

Use node .gitnexus/run.cjs analyze --watch for a long-lived local Git repository. It performs an initial analysis, queues scanner-admitted file changes, and retries intact failed batches with bounded backoff. Watch refreshes update only the graph: they skip AGENTS.md / CLAUDE.md injection and standard skill installation, so run a one-shot analyze when those generated files need updating. Watch rejects one-shot or context-output flags including --force, embedding flags, --skills, --default-branch, --skip-agents-md, --skip-skills, --no-stats, --self-commit, --index-only, and --skip-git. It never pulls remotes. Scheduled remote clone/pull is a different command: gitnexus auto-sync. Bare gitnexus watch is reserved and does not start either job. Running MCP and serve processes periodically check for a published replacement and reopen it without a restart. MCP checks are throttled to once every five seconds, so a tool call before the next check can briefly use the previous index.

status — Check index freshness

bash
node .gitnexus/run.cjs 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

bash
node .gitnexus/run.cjs 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.

FlagEffect
--forceSkip confirmation prompt
--allClean all indexed repos, not just the current one

wiki — Generate documentation from the graph

bash
node .gitnexus/run.cjs wiki

Generates repository documentation from the knowledge graph using an LLM. HTTP providers require an API key (saved to ~/.gitnexus/config.json on first use). Local CLI providers (--provider cursor|claude|codex|opencode|grok) use your existing CLI login.

FlagEffect
--forceForce full regeneration, also required to re-generate an existing wiki in a different language
--provider <name>LLM provider: minimax, openai, openrouter, azure, custom, cursor, claude, codex, opencode, or grok (default: minimax). Local CLIs (cursor, claude, codex, opencode, grok) use your existing CLI login and skip --api-key.
--model <model>LLM model (default: MiniMax-M3)
--base-url <url>LLM API base URL
--api-key <key>LLM API key
--concurrency <n>Parallel LLM calls (default: 3)
--timeout <seconds>LLM request timeout in seconds (default: disabled)
--retries <n>Max LLM retry attempts per request (default: 3)
--lang <lang>Output language for generated documentation (e.g. english, chinese, spanish, japanese)
--gistPublish wiki as a public GitHub Gist

list — Show all indexed repos

bash
node .gitnexus/run.cjs 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: Wait for the next MCP tool call to reopen the published index; this normally takes no more than five seconds
  • Embeddings slow: Omit --embeddings (it's off by default) or set OPENAI_API_KEY for faster API-based embedding

Source and attribution

Source:abhigyanpatwari/gitnexusin.claude/skills/gitnexus-cliat commitff922c0

License: No license

Content belongs to its original authors. SourceWeft indexes it from a public repository.

Report or request removal

Gitnexus Cli · .claude/skills/gitnexus-cli Agent Skill | SourceWeft