githits 0.5.4 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -6,7 +6,7 @@
6
6
  },
7
7
  "metadata": {
8
8
  "description": "GitHits plugins for Claude Code - code examples from global open source",
9
- "version": "0.5.4"
9
+ "version": "0.6.1"
10
10
  },
11
11
  "plugins": [
12
12
  {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "githits",
3
- "version": "0.5.4",
3
+ "version": "0.6.1",
4
4
  "description": "Code examples from global open source for developers and AI assistants",
5
5
  "author": {
6
6
  "name": "GitHits"
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "githits",
3
- "version": "0.5.4",
3
+ "version": "0.6.1",
4
4
  "description": "Code examples from global open source for developers and AI assistants",
5
5
  "author": {
6
6
  "name": "GitHits"
package/README.md CHANGED
@@ -1,273 +1,345 @@
1
- # githits
2
-
3
- Code examples from global open source for developers and AI assistants.
4
-
5
- GitHits gives your AI coding assistant access to verified, canonical code examples drawn from all of open source. When your assistant is stuck, needs an up-to-date API example, or encounters a vague error, GitHits helps it find a working solution in seconds.
1
+ <p align="center">
2
+ <img src="./github-githits.png" alt="GitHits" width="100%" />
3
+ </p>
4
+
5
+ <h1 align="center">GitHits CLI</h1>
6
+
7
+ <p align="center">
8
+ Version-aware open-source context for agentic software development.
9
+ </p>
10
+
11
+ <p align="center">
12
+ <a href="https://www.npmjs.com/package/githits"><img alt="npm version" src="https://img.shields.io/npm/v/githits.svg"></a>
13
+ <a href="https://www.npmjs.com/package/githits"><img alt="npm downloads" src="https://img.shields.io/npm/dm/githits.svg"></a>
14
+ <a href="https://github.com/githits-com/githits-cli/actions/workflows/main.yml"><img alt="Main" src="https://github.com/githits-com/githits-cli/actions/workflows/main.yml/badge.svg"></a>
15
+ <a href="https://github.com/githits-com/githits-cli/blob/main/LICENSE"><img alt="License: Apache-2.0" src="https://img.shields.io/badge/license-Apache--2.0-blue.svg"></a>
16
+ <a href="https://www.npmjs.com/package/githits"><img alt="Node" src="https://img.shields.io/node/v/githits.svg"></a>
17
+ <a href="https://modelcontextprotocol.io/"><img alt="MCP" src="https://img.shields.io/badge/MCP-enabled-5C4EE5"></a>
18
+ <a href="https://skills.sh/githits-com/githits-cli"><img alt="skills.sh" src="https://skills.sh/b/githits-com/githits-cli"></a>
19
+ </p>
20
+
21
+ <p align="center">
22
+ <a href="https://githits.com">Website</a> ·
23
+ <a href="https://docs.githits.com">Documentation</a> ·
24
+ <a href="https://github.com/githits-com/githits-cli/issues">Issues</a>
25
+ </p>
26
+
27
+ GitHits connects AI coding agents to public open-source evidence across the
28
+ full software development lifecycle: discovery, planning, research,
29
+ implementation, debugging, and maintenance.
30
+
31
+ The CLI runs a local [MCP](https://modelcontextprotocol.io/) server that your
32
+ coding tool starts on demand. Agents can then search indexed package and
33
+ repository source, read exact files and documentation pages, inspect package
34
+ health, compare dependency upgrades, and find source-cited examples from real
35
+ open-source projects when model knowledge and local repository context are not
36
+ enough.
6
37
 
7
38
  ## Quick Start
8
39
 
9
40
  ```sh
10
- npx githits init
41
+ npx githits@latest init
11
42
  ```
12
43
 
13
- `init` walks you through setup: choose the local MCP server or Agent Skills, detect your coding tools, sign in, and connect everything to GitHits.
14
-
15
- Supported tools: Claude Code, Cursor, Windsurf, VS Code / Copilot, Cline, Claude Desktop, Codex CLI, Pi, Gemini CLI, Google Antigravity, OpenCode, and Hermes Agent.
44
+ `init` signs you in, detects supported coding tools, and configures the local
45
+ GitHits MCP server for the tools you select.
16
46
 
17
- If you are using a tool that is not listed above, use the manual MCP setup instructions near the end of this README.
47
+ Automatic setup currently supports Claude Code, Cursor, Windsurf,
48
+ VS Code / Copilot, Cline, Claude Desktop, Codex CLI, Pi, Gemini CLI,
49
+ Google Antigravity, OpenCode, Hermes Agent, Zed, Junie, Qwen Code,
50
+ Kiro, Kilo Code, Factory Droid, and Amazon Q CLI.
18
51
 
19
- ### Plugin Installation (Open Plugin standard)
52
+ After setup, open your coding agent and work normally. Many agents call GitHits
53
+ when they need source-backed context. If your agent starts guessing, prompt it
54
+ directly:
20
55
 
21
- The npm package includes Open Plugin-compatible files:
56
+ ```text
57
+ Use GitHits Code Navigation to inspect npm:express. Find how middleware
58
+ errors are handled, read the relevant source, and explain the fix before
59
+ editing code.
60
+ ```
22
61
 
23
- - `.plugin/plugin.json` (vendor-neutral, used by Cursor/Codex/Copilot-compatible hosts)
24
- - `.claude-plugin/plugin.json` (Claude Code compatibility)
25
- - `.claude-plugin/marketplace.json` (Claude Code marketplace catalog)
26
- - `.mcp.json` (Open Plugin MCP server config for plugin hosts)
27
- - `plugins/claude/` (Claude plugin runtime payload: `.claude-plugin/plugin.json`, `.mcp.json`, `skills/`, and `commands/`)
62
+ ## What GitHits Adds
28
63
 
29
- Root `.claude-plugin/marketplace.json` provides marketplace metadata. Claude Code
30
- loads the plugin runtime payload from `plugins/claude/`.
64
+ GitHits is designed for the point where an agent needs evidence from the
65
+ broader open-source ecosystem, not just model memory or local repo context:
31
66
 
32
- **Claude Code Plugin (Marketplace)**
67
+ | Capability | MCP tools | CLI commands |
68
+ |---|---|---|
69
+ | Code examples | `get_example`, `search_language` | `githits example`, `githits languages` |
70
+ | Code navigation | `search`, `search_status`, `code_files`, `code_read`, `code_grep` | `githits search`, `githits search-status`, `githits code ...` |
71
+ | Documentation access | `docs_list`, `docs_read` | `githits docs ...` |
72
+ | Package inspection | `pkg_info`, `pkg_vulns`, `pkg_deps`, `pkg_changelog`, `pkg_upgrade_review` | `githits pkg ...` |
73
+ | Feedback | `feedback` | `githits feedback` |
33
74
 
34
- Install from terminal (recommended):
75
+ Use GitHits when your agent needs to:
35
76
 
36
- ```sh
37
- claude plugin marketplace add githits-com/githits-cli
38
- claude plugin install githits@githits-plugins
39
- ```
77
+ - discover, plan, or research how OSS projects solve a vague issue or unfamiliar error
78
+ - find broad prior art or rare needle-in-the-haystack examples across repositories
79
+ - inspect source, tests, symbols, or docs for a known package or repository
80
+ - verify how a dependency actually behaves before changing code
81
+ - debug stack traces that point into third-party code
82
+ - review package health, licenses, vulnerabilities, dependencies, and changelogs
83
+ - compare dependency upgrades using factual evidence
40
84
 
41
- This is preferred over in-session install so the plugin is loaded cleanly on
42
- next `claude` launch.
85
+ ## Examples
43
86
 
44
- Alternative (inside Claude input):
87
+ Find prior art across open source:
45
88
 
46
89
  ```sh
47
- /plugin marketplace add githits-com/githits-cli
48
- /plugin install githits@githits-plugins
90
+ npx githits@latest example "HTTP retries with exponential backoff in Python"
49
91
  ```
50
92
 
51
- If installed inside a running Claude session, reload/restart Claude if the
52
- plugin is not immediately available.
53
-
54
- For unpublished/local testing of this repository:
93
+ Search indexed code, docs, and symbols for a dependency:
55
94
 
56
95
  ```sh
57
- claude plugin marketplace add "$PWD"
58
- claude plugin install githits@githits-plugins
96
+ npx githits@latest search "router middleware" --in npm:express
97
+ npx githits@latest search '"body parser" OR multer' --in npm:express --source docs
98
+ npx githits@latest search "debounce" --in npm:lodash --source symbol
59
99
  ```
60
100
 
61
- By default, the plugin starts MCP with `npx -y githits@latest mcp start` so installs track the latest published GitHits CLI.
62
-
63
- For unpublished/local testing, install from your local repository path and verify behavior in your host before publishing.
64
-
65
- In Claude Code, run `/mcp` and confirm `plugin:githits:githits` is listed for the plugin path.
66
-
67
- Note: when running Claude in this repository directory, root `.mcp.json` can also register `githits` for project-level MCP. For plugin-only attribution during testing, run Claude from a different working directory.
68
-
69
- **Gemini CLI extension install**
101
+ Read and grep dependency source without cloning:
70
102
 
71
103
  ```sh
72
- gemini extensions install https://github.com/githits-com/githits-cli
104
+ npx githits@latest code files npm:express lib
105
+ npx githits@latest code read npm:express lib/router/index.js --lines 120-200
106
+ npx githits@latest code grep npm:express "router.use" lib --regex
73
107
  ```
74
108
 
75
- For plugin-based hosts, install from npm/GitHub using your agent's plugin workflow and enable plugin `githits`.
76
-
77
- ### Agent Coverage
109
+ Inspect package health and upgrade evidence:
78
110
 
79
- - **Cursor**: reads vendor-neutral `.plugin/` for Open Plugin installs
80
- - **Claude Code**: supports `.claude-plugin/` and Open Plugin components
81
- - **Codex**: supports Open Plugin components
82
- - **GitHub Copilot**: supports Open Plugin components
83
- - **Gemini CLI**: supports `gemini-extension.json` and `GEMINI.md`
84
-
85
- That's it. Your assistant now has GitHits example-search tools and indexed dependency/package inspection tools.
111
+ ```sh
112
+ npx githits@latest pkg info npm:express
113
+ npx githits@latest pkg vulns npm:lodash@4.17.20 --severity high
114
+ npx githits@latest pkg deps npm:express@4.18.2 --depth 2
115
+ npx githits@latest pkg changelog npm:express --from 4.18.2 --to 5.2.1
116
+ npx githits@latest pkg upgrade-review npm:zod@4.3.6 --to 4.4.3
117
+ ```
86
118
 
87
- ## How It Works
119
+ Browse and read package documentation:
88
120
 
89
- GitHits runs as an [MCP server](https://modelcontextprotocol.io/) that your AI assistant connects to over stdio.
121
+ ```sh
122
+ npx githits@latest docs list npm:express
123
+ npx githits@latest docs read <page-id> --lines 20-80
124
+ ```
90
125
 
91
- Core tools available in every authenticated session:
126
+ ## Supported Sources
92
127
 
93
- | Tool | Purpose |
94
- |---|---|
95
- | `get_example` | Find canonical code examples by describing what you need in natural language |
96
- | `search_language` | Look up supported programming language names |
97
- | `feedback` | Submit result or session feedback to improve future quality |
128
+ GitHits works with package and repository targets such as:
98
129
 
99
- The assistant decides when to call these tools on its own — typically when it's stuck, needs a working example for an unfamiliar API, or encounters an error it can't resolve from its training data alone.
130
+ - package specs: `npm:react`, `npm:react@18.2.0`, `pypi:requests`, `crates:serde`
131
+ - GitHub repos: `https://github.com/expressjs/express`, `github:expressjs/express#main`
100
132
 
101
- GitHits also exposes indexed package/source tools:
133
+ Package inspection supports npm, PyPI, Hex, Crates, NuGet, Maven, Packagist,
134
+ RubyGems, Go, Swift, vcpkg, and Zig. Advisory data is unavailable for vcpkg and
135
+ Zig; dependency graph support varies by registry.
102
136
 
103
- | Tool | Purpose |
104
- |---|---|
105
- | `search` | Unified indexed search across dependency/repository code, docs, and symbols |
106
- | `search_status` | Follow up a prior indexed `search` by `searchRef` |
107
- | `docs_list` | Browse mixed package documentation pages |
108
- | `docs_read` | Read a documentation page by page ID |
109
- | `pkg_info` | Quick package triage: version, license, repository popularity, downloads, vulnerabilities |
110
- | `pkg_vulns` | CVE / OSV advisories for a package or specific version, with filter echo and compact/verbose modes |
111
- | `pkg_deps` | Direct dependencies, dependency groups, and optional transitive graph |
112
- | `pkg_changelog` | Release notes / changelog entries for a package or GitHub repo, with compact timeline and body-preview controls |
113
- | `pkg_upgrade_review` | Evidence for dependency upgrades, including vulnerabilities, changelog entries, deprecation metadata, peer changes, and dependency changes |
114
- | `code_files` | Discover what files a dependency or repo contains |
115
- | `code_read` | Read a dependency file by path |
116
- | `code_grep` | Deterministic text grep across indexed dependency or repo files |
137
+ ## License Filtering
117
138
 
118
- ### License Filtering
139
+ Code example search supports license filtering:
119
140
 
120
- Search results respect license filtering by default, excluding copyleft-licensed code. Three modes are available:
141
+ - `strict` is the default and filters repositories with copyleft or undeclared licenses
142
+ - `custom` uses your account blocklist configured at [githits.com](https://githits.com)
143
+ - `yolo` disables license filtering
121
144
 
122
- - **strict** (default) — excludes copyleft licenses
123
- - **yolo** includes all licenses, no filtering
124
- - **custom** — uses your custom blocklist configured at [githits.com](https://githits.com)
145
+ ```sh
146
+ npx githits@latest example "async file reading" --lang python --license strict
147
+ ```
125
148
 
126
149
  ## Authentication
127
150
 
128
- GitHits requires authentication. There are two options:
129
-
130
- ### Browser Login (recommended)
151
+ Normal local setup is handled by:
131
152
 
132
153
  ```sh
133
- npx githits login
154
+ npx githits@latest init
134
155
  ```
135
156
 
136
- Opens your browser for secure OAuth authentication. Tokens are stored in the system keychain by default and refreshed automatically on next use. If a refresh fails (for example, after an extended idle period), run `githits login` again.
157
+ For manual login:
137
158
 
138
- Useful flags:
159
+ ```sh
160
+ npx githits@latest login
161
+ ```
139
162
 
140
- - `--no-browser` prints a URL instead of opening a browser (for SSH sessions, CI, or headless environments)
141
- - `--force` re-authenticate even if already logged in
142
- - `--port <port>` — use a specific port for the local callback server
163
+ Browser OAuth is recommended for local development. Credentials are stored in
164
+ the system keychain by default and refreshed automatically. Useful flags:
143
165
 
144
- ### API Token
166
+ - `init --no-browser` or `login --no-browser` prints a login URL for SSH, containers, or headless sessions
167
+ - `login --force` re-authenticates even if you are already logged in
168
+ - `login --port <port>` uses a specific local callback port
145
169
 
146
- For CI or environments where browser login isn't practical, set an environment variable:
170
+ For CI or non-interactive environments, use an API token:
147
171
 
148
172
  ```sh
149
173
  export GITHITS_API_TOKEN=ghi-your-token-here
150
174
  ```
151
175
 
152
- ### Keychain Prompts and File Storage
176
+ Inspect auth and runtime state with:
153
177
 
154
- GitHits uses the system keychain by default because OAuth credentials include a refresh token. On macOS this means Keychain Access; on Windows it means Credential Manager; on Linux it means the available Secret Service or keyring backend.
178
+ ```sh
179
+ npx githits@latest auth status
180
+ npx githits@latest doctor
181
+ ```
155
182
 
156
- If macOS shows a prompt such as "githits wants to access ... in your keychain", choose **Always Allow** when you trust the installed `githits` CLI. GitHits cannot customize that operating-system prompt with extra explanation; it is generated by macOS.
183
+ See the [authentication docs](https://docs.githits.com/authentication) for
184
+ keychain behavior, file storage mode, CI setup, and troubleshooting.
157
185
 
158
- GitHits also writes a small non-secret metadata file so recent startup checks do not need to read the keychain. The keychain is only read when GitHits actually needs the token, for example during a tool call, token refresh, `githits auth status`, or a login check after metadata is stale or expired.
186
+ ## Manual MCP Setup
159
187
 
160
- If your agent keeps showing keychain prompts even after **Always Allow**, switch OAuth storage to file mode:
188
+ If your coding tool is not auto-configured by `init`, add GitHits to its MCP
189
+ configuration manually:
161
190
 
162
- ```toml
163
- # macOS/Linux: ~/.config/githits/config.toml, or $XDG_CONFIG_HOME/githits/config.toml
164
- # Windows: %APPDATA%\githits\config.toml
165
- [auth]
166
- storage = "file"
191
+ ```json
192
+ {
193
+ "mcpServers": {
194
+ "githits": {
195
+ "command": "npx",
196
+ "args": ["-y", "githits@latest", "mcp", "start"]
197
+ }
198
+ }
199
+ }
167
200
  ```
168
201
 
169
- The config directory may be empty until you create `config.toml` or GitHits writes auth metadata. Older macOS installs may have used `~/Library/Application Support/githits`; GitHits still reads that location for migration, but new auth config and file storage use `~/.config/githits`.
202
+ Your tool runs this command over stdio. No background daemon or global install
203
+ is required.
170
204
 
171
- You can also opt in for one process:
205
+ To remove configuration written by `init`:
172
206
 
173
207
  ```sh
174
- GITHITS_AUTH_STORAGE=file githits login --force
208
+ npx githits@latest init uninstall
175
209
  ```
176
210
 
177
- File mode stores OAuth credentials as JSON files under the GitHits config directory. The files are written with private permissions where the platform supports it, but they are not encrypted. Any process that can read files as your operating-system user may be able to read the tokens.
211
+ This removes GitHits MCP configuration and preserves stored credentials. Run
212
+ `npx githits@latest logout` separately to remove credentials.
178
213
 
179
- Use file mode only on machines where you trust local user-account access. For CI and automation, prefer `GITHITS_API_TOKEN` instead of browser OAuth.
214
+ ## Project Setup
180
215
 
181
- To inspect the current auth setup, run:
216
+ For project-local MCP config, run:
182
217
 
183
218
  ```sh
184
- githits auth status
219
+ npx githits@latest init --project
185
220
  ```
186
221
 
187
- For redacted environment/configuration diagnostics when GitHits behaves
188
- differently across terminals or agents, run `githits doctor` or
189
- `githits doctor --json`.
222
+ Project setup is available only for tools with verified project-local MCP
223
+ support. Project config contains no secrets, but it may be committed like other
224
+ tooling configuration, so review generated files before adding them to source
225
+ control.
190
226
 
191
- ## Commands
227
+ Agent-safe non-interactive setup uses staged discovery and explicit install:
192
228
 
229
+ ```sh
230
+ npx githits@latest init --detect-agents --json
231
+ npx githits@latest init --install-agents cursor,codex
193
232
  ```
194
- githits init Authenticate and configure your coding tools with GitHits MCP
195
- githits init uninstall Remove GitHits MCP configuration from your coding tools
196
- githits login Authenticate with your GitHits account (also runs as part of init)
197
- githits logout Remove stored credentials
198
- githits mcp Show setup instructions in a terminal; starts MCP server when piped
199
- githits mcp start Always start MCP server (for use in MCP config files)
200
- githits auth status Show current authentication status
201
- githits doctor Print redacted diagnostics for config/auth troubleshooting
202
- githits example Get canonical code examples from global open source
203
- githits languages List or filter supported language names
204
- githits feedback Send feedback on a result, command, or session
233
+
234
+ ## Plugin and Extension Packaging
235
+
236
+ The npm package also includes the existing plugin and extension assets used by
237
+ compatible hosts:
238
+
239
+ - `.plugin/plugin.json`
240
+ - `.claude-plugin/plugin.json`
241
+ - `.claude-plugin/marketplace.json`
242
+ - `.mcp.json`
243
+ - `gemini-extension.json`
244
+ - `GEMINI.md`
245
+ - `plugins/claude/`
246
+ - `skills/`
247
+ - `commands/`
248
+
249
+ For Claude Code marketplace installs:
250
+
251
+ ```sh
252
+ claude plugin marketplace add githits-com/githits-cli
253
+ claude plugin install githits@githits-plugins
205
254
  ```
206
255
 
207
- These indexed package/source commands are also available:
256
+ For Gemini CLI extension installs:
208
257
 
258
+ ```sh
259
+ gemini extensions install https://github.com/githits-com/githits-cli
209
260
  ```
210
- githits search ... Unified indexed dependency/repository search
211
- githits search-status Follow up a prior indexed search
212
- githits pkg ... Package metadata: overview, advisories, deps, changelog, upgrade reviews
213
- githits docs ... Package documentation: browse pages and read content
214
- githits code ... Dependency source inspection: search, files, read, grep
261
+
262
+ ## Command Reference
263
+
264
+ ```text
265
+ githits init Connect GitHits to your coding agents
266
+ githits init uninstall Remove GitHits MCP configuration
267
+ githits login Sign in to your GitHits account
268
+ githits logout Remove stored credentials
269
+ githits mcp Show setup instructions or start the local MCP server
270
+ githits mcp start Always start the local MCP server over stdio
271
+ githits example Find real-world implementations from open source
272
+ githits languages List or filter supported programming languages
273
+ githits feedback Submit feedback about GitHits results
274
+ githits doctor Diagnose configuration and auth state
275
+ githits search Explore repository code, dependencies, docs, and symbols
276
+ githits search-status Check the status of a previous indexed search
277
+ githits code List, read, and grep indexed dependency source
278
+ githits pkg Inspect package metadata, vulnerabilities, deps, and changelogs
279
+ githits docs Browse and read package documentation
280
+ githits auth Manage authentication
281
+ githits auth status Show authentication status
215
282
  ```
216
283
 
284
+ Full CLI reference: https://docs.githits.com/cli/commands
285
+
217
286
  ## Environment Variables
218
287
 
288
+ Most users do not need environment variables. These are the common overrides for
289
+ CI, auth storage, and local diagnostics:
290
+
219
291
  | Variable | Purpose | Default |
220
292
  |---|---|---|
221
- | `GITHITS_API_TOKEN` | API token for authentication | |
222
- | `GITHITS_AUTH_STORAGE` | Override OAuth storage mode (`keychain` or `file`) | `keychain` |
223
- | `GITHITS_MCP_URL` | Override MCP server URL | `https://mcp.githits.com` |
224
- | `GITHITS_API_URL` | Override REST API URL | `https://api.githits.com` |
225
- | `GITHITS_CODE_NAV_URL` | Override package/source service URL | `https://pkgseer.dev` |
226
- | `GITHITS_TELEMETRY` | Emit end-of-run timing spans to stderr for local profiling | — |
227
- | `GITHITS_DISABLE_UPDATE_CHECK` | Disable npm latest-version update notices | — |
228
-
229
- ## Manual Setup
230
-
231
- If your tool is not in the supported `githits init` list, configure GitHits manually.
293
+ | `GITHITS_API_TOKEN` | API token for authentication | unset |
294
+ | `GITHITS_AUTH_STORAGE` | Override OAuth storage mode: `keychain` or `file` | `keychain` |
295
+ | `GITHITS_DISABLE_UPDATE_CHECK` | Disable npm latest-version update notices | unset |
296
+ | `GITHITS_TELEMETRY` | Emit local timing diagnostics to stderr | unset |
232
297
 
233
- The same MCP server command exposes both the core example-search tools and the indexed package/source inspection tools. No separate install is required.
298
+ Full reference: https://docs.githits.com/cli/environment-variables
234
299
 
235
- Use this MCP server command in your tool's MCP config (the host/agent runs this command):
300
+ ## Source Layout
236
301
 
237
- ```sh
238
- npx -y githits@latest mcp start
239
- ```
302
+ This repository contains the GitHits CLI and reusable MCP package:
240
303
 
241
- A typical MCP config looks like this (check your tool's docs for exact schema/key names):
304
+ - `src/` - CLI commands, local auth, setup flows, and local MCP stdio startup
305
+ - `packages/mcp/` - public `@githits/mcp` package for transport-neutral MCP
306
+ server APIs, tool registration, instructions, and smoke-test helpers
307
+ - `packages/core-internal/` - shared workspace implementation used by the CLI
308
+ and MCP package
309
+ - `docs/` - implementation notes and contributor guidelines
310
+ - `scripts/` - package validation, smoke tests, and development utilities
242
311
 
243
- ```json
244
- {
245
- "mcpServers": {
246
- "githits": {
247
- "command": "npx",
248
- "args": ["-y", "githits@latest", "mcp", "start"]
249
- }
250
- }
251
- }
252
- ```
312
+ ## Development
253
313
 
254
- If you'd like another tool to be included in `githits init` for auto-configuration, open an issue or PR.
314
+ Requirements:
255
315
 
256
- To undo automatic setup, run `githits init uninstall`. It removes only GitHits MCP/plugin configuration and preserves stored credentials; use `githits logout` separately to remove credentials.
316
+ - Node.js `^20.12.0 || >=22.13.0`
317
+ - Bun
257
318
 
258
- ## Development
319
+ Common commands:
259
320
 
260
321
  ```sh
322
+ bun install
323
+ bun run dev --help
324
+ bun test
325
+ bun run typecheck
261
326
  bun run build
262
- npm link
263
- githits --version
264
327
  ```
265
328
 
266
- After the initial `npm link`, only `bun run build` is needed for subsequent changes.
329
+ When changing MCP tools, CLI commands, shared formatters, auth/error envelopes,
330
+ or MCP/CLI parity behavior, also run the relevant smoke suites:
267
331
 
268
- ## Requirements
332
+ ```sh
333
+ bun run smoke:mcp
334
+ bun run smoke:cli
335
+ ```
336
+
337
+ When changing MCP instructions, tool descriptions, or agent-facing behavior,
338
+ use the targeted agent evals described in `eval/agentic/README.md`:
269
339
 
270
- - Node.js 20.12+, 22.13+, or later
340
+ ```sh
341
+ bun run agent:e2e
342
+ ```
271
343
 
272
344
  ## License
273
345