npx githits@latest unless you are inside an MCP config that already uses the JSON command form.
This reference covers githits 0.23.0. Use npx githits@latest --version to check the version you are running.
Global options
Global options can appear before any command.Setup and configuration
npx githits@latest init
Authenticate and configure GitHits for supported AI coding tools.
npx githits@latest init
Authenticate and configure GitHits for supported AI coding tools.
init runs the browser login flow first, then auto-detects which supported tools are installed and writes MCP configuration for each one.init performs a guided MCP setup: alongside the MCP server config, it drops the four GitHits Agent Skills (githits-onboarding, githits-mcp, githits-code, and githits-package) and a managed instruction block (delimited by <!-- githits --> markers in files like AGENTS.md, CLAUDE.md, or GEMINI.md) into each selected tool. The skills and instructions help the agent decide when to reach for GitHits without bloating its base context. Rerunning guided init repairs any missing skill files. Interactive setup, --yes, and staged --install-agents all default to guided MCP unless --no-guidance is passed. Pass --no-guidance for a plain MCP-only install.After init completes, each detected tool is configured to start the GitHits MCP server automatically. No further manual configuration is needed.Flags--no-guidance is set.--detect-agents. Defaults to guided MCP unless --no-guidance is set.--detect-agents or --install-agents.8765). Useful when running init on a remote machine and forwarding the callback over SSH, for example ssh -N -L 8765:127.0.0.1:8765 user@remote-host.npx githits@latest uninstall
Remove GitHits MCP configuration and guidance from detected coding tools.
npx githits@latest uninstall
Remove GitHits MCP configuration and guidance from detected coding tools.
<!-- githits --> markers) is removed from files like AGENTS.md, CLAUDE.md, and GEMINI.md, and all four GitHits skills (githits-code, githits-mcp, githits-onboarding, and githits-package) are deleted from tool-native and shared skill folders, including stale copies left by earlier versions. Unrelated skills and directories are preserved. Stored credentials are preserved — only MCP config, guidance blocks, and skill files are removed.uninstall first asks whether to remove user-level or project-level configuration. githits init uninstall remains supported as a compatibility alias with the same flags and behavior.Flags--project for non-interactive project-level removal.npx githits@latest logout separately after uninstalling.npx githits@latest doctor
Diagnose GitHits configuration and authentication state.
npx githits@latest doctor
Diagnose GitHits configuration and authentication state.
Authentication
npx githits@latest login
Log in to your GitHits account with browser OAuth.
npx githits@latest login
Log in to your GitHits account with browser OAuth.
--port and an SSH tunnel.npx githits@latest logout
Remove stored OAuth credentials from this machine.
npx githits@latest logout
Remove stored OAuth credentials from this machine.
npx githits@latest auth status
Check the current authentication status and credential source.
npx githits@latest auth status
Check the current authentication status and credential source.
GITHITS_API_TOKEN is set in your environment, the command reports that source without reading local OAuth storage. If the stored token is expired, GitHits attempts to refresh it before reporting.npx githits@latest auth token
Print the current bearer token for scripts and command substitution.
npx githits@latest auth token
Print the current bearer token for scripts and command substitution.
- If
GITHITS_API_TOKENis set, its value is printed as-is without reading local OAuth storage. - Otherwise, the stored OAuth token is read from the system keychain. If it is expired, GitHits refreshes it on demand and prints the new access token.
GITHITS_API_TOKEN nor stored OAuth credentials), the command exits non-zero with a clear message instead of starting an interactive login. This keeps automated scripts predictable — run npx githits@latest login once on the machine before relying on auth token.Scripting exampleUse command substitution to hand the current session token off to another tool:npx githits@latest settings
View and update account preferences, privacy, terms, and limits.
npx githits@latest settings
View and update account preferences, privacy, terms, and limits.
settings show print the full canonical settings object: preferences (default language, license mode, blocked license IDs), privacy and terms (marketing emails, Terms of Service acceptance state), and account limits.get, set, and clear subcommands to read or update individual settings using their public CLI names. Every mutation sends exactly one selective PATCH, so unrelated settings are never touched.Supported keysdefault-language-id and blocked-license-ids can be cleared. clear default-language-id unsets the default; clear blocked-license-ids replaces the list with an empty list.npx githits@latest settings get
Read one writable account setting.
npx githits@latest settings get
Read one writable account setting.
npx githits@latest settings set
Update one account setting.
npx githits@latest settings set
Update one account setting.
default-language-id, license-mode, blocked-license-ids, or marketing-emails.blocked-license-ids accepts one or more UUIDs and replaces the stored list atomically; all other keys take exactly one value.npx githits@latest settings clear
Clear the default language or blocked license IDs.
npx githits@latest settings clear
Clear the default language or blocked license IDs.
clear default-language-id sends an explicit null; clear blocked-license-ids replaces the list with an empty list.default-language-id or blocked-license-ids. Other keys cannot be cleared and must be updated with settings set.npx githits@latest settings terms
Show Terms of Service acceptance status.
npx githits@latest settings terms
Show Terms of Service acceptance status.
{"terms_required": boolean} as JSON.npx githits@latest settings terms accept
Accept the current Terms of Service.
npx githits@latest settings terms accept
Accept the current Terms of Service.
--yes for non-interactive use.ghi-* API tokens set via GITHITS_API_TOKEN. When acceptance succeeds on an OAuth session, GitHits force-refreshes the stored session so subsequent requests carry the updated terms claim. Static API tokens are not refreshed; their acceptance state is re-evaluated server-side on the next request.If acceptance succeeds but the OAuth refresh fails, the command reports the saved acceptance and asks you to run npx githits@latest login --force before retrying other commands.Flagsaccepted, token_refreshed, and the updated settings object.MCP server
npx githits@latest mcp
Show manual MCP setup instructions or start stdio mode in non-TTY contexts.
npx githits@latest mcp
Show manual MCP setup instructions or start stdio mode in non-TTY contexts.
npx githits@latest mcp start
Start the GitHits MCP server over stdio for coding tool configs.
npx githits@latest mcp start
Start the GitHits MCP server over stdio for coding tool configs.
Code
npx githits@latest list
List files and documentation in a package, repository, or hosted site.
npx githits@latest list
List files and documentation in a package, repository, or hosted site.
githits list, added in 0.23.0. Package and repository targets list source files, including repository documentation. Use an explicit site: target for hosted documentation; a package inventory does not combine its source tree with its hosted docs.[paths...]. --recursive traverses matched directories. Text output has a source header followed by one path per line; directories end in /. Follow the header’s read guidance or each JSON entry’s read action. For site pages, preserve the emitted site: target and target-relative page path as separate arguments.Flagssource or doc. Repeat for multiple types. Not accepted for site targets.production, test, benchmark, example, generated, fixture, build, or vendor. Repeat for multiple intents. Not accepted for site targets.nextCursor in JSON. Replay the same target, paths, filters, recursion, and limit with the cursor unchanged.<nextCursor> with the exact value from the first response when hasMore is true. If the cursor is rejected, restart without --after and use the new result’s cursor.githits code files remains available for compatibility and is deprecated in its help. Its flags and output differ from list. githits docs list still browses a package’s combined hosted and repository documentation. MCP 0.24.0 replaces code_files and docs_list with list. Refresh local tool discovery after upgrading.npx githits@latest search
Search indexed package or repository code, docs, and symbols.
npx githits@latest search
Search indexed package or repository code, docs, and symbols.
searchRef and continuation guidance, pass it to npx githits@latest search-status. See search evidence and JSON migration for the 0.23.0 result fields.Flagsnpm:react@18.2.0, github:owner/repo@ref, and site:react.dev.docs, code, or symbol. Omit to let GitHits choose the best indexed sources.function, method, class, interface, module, or doc_section.callable, type, module, data, or documentation.production, test, benchmark, example, generated, fixture, build, or vendor.searchRef (0–120, default 30). When the response carries indexing-time estimates, GitHits automatically extends its follow-up wait up to the 120-second ceiling.npx githits@latest search-status
Poll a prior async indexed search by its searchRef.
npx githits@latest search-status
Poll a prior async indexed search by its searchRef.
npx githits@latest search using the searchRef returned in the initial response.npx githits@latest read
Read an indexed source file, code symbol, or documentation section.
npx githits@latest read
Read an indexed source file, code symbol, or documentation section.
<target> <path> for a source file, an emitted <site-target> <path> for a hosted page, or a docsReadTarget/page ID alone for a documentation page. The CLI writes complete content to stdout without the MCP surface’s 150/300-line cap so you can pipe it into other tools. Repository documentation resolves to indexed file content with snapshot identity; hosted documentation reads current indexed page content.list, with an optional --selector <heading-id>.Since githits 0.22.0, --selector reads an indexed code symbol or a documentation heading by its logical ID. A code symbol read returns the symbol’s definition range. An optional <path> restricts symbol lookup to that exact file. When a symbol selection is ambiguous, missing, or unsupported by the indexed snapshot, the CLI prints a typed AMBIGUOUS, NOT_FOUND, or SNAPSHOT_UNSUPPORTED outcome with candidates, suggestions, or an exact-path workaround. See the read tool for details.npx githits@latest code read and npx githits@latest docs read remain available as deprecated commands with their existing flags. Use read for site paths, compact symbol targets, and --selector.--repo-url. Rejected for documentation reads.120-200, 120-, or -200. You can also append :120-200 to the file path.createApplication or expressjson. The path is optional for code symbols. Do not combine with a docs URL fragment. With --repo-url, pass at most one positional path; the CLI rejects an extra path. Added in 0.22.0.--start/--end as an alternative to --lines.--start/--end as an alternative to --lines.npx githits@latest grep
Grep packages, repositories, and hosted documentation in one page.
npx githits@latest grep
Grep packages, repositories, and hosted documentation in one page.
site: hosted-documentation targets with githits grep, added in 0.24.0. GitHits returns one page of matches across all targets. Use it when you know the exact string or pattern and want source and docs evidence together. Matching runs against indexed content, not local files.code grep:- Patterns are 1–200 UTF-8 bytes and use RE2 regex. Pass
-Ffor literal matching. Unsupported or anchorless expressions fail instead of falling back to a literal search. - Matching is case-sensitive. Pass
-ito ignore case. - Output has zero context lines. Pass
-A,-B, or-Cto add context. - Repository targets search all indexed files, source and documentation.
--corpus and path filters. --corpus source therefore does not exclude a package’s hosted docs. Path flags and --corpus apply to every package and repository operand. site: operands accept only the target, so source flags with only site: operands fail. Put -- before a pattern that starts with a dash.Text output starts with a match summary and a single Sources: line naming the resolved scopes. Matches are grouped under numbered [1], [2] file or page headers. Each header begins with a copyable read locator you can pass to read with --lines. Match rows use : after the line number and context rows use -. Pass --json for the detailed lossless page, including read actions and byte coordinates.Flags-s to suppress errors. The last case flag wins.-A and -B override their side regardless of order.source, documentation, or all.-m, this is not a per-file limit.more available and the output ends with a ready-to-copy --cursor value. Rerun the same command with that flag to fetch the next page. A small --limit can fill the page before every scope is searched. GitHits then lists those scopes as not visited in this page, and the cursor continues into them. If the cursor expires, restart without --cursor.githits code grep remains available with its existing literal, case-insensitive defaults. MCP 0.25.0 replaces code_grep with grep, using the same matching defaults as top-level CLI grep. Refresh tool discovery and migrate arguments.npx githits@latest code grep
Legacy single-target source grep; prefer npx githits@latest grep.
npx githits@latest code grep
Legacy single-target source grep; prefer npx githits@latest grep.
githits grep, which searches multiple targets and hosted documentation in one page.--repo-url.npx githits@latest code files
Legacy file inventory; prefer npx githits@latest list.
npx githits@latest code files
Legacy file inventory; prefer npx githits@latest list.
list for new inventory workflows. This command keeps its existing flags and output for compatibility; it is not a flag-compatible alias for list.List the files included in an indexed package or repository.--repo-url.npx githits@latest code read
Deprecated alias for npx githits@latest read on a source file.
npx githits@latest code read
Deprecated alias for npx githits@latest read on a source file.
githits 0.17.0, this command is a deprecated alias for npx githits@latest read. Behavior and flags are unchanged; prefer the unified command in new scripts.--repo-url.120-200. You can also append :120-200 to the file path.npx githits@latest example
Find implementation examples from real open-source usage.
npx githits@latest example
Find implementation examples from real open-source usage.
--lang.strict (default), yolo, or custom.result and, when available, solution_id.Documentation
Usesearch --source docs to find documentation by topic, then list or read pages with these commands.
npx githits@latest docs list
List hosted and repo-backed documentation pages for a package.
npx githits@latest docs list
List hosted and repo-backed documentation pages for a package.
@version; Go module versions are accepted with or without the leading v.Each entry provides read guidance using the page’s docsReadTarget. JSON output retains the docsReadTarget, the stable pageId, and the provenance sourceUrl for every page. For a standalone hosted site, use list with a site: target.docs list response.npx githits@latest docs read
Deprecated alias for npx githits@latest read on a documentation page.
npx githits@latest docs read
Deprecated alias for npx githits@latest read on a documentation page.
docsReadTarget URL emitted by docs list and search results; historical page IDs remain accepted. URL targets resolve only already-indexed documentation and never enqueue crawling.Since githits 0.17.0, this command is a deprecated alias for npx githits@latest read. Behavior and flags are unchanged; prefer the unified command in new scripts.50-150.Package Intelligence
npx githits@latest pkg info
Inspect package metadata, popularity, downloads, and vulnerability status.
npx githits@latest pkg info
Inspect package metadata, popularity, downloads, and vulnerability status.
npx githits@latest pkg vulns
List known CVE and OSV advisories for a package or version.
npx githits@latest pkg vulns
List known CVE and OSV advisories for a package or version.
v (go:golang.org/x/crypto@0.17.0 or @v0.17.0).low, medium, high, or critical.affected (default), non_affecting, or all.--severity and --scope apply to direct and transitive rows.npx githits@latest pkg deps
Show direct dependencies and optional transitive dependency details.
npx githits@latest pkg deps
Show direct dependencies and optional transitive dependency details.
v.runtime, development, build, peer, optional, or all.--verbose for complete issue details.npx githits@latest pkg changelog
Retrieve release notes and changelog entries for a package.
npx githits@latest pkg changelog
Retrieve release notes and changelog entries for a package.
--repo-url, and --git-ref are rejected. Use the published package target. Results preserve backend and source order, which may interleave maintained release lines. Do not assume newest-first ordering.--to or latest. Range mode has no count cap and cannot be combined with --limit. Go module versions are accepted with or without the leading v.--from is set. Do not repeat a bound already supplied in the positional target.--from.--no-body.--verbose.npx githits@latest pkg upgrade-review
Compare package versions with security, changelog, and dependency evidence.
npx githits@latest pkg upgrade-review
Compare package versions with security, changelog, and dependency evidence.
.. as the range delimiter for the positional range and for repeatable --package entries. The legacy -> delimiter is rejected with guidance to switch to ... A positional range already contains its target, so combining it with --to or --package is rejected. Go module versions are accepted with or without the leading v.Flags.. range.<registry>:<name>@<current>..<target> format. Repeat the flag for multiple packages, up to 30 per batch.low, medium, high, or critical.Experimental (opt-in)
The commands in this section are disabled and hidden from help by default. Enable them by settingtools = true under the [experimental] section of config.toml. See Experimental tools for the full description, availability constraints, and issue-reporting guidance.
npx githits@latest research
Answer a question about a public package or repository with cited sources.
npx githits@latest research
Answer a question about a public package or repository with cited sources.
ask remains an alias. Requires the experimental opt-in described above.<threadId> with the UUID returned by an earlier answer. Do not combine an explicit target with --thread. If GitHits returns target candidates, repeat the question with a selected canonical target. A clarification exits successfully and has no answer or thread ID.Since 0.24.0, the CLI prints the complete Markdown that the Research API returns, including the answer, cited sources, Research run ID, thread ID, and follow-up guidance. Source citations are npx githits@latest read commands, such as npx githits@latest read --lines 100-140 -- pypi:fastapi@0.116.1 <path>.Flagsread commands (cli) or upstream links (url).display_markdown plus optional tool_call_id and thread_id. Target clarifications omit both IDs.npx githits@latest resolve
Rank canonical package, repository, or documentation-site targets for a fuzzy name.
npx githits@latest resolve
Rank canonical package, repository, or documentation-site targets for a fuzzy name.
npm:express, github:openai/codex, or site:docs.example.com/sdk. Use it before calling another GitHits command when the input is not already canonical. Already-canonical package, repository, and site targets are rejected locally with INVALID_ARGUMENT guidance; pass them directly to the next GitHits command instead.EXACT or HIGH confidence, and its latest-version malicious-content status is clear or not_applicable. Non-ambiguous MEDIUM or LOW results are labeled as unconfirmed ranked candidates. Ambiguous results preserve the existing choose-or-narrow guidance.Affected or uncertain malicious-content decisions render a red warning that links the relevant MAL-* advisories on OSV and suppress the normal next-command handoff. See malicious-content gating for the full status semantics.Flagspackage, repository, or site. Soft preference, not a filter.--query.{best?, ambiguous, ambiguousReason?, candidates, protectedMatches}. best is absent whenever there are no candidates.1 when there are no candidates because the command did not resolve a target.npx githits@latest code diff
Compare repository trees resolved from two package versions or refs.
npx githits@latest code diff
Compare repository trees resolved from two package versions or refs.
<from>..<to> range.--patch, --name-only, and --name-status.--patch view. No client default.-- to narrow paths without changing scope. Three-dot merge-base syntax and --git-ref are rejected.Empty authoritative diffs and caller-selected truncations exit 0 with warnings on stderr. Unexpectedly incomplete plain patches are suppressed and exit 1; the --stat, --name-only, --name-status, and JSON views preserve their structured partial evidence.