hermes-git 0.2.5 → 0.3.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.
Files changed (3) hide show
  1. package/README.md +188 -493
  2. package/dist/index.js +13880 -975
  3. package/package.json +13 -9
package/README.md CHANGED
@@ -4,716 +4,411 @@
4
4
 
5
5
  **Intent-driven Git, guided by AI**
6
6
 
7
+ [![npm version](https://img.shields.io/npm/v/hermes-git.svg)](https://www.npmjs.com/package/hermes-git)
7
8
  [![License: MIT](https://img.shields.io/badge/License-MIT-blue.svg)](https://opensource.org/licenses/MIT)
8
9
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.3-blue)](https://www.typescriptlang.org/)
9
- [![Powered by GitHub Copilot](https://img.shields.io/badge/Powered%20by-GitHub%20Copilot-purple)](https://github.com/github/copilot-cli)
10
10
 
11
11
  *Turn natural language intent into safe, explainable Git operations*
12
12
 
13
- [Installation](#installation) • [Commands](#commands) • [Examples](#examples) • [Documentation](#documentation)
13
+ [Installation](#installation) • [Quick Start](#quick-start) • [Commands](#commands) • [Configuration](#configuration)
14
14
 
15
15
  </div>
16
16
 
17
17
  ---
18
18
 
19
- ## Overview
19
+ ## What it does
20
20
 
21
- Hermes is an AI-powered CLI that helps developers navigate Git safely and confidently. Instead of memorizing commands or untangling conflicts blindly, you tell Hermes what you want to do—and it guides you through the safest path.
21
+ Hermes is a CLI that translates what you want to do in Git into the correct, safe sequence of commands and explains every step.
22
22
 
23
- Built with [GitHub Copilot CLI](https://github.com/github/copilot-cli), Hermes transforms natural language intent into explainable, guard-railed Git operations directly in your terminal.
24
-
25
- ### 🚀 What Makes Hermes Stand Out
26
-
27
- - **⏱️ Quantified Efficiency:** Track exactly how much time you save with built-in analytics
28
- - **🧠 Context-Aware:** Learns your project patterns and enforces team conventions
29
- - **📊 Built-in Analytics:** See your productivity gains, command usage, and Git efficiency improvements
30
- - **🔄 Workflow Shortcuts:** Turn 50+ commands into 5 with intelligent macros
31
- - **🛡️ Safety First:** Auto-backup, pre-flight checks, and explainable operations
32
- - **👥 Team-Ready:** Share config and workflows across your entire team
33
-
34
- ### Why Hermes?
35
-
36
- Git is powerful, but unforgiving. Even experienced developers regularly:
37
-
38
- - 🔀 Rebase the wrong branch
39
- - ⚠️ Panic during merge conflicts
40
- - 🤔 Forget what state their repository is in
41
- - 🌳 Avoid worktrees because they feel dangerous
42
-
43
- **Hermes doesn't replace Git.** It stands beside you, explaining where you are, what's risky, and what your safest next move is.
44
-
45
- > Think of Hermes as your guide at every crossing—the messenger between you and Git's complexity.
46
-
47
- ---
48
-
49
- ## Core Principles
23
+ ```bash
24
+ hermes start "add oauth login"
25
+ # Picks the right base branch
26
+ # → Creates feature/add-oauth-login
27
+ # Switches and sets upstream
50
28
 
51
- ### 🧠 Intent First
52
- Tell Hermes what you want to achieve, not which flags to remember.
29
+ hermes sync
30
+ # Evaluates rebase vs merge based on your branch state
31
+ # → Explains the tradeoff before doing anything
53
32
 
54
- ### 🛡️ Safety by Default
55
- Hermes prefers the least destructive option and explains tradeoffs before acting.
33
+ hermes conflict explain
34
+ # Reads the conflict markers
35
+ # → Explains what each side was trying to do
36
+ # → Suggests a resolution strategy
56
37
 
57
- ### 🔍 Explainable Actions
58
- Every command shows what happened and why. No magic, no surprises.
38
+ hermes wip
39
+ # Decides commit vs stash based on your repo state
40
+ # → Saves your work safely
41
+ ```
59
42
 
60
- ### 🧑‍💻 Terminal-Native
61
- No UI, no context switching. Just clarity where you already work.
43
+ No magic. Every command shows exactly what git operations it runs.
62
44
 
63
45
  ---
64
46
 
65
47
  ## Installation
66
48
 
67
- ### Prerequisites
49
+ ```bash
50
+ npm install -g hermes-git
51
+ ```
68
52
 
69
- - **Node.js** 18.0 or higher
70
- - **Git** (obviously!)
71
- - **[GitHub Copilot CLI](https://github.com/github/copilot-cli)** (with active subscription)
53
+ **Requires:** Node.js 18+, Git
72
54
 
73
- ### Install Hermes
55
+ ### Set up your AI provider
56
+
57
+ Hermes works with Anthropic, OpenAI, or Google Gemini — bring your own API key.
74
58
 
75
59
  ```bash
76
- npm install -g hermes-git
60
+ hermes config setup
77
61
  ```
78
62
 
79
- ### Setup GitHub Copilot CLI
63
+ This walks you through selecting a provider and saving your key to `~/.config/hermes/config.json` (chmod 600).
80
64
 
81
- If you haven't already:
65
+ Or set it manually:
82
66
 
83
67
  ```bash
84
- # Install Copilot CLI from GitHub releases
85
- # https://github.com/github/copilot-cli
68
+ # Anthropic (Claude)
69
+ hermes config set provider anthropic
70
+ hermes config set anthropic-key sk-ant-...
71
+
72
+ # OpenAI (GPT-4o)
73
+ hermes config set provider openai
74
+ hermes config set openai-key sk-...
86
75
 
87
- # Authenticate
88
- copilot login
76
+ # Google Gemini
77
+ hermes config set provider gemini
78
+ hermes config set gemini-key AIza...
89
79
  ```
90
80
 
91
- ### Verify Installation
81
+ Verify it worked:
92
82
 
93
83
  ```bash
94
- hermes --version
95
- hermes --help
84
+ hermes config list
96
85
  ```
97
86
 
98
87
  ---
99
88
 
100
89
  ## Quick Start
101
90
 
102
- ### 1. Initialize Your Project
103
-
104
91
  ```bash
105
- hermes init
106
- ```
107
-
108
- Sets up project context, branch naming patterns, and preferences. Config is shareable across your team.
92
+ # 1. Install and configure
93
+ npm install -g hermes-git
94
+ hermes config setup
109
95
 
110
- ### 2. Start Working
96
+ # 2. Initialize your project (optional, enables team config sharing)
97
+ cd your-project
98
+ hermes init
111
99
 
112
- ```bash
100
+ # 3. Start working
113
101
  hermes start "user authentication"
114
- # Creates: feature/user-authentication
115
- # Switches from correct base branch
116
- # Tracks time saved
117
- ```
118
-
119
- ### 3. Check Your Efficiency
120
-
121
- ```bash
122
- hermes stats
123
-
124
- ╔══════════════════════════════════════════════════════╗
125
- ║ Hermes Efficiency Report - Last 30 Days ║
126
- ╚══════════════════════════════════════════════════════╝
127
-
128
- ⏱️ Time Saved: 12.4 hours
129
- 🚀 Commands Run: 847 → 123 (85% reduction)
130
- 📈 Efficiency Gain: +34% compared to raw Git
131
102
  ```
132
103
 
133
104
  ---
134
105
 
135
106
  ## Commands
136
107
 
137
- ### 🎯 Essential Commands
108
+ ### `hermes config`
138
109
 
139
- ### `hermes init [--quick]`
140
-
141
- **Initialize Hermes for your project.**
110
+ Manage API keys and provider settings.
142
111
 
143
112
  ```bash
144
- hermes init # Interactive setup
145
- hermes init --quick # Use sensible defaults
113
+ hermes config setup # Interactive wizard
114
+ hermes config list # Show current config (keys masked)
115
+ hermes config set provider openai
116
+ hermes config set openai-key sk-...
117
+ hermes config get provider
118
+ hermes config unset gemini-key
146
119
  ```
147
120
 
148
- **Creates:**
149
- - `.hermes/config.json` - Project configuration (commit this!)
150
- - Branch naming patterns
151
- - Workflow shortcuts
152
- - Team preferences
153
-
154
- **Why this matters:** Consistency across your entire team, automatic convention enforcement.
121
+ Config is stored in `~/.config/hermes/config.json`. You can also use environment variables or a `.env` file — see [Configuration](#configuration).
155
122
 
156
123
  ---
157
124
 
158
- ### `hermes stats [-d <days>]`
125
+ ### `hermes plan "<intent>"`
159
126
 
160
- **See your productivity gains and efficiency metrics.**
127
+ Analyze repo state and propose a safe Git plan. **Makes no changes.**
161
128
 
162
129
  ```bash
163
- hermes stats # Last 30 days
164
- hermes stats -d 7 # Last week
165
- hermes stats --all-time
130
+ hermes plan "bring main into my branch without losing my work"
131
+ hermes plan "clean up before submitting a PR"
166
132
  ```
167
133
 
168
- **Shows:**
169
- - Time saved vs raw Git
170
- - Command reduction percentage
171
- - Success rate
172
- - Most-used commands
173
- - Productivity streak
174
-
175
- **Why this matters:** Quantify your efficiency improvements, see where Hermes helps most.
176
-
177
134
  ---
178
135
 
179
- ### `hermes workflow <command>`
136
+ ### `hermes start "<task>"`
180
137
 
181
- **One-command workflows for common Git patterns.**
138
+ Start a new piece of work safely.
182
139
 
183
140
  ```bash
184
- hermes workflow pr-ready # Sync, rebase, push (ready for PR)
185
- hermes workflow daily-sync # Morning routine: fetch, status, suggestions
186
- hermes workflow list # Show all available shortcuts
141
+ hermes start "payment refactor"
142
+ # Picks correct base branch
143
+ # Creates and switches to feature/payment-refactor
187
144
  ```
188
145
 
189
- **Why this matters:** Turn 10+ commands into 1. Save 5-10 minutes per workflow.
190
-
191
146
  ---
192
147
 
193
- ### `hermes plan "<intent>"`
148
+ ### `hermes sync [--from <branch>]`
194
149
 
195
- **Analyze your repository state and propose a safe Git plan.**
150
+ Bring your branch up to date.
196
151
 
197
152
  ```bash
198
- hermes plan "bring main into my branch without losing my changes"
153
+ hermes sync
154
+ hermes sync --from develop
199
155
  ```
200
156
 
201
- **Output includes:**
202
- - Current repository state (clean, conflicted, mid-rebase, etc.)
203
- - Recommended strategy (merge vs rebase) with reasoning
204
- - Potential risks and safety considerations
205
- - Step-by-step next actions
206
-
207
- **No changes are made.** This is analysis only.
157
+ Hermes evaluates whether rebase or merge is safer given your branch state and explains before executing.
208
158
 
209
159
  ---
210
160
 
211
- ### `hermes start "<task>"`
161
+ ### `hermes wip [-m "<message>"]`
212
162
 
213
- **Start a new piece of work safely.**
163
+ Save work in progress.
214
164
 
215
165
  ```bash
216
- hermes start "login refactor"
166
+ hermes wip
167
+ hermes wip -m "checkpoint before sync"
217
168
  ```
218
169
 
219
- **Hermes will:**
220
- - Choose the correct base branch
221
- - Generate a conventional branch name
222
- - Create and switch to the new branch
223
- - Set upstream tracking if needed
224
- - Explain what it did and why
170
+ Decides commit vs stash based on what's safest in your current state.
225
171
 
226
172
  ---
227
173
 
228
- ### `hermes wip [--message "<msg>"]`
174
+ ### `hermes guard`
229
175
 
230
- **Save work-in-progress safely when things get messy.**
176
+ Scan staged files for secrets and sensitive content before committing.
231
177
 
232
178
  ```bash
233
- hermes wip --message "checkpoint before rebase"
179
+ hermes guard
234
180
  ```
235
181
 
236
- **Hermes decides whether to:**
237
- - Create a WIP commit, or
238
- - Stash changes with a meaningful label
182
+ Hermes scans every staged file for:
239
183
 
240
- Based on repository state and what's safest. **No lost work. Ever.**
184
+ - **Sensitive filenames** `.env`, `id_rsa`, `*.pem`, `credentials.json`, `google-services.json`, etc.
185
+ - **API keys** — Anthropic, OpenAI, Google, AWS, GitHub, Stripe, SendGrid, Twilio
186
+ - **Private key headers** — `-----BEGIN PRIVATE KEY-----` and variants
187
+ - **Database URLs** with embedded credentials — `postgres://user:pass@host`
188
+ - **Hardcoded passwords/tokens** — common assignment patterns
241
189
 
242
- ---
190
+ Findings are categorized as `BLOCKED` (definite secret) or `WARN` (suspicious). The AI explains each finding and what to do about it. Then you choose: abort, unstage the flagged files, or proceed anyway.
243
191
 
244
- ### `hermes sync [--from <branch>]`
192
+ ```
193
+ BLOCKED src/config.ts
194
+ ● Anthropic API key line 12
195
+ apiKey: "sk-a...****",
196
+ Rotate at: https://console.anthropic.com/settings/keys
197
+ ● Database URL with credentials line 15
198
+ dbUrl: "post...****prod.db.internal/app"
199
+
200
+ What this means:
201
+ The Anthropic API key on line 12 would give anyone with repository
202
+ access full billing access to your Anthropic account. Rotate it
203
+ immediately and use process.env.ANTHROPIC_API_KEY instead.
204
+ ...
205
+
206
+ ? Blocked secrets found. What do you want to do?
207
+ ❯ Abort — I will fix these before committing
208
+ Unstage the flagged files and continue
209
+ Proceed anyway (I know what I'm doing)
210
+ ```
245
211
 
246
- **Bring your branch up to date safely.**
212
+ **Install as a git pre-commit hook** so it runs automatically on every commit:
247
213
 
248
214
  ```bash
249
- hermes sync
250
- hermes sync --from develop
215
+ hermes guard install-hook # installs to .git/hooks/pre-commit
216
+ hermes guard uninstall-hook # removes it
251
217
  ```
252
218
 
253
- **Hermes evaluates:**
254
- - Whether the branch is shared (has remote tracking)
255
- - Whether rebase is safe
256
- - Whether merge is preferable
257
-
258
- If a risky operation is detected, Hermes explains before proceeding.
219
+ In hook mode (`--hook`), the scan is non-interactive: it prints findings to stderr and exits 1 on any blocker.
259
220
 
260
221
  ---
261
222
 
262
223
  ### `hermes conflict explain`
263
224
 
264
- **Understand why a merge conflict exists.**
225
+ Understand why a conflict exists.
265
226
 
266
227
  ```bash
267
228
  hermes conflict explain
268
229
  ```
269
230
 
270
- **Hermes will:**
271
- - List all conflicted files
272
- - Summarize each side's intent (ours vs theirs)
273
- - Identify common causes (refactor, rename, move)
274
- - Suggest a resolution strategy
275
-
276
- This is explanation, not guesswork. Make informed decisions.
231
+ For each conflicted file: what each side was doing, why they conflict, and how to approach resolution.
277
232
 
278
233
  ---
279
234
 
280
235
  ### `hermes conflict apply`
281
236
 
282
- **Resolve conflicts with AI-powered guidance.**
237
+ Resolve conflicts file by file with AI assistance.
283
238
 
284
239
  ```bash
285
240
  hermes conflict apply
286
241
  ```
287
242
 
288
- **For each conflicted file, Hermes:**
289
- - Proposes a merged version
290
- - Shows a diff preview
291
- - Lets you choose: accept, edit manually, or skip
292
-
293
- **Hermes never auto-commits without your consent.**
243
+ For each file: shows a proposed resolution, lets you accept, edit manually, or skip. Never auto-commits.
294
244
 
295
245
  ---
296
246
 
297
- ### `hermes worktree new "<task>"`
247
+ ### `hermes workflow <name>`
298
248
 
299
- **Create Git worktrees safely and predictably.**
249
+ One-command workflows for common patterns.
300
250
 
301
251
  ```bash
302
- hermes worktree new "fix flaky tests"
252
+ hermes workflow pr-ready # fetch rebase → push --force-with-lease
253
+ hermes workflow daily-sync # fetch all → show status → suggest next action
254
+ hermes workflow quick-commit # generate commit message from staged diff
255
+ hermes workflow list # show available workflows
303
256
  ```
304
257
 
305
- **Hermes will:**
306
- - Create a branch
307
- - Create a worktree in a predictable location
308
- - Track active worktrees
309
- - Help prevent committing in the wrong place
310
-
311
258
  ---
312
259
 
313
- ## Examples
314
-
315
- ### Example Workflows
260
+ ### `hermes worktree new "<task>"`
316
261
 
317
- #### First-Time Setup
262
+ Create a Git worktree safely.
318
263
 
319
264
  ```bash
320
- # Initialize project
321
- cd your-project
322
- hermes init
323
-
324
- # Answer a few questions:
325
- # - Project name?
326
- # - Main branch? (main)
327
- # - Feature branch pattern? (feature/{description})
328
- # - Enable auto-backup? (yes)
329
-
330
- # Config saved and ready for your team!
265
+ hermes worktree new "fix memory leak"
266
+ # → Creates branch, worktree at ../repo-fix-memory-leak
331
267
  ```
332
268
 
333
- #### Daily Developer Workflow
334
-
335
- ```bash
336
- # Morning: check status
337
- hermes workflow daily-sync
338
-
339
- # Start new feature
340
- hermes start "oauth2-login"
341
- # → Creates: feature/oauth2-login
342
- # → Tracks time: saved ~60s vs manual Git
343
-
344
- # Work on code...
345
-
346
- # Save progress
347
- hermes wip -m "checkpoint"
348
- # → Decides: commit vs stash based on state
349
- # → Auto-backup if configured
350
-
351
- # Sync with main
352
- hermes sync
353
- # → Evaluates: rebase vs merge
354
- # → Explains why before executing
355
-
356
- # Handle conflicts
357
- hermes conflict explain
358
- hermes conflict apply
359
-
360
- # Ready for PR
361
- hermes workflow pr-ready
362
- # → Fetch, rebase, push --force-with-lease
269
+ ---
363
270
 
364
- # Check efficiency gains
365
- hermes stats
366
- # 🎉 Time saved today: 24 minutes!
367
- ```
271
+ ### `hermes init [--quick]`
368
272
 
369
- ### Real-World Scenarios
273
+ Initialize project-level config (`.hermes/config.json`). Commit this to share branch patterns and workflows with your team.
370
274
 
371
- **Scenario 1: Safe branch sync**
372
275
  ```bash
373
- $ hermes plan "update my feature branch with latest main"
374
-
375
- 🔍 Analyzing repository state...
376
-
377
- 📋 Recommended Plan:
378
- Your branch is 5 commits behind main. Rebase is safe because:
379
- - No remote tracking (local-only branch)
380
- - Working directory is clean
381
- - No ongoing operations
382
-
383
- Recommended: git fetch && git rebase origin/main
276
+ hermes init # Interactive
277
+ hermes init --quick # Use defaults
384
278
  ```
385
279
 
386
- **Scenario 2: Conflict resolution**
387
- ```bash
388
- $ hermes conflict explain
389
-
390
- 🔍 Analyzing conflicts...
280
+ ---
391
281
 
392
- ⚔️ Conflicts detected:
393
- • src/auth/login.ts
282
+ ### `hermes stats [-d <days>]`
394
283
 
395
- 🔍 Analysis:
396
- main refactored the authentication flow to use async/await,
397
- while your branch updated error handling with try-catch.
284
+ Show command usage and success rate.
398
285
 
399
- Both changes are valid. Merge both approaches:
400
- 1. Keep async/await structure from main
401
- 2. Integrate your error handling improvements
286
+ ```bash
287
+ hermes stats
288
+ hermes stats -d 7
289
+ hermes stats --all-time
402
290
  ```
403
291
 
404
292
  ---
405
293
 
406
- ## How It Works
294
+ ## Configuration
407
295
 
408
- Hermes uses **GitHub Copilot CLI** as its reasoning engine to:
409
-
410
- - 🧠 Interpret natural language intent
411
- - 📊 Analyze repository state
412
- - 🔧 Generate safe Git command sequences
413
- - 💬 Explain decisions in human-readable terms
414
-
415
- **Copilot CLI is not a wrapper here—it's the intelligence behind Hermes' decisions.**
416
-
417
- The integration uses the standalone Copilot CLI (not the deprecated `gh copilot` extension) in non-interactive mode, ensuring fast, scriptable, and explainable Git operations.
418
-
419
- ---
296
+ Hermes resolves config in this priority order:
420
297
 
421
- ## Philosophy
298
+ | Source | Example |
299
+ |--------|---------|
300
+ | Environment variable | `export ANTHROPIC_API_KEY=sk-ant-...` |
301
+ | `.env` file in current dir | `ANTHROPIC_API_KEY=sk-ant-...` |
302
+ | `~/.config/hermes/config.json` | set via `hermes config set` |
422
303
 
423
- Hermes follows three rules:
304
+ **Supported env vars:**
424
305
 
425
- ### 1. Never Hide Git
426
- You can always see the commands Hermes runs. No abstraction, no magic.
306
+ | Variable | Description |
307
+ |----------|-------------|
308
+ | `HERMES_PROVIDER` | Pin provider: `anthropic`, `openai`, or `gemini` |
309
+ | `ANTHROPIC_API_KEY` | Anthropic API key |
310
+ | `OPENAI_API_KEY` | OpenAI API key |
311
+ | `GEMINI_API_KEY` / `GOOGLE_API_KEY` | Google Gemini API key |
427
312
 
428
- ### 2. Never Surprise the User
429
- Every action is explained before execution. You maintain control.
313
+ If `HERMES_PROVIDER` is not set, Hermes auto-detects by using whichever key it finds first (Anthropic → OpenAI → Gemini).
430
314
 
431
- ### 3. Never Trade Safety for Speed
432
- Hermes prefers the safest path, even if it takes one more step.
315
+ **Supported providers and models:**
433
316
 
434
- **You can always drop down to raw Git.** Hermes exists to guide, not to obscure.
317
+ | Provider | Model | Get a key |
318
+ |----------|-------|-----------|
319
+ | Anthropic | claude-sonnet-4-6 | [console.anthropic.com](https://console.anthropic.com/) |
320
+ | OpenAI | gpt-4o | [platform.openai.com/api-keys](https://platform.openai.com/api-keys) |
321
+ | Google | gemini-2.0-flash | [aistudio.google.com/app/apikey](https://aistudio.google.com/app/apikey) |
435
322
 
436
323
  ---
437
324
 
438
- ## Documentation
325
+ ## How it works
439
326
 
440
- - **[Integration Guide](docs/INTEGRATION.md)** - How GitHub Copilot CLI powers Hermes
441
- - **[Development Guide](docs/DEVELOPMENT.md)** - Contributing and extending Hermes
442
- - **[Changelog](docs/CHANGELOG.md)** - Version history and releases
327
+ 1. **Reads your repo state** branch, commits, dirty files, conflicts, remote tracking
328
+ 2. **Sends context + intent to an AI** using your configured provider
329
+ 3. **Validates the response** all returned commands must start with `git`, destructive flags are blocked
330
+ 4. **Executes with display** — shows every command before running it
331
+ 5. **You always stay in control** — interactive prompts for anything irreversible
443
332
 
444
333
  ---
445
334
 
446
- ## Comparison
447
-
448
- ### Hermes vs Raw Git
335
+ ## Philosophy
449
336
 
450
- | Task | Raw Git | Hermes |
451
- |------|---------|--------|
452
- | **Sync branch** | Remember rebase vs merge rules, check if shared | `hermes sync` - evaluates and explains |
453
- | **Start feature** | Think of branch name, remember base branch | `hermes start "feature name"` - handles conventions |
454
- | **Save WIP** | Decide commit vs stash, write message | `hermes wip` - chooses safest option |
455
- | **Resolve conflict** | Parse diff markers, guess intent | `hermes conflict explain` - AI explains both sides |
337
+ **Never hide Git.** Every command Hermes runs is shown. You can drop to raw Git at any point.
456
338
 
457
- ### Hermes vs Git GUIs
339
+ **Never surprise.** Risky operations include an explanation before execution.
458
340
 
459
- Hermes is **terminal-native** and **explainable**:
460
- - No context switching from your terminal workflow
461
- - Every operation is a learning opportunity
462
- - Works over SSH, in Docker, anywhere Git works
463
- - Integrates with your existing Git knowledge
341
+ **Bring your own AI.** No proprietary backend. Works with any provider you already pay for.
464
342
 
465
343
  ---
466
344
 
467
345
  ## Troubleshooting
468
346
 
469
- ### Copilot CLI Not Found
470
-
471
- ```bash
472
- ❌ GitHub Copilot CLI is not installed
473
- ```
474
-
475
- **Problem:** Hermes requires the standalone Copilot CLI (not the deprecated `gh copilot` extension).
476
-
477
- **Solution:**
478
-
479
- ```bash
480
- # Install via npm (recommended)
481
- npm install -g @github/copilot
482
-
483
- # Or via Homebrew (macOS/Linux)
484
- brew install github/gh/copilot-cli
485
-
486
- # Verify installation
487
- copilot --version
488
- ```
489
-
490
- **Note:** The old `gh copilot` extension was deprecated on October 25, 2025. If you have it installed, you'll see a warning—install the new standalone CLI instead.
491
-
492
- ---
493
-
494
- ### Authentication Required
347
+ **No AI provider configured**
495
348
 
496
349
  ```bash
497
- GitHub Copilot CLI is not authenticated
350
+ hermes config setup
498
351
  ```
499
352
 
500
- **Problem:** Copilot CLI needs GitHub authentication to work.
353
+ **Wrong provider selected**
501
354
 
502
- **Solution (choose one):**
503
-
504
- **Option 1: OAuth (Recommended)**
505
355
  ```bash
506
- # Start Copilot CLI interactively
507
- copilot
508
-
509
- # In the Copilot prompt, type:
510
- /login
511
-
512
- # Follow the browser OAuth flow
356
+ hermes config set provider anthropic
357
+ hermes config list # verify
513
358
  ```
514
359
 
515
- **Option 2: Personal Access Token**
516
- ```bash
517
- # Create a token at: https://github.com/settings/tokens
518
- # Enable "Copilot Requests" permission under "Permissions"
519
-
520
- # Set the token in your environment
521
- export GH_TOKEN="your_token_here"
360
+ **Key saved but not working**
522
361
 
523
- # Add to your shell profile (~/.bashrc, ~/.zshrc) to persist:
524
- echo 'export GH_TOKEN="your_token_here"' >> ~/.bashrc
525
- ```
526
-
527
- **Option 3: GitHub CLI Integration**
528
362
  ```bash
529
- # If you already have gh CLI installed and authenticated
530
- gh auth login
363
+ # Check what Hermes sees
364
+ hermes config list
531
365
 
532
- # Copilot CLI will automatically use those credentials
366
+ # Environment variables override saved config
367
+ # Check for conflicting vars:
368
+ echo $ANTHROPIC_API_KEY
533
369
  ```
534
370
 
535
- **Requirements:**
536
- - Active GitHub Copilot subscription ([subscribe here](https://github.com/features/copilot/plans))
537
- - If using organization Copilot, "Copilot CLI" must be enabled in org settings
538
-
539
- ---
540
-
541
- ### Subscription Issues
371
+ **General debugging**
542
372
 
543
373
  ```bash
544
- ❌ GitHub Copilot subscription required
545
- ```
546
-
547
- **Solution:**
548
- - Verify you have an active Copilot subscription at [github.com/settings/copilot](https://github.com/settings/copilot)
549
- - If using organization Copilot, check with your admin that "Copilot CLI" is enabled
550
- - Individual plans start at $10/month, or free for students/OSS maintainers
551
-
552
- ---
553
-
554
- ### Slow Responses
555
-
556
- If AI responses are slow, try:
557
- - Use a faster model: `--model claude-sonnet-4.5` (default, fastest)
558
- - Check internet connection
559
- - Verify Copilot subscription is active
560
- - Try running `copilot` directly to test connection
561
-
562
- ---
563
-
564
- ### Command Not Working
565
-
566
- ```bash
567
- # Check Hermes version
568
374
  hermes --version
569
-
570
- # Verify Copilot CLI is installed and authenticated
571
- copilot --version
572
- copilot -p "test" --allow-all-tools -s
573
-
574
- # Check git is working
375
+ hermes config list
575
376
  git status
576
-
577
- # Test in a clean repo
578
- cd /tmp && git init test && cd test
579
- git config user.name "Test" && git config user.email "test@example.com"
580
- hermes plan "test"
581
377
  ```
582
378
 
583
379
  ---
584
380
 
585
- ### Getting Help
586
-
587
- If you're still having issues:
588
- 1. Check the [GitHub Copilot CLI documentation](https://docs.github.com/en/copilot/how-tos/use-copilot-agents/use-copilot-cli)
589
- 2. Verify Copilot CLI works independently: `copilot -p "hello" -s`
590
- 3. Open an issue at [github.com/simandebvu/hermes-cli/issues](https://github.com/simandebvu/hermes-cli/issues) with:
591
- - Output of `hermes --version`
592
- - Output of `copilot --version`
593
- - The exact error message you're seeing
594
-
595
- ---
596
-
597
381
  ## Contributing
598
382
 
599
- Contributions are welcome! Please see [DEVELOPMENT.md](DEVELOPMENT.md) for:
600
-
601
- - Project structure
602
- - Development setup
603
- - Adding new commands
604
- - Testing guidelines
605
- - Code style
606
-
607
- ### Quick Start for Contributors
608
-
609
383
  ```bash
610
- # Clone and install
611
- git clone https://github.com/yourusername/hermes.git
612
- cd hermes
384
+ git clone https://github.com/simandebvu/hermes-cli.git
385
+ cd hermes-cli
613
386
  bun install
614
-
615
- # Run in dev mode
616
387
  bun run dev --help
617
-
618
- # Build
619
388
  bun run build
620
-
621
- # Test
622
389
  bun run typecheck
623
390
  ```
624
391
 
625
- ---
626
-
627
- ## FAQ
628
-
629
- **Q: Does Hermes send my code to AI services?**
630
- A: Only repository state metadata (branch names, file lists, status) is sent. File contents are not transmitted unless explicitly needed for conflict resolution. See [SECURITY.md](docs/SECURITY.md) for details.
631
-
632
- **Q: Does Hermes require a GitHub Copilot subscription?**
633
- A: Yes. Hermes uses the GitHub Copilot CLI, which requires an active Copilot subscription.
634
-
635
- **Q: Can I use Hermes without internet?**
636
- A: No. Hermes requires internet connectivity to communicate with GitHub Copilot's AI models.
637
-
638
- **Q: Will Hermes work with my existing Git workflow?**
639
- A: Yes! Hermes is designed to complement your workflow, not replace it. Use it when you need guidance, fall back to raw Git anytime.
640
-
641
- **Q: What if Hermes suggests something wrong?**
642
- A: Hermes never executes commands without showing them first. You always have the final say. If a suggestion seems wrong, don't proceed and use raw Git instead.
643
-
644
- ---
645
-
646
- ## Efficiency Metrics
647
-
648
- Real-world time savings reported by users:
649
-
650
- | Task | Raw Git | With Hermes | Time Saved |
651
- |------|---------|-------------|------------|
652
- | **Start feature** | 2-3 min | 30 sec | ~2 min |
653
- | **Sync branch** | 3-5 min | 45 sec | ~3 min |
654
- | **Resolve conflict** | 10-15 min | 5 min | ~8 min |
655
- | **Daily workflows** | 15-20 min | 5 min | ~12 min |
656
-
657
- **Average:** **10-15 hours saved per developer per month**
658
-
659
- ---
660
-
661
- ## Roadmap
662
-
663
- ### Current (v0.2) ✨
664
- - ✅ 10 commands including efficiency features
665
- - ✅ GitHub Copilot CLI integration
666
- - ✅ Project context awareness (`hermes init`)
667
- - ✅ Analytics dashboard (`hermes stats`)
668
- - ✅ Workflow shortcuts (`hermes workflow`)
669
- - ✅ Team-shareable configuration
670
- - ✅ Time-saved tracking
671
-
672
- ### Next (v0.3)
673
- - [ ] `hermes undo` - Revert last operation safely
674
- - [ ] Auto-backup system before risky operations
675
- - [ ] Ticket integration (Linear, Jira)
676
- - [ ] `--dry-run` flag for all commands
677
-
678
- See [PRODUCT_VISION.md](docs/PRODUCT_VISION.md) for full roadmap.
679
-
680
- ### Future
681
- - [ ] `hermes review` - PR review assistance
682
- - [ ] `hermes explain "<git-command>"` - Explain any Git command
683
- - [ ] Configuration file support (`~/.hermesrc`)
684
- - [ ] Plugin system for custom commands
685
- - [ ] Interactive mode with `hermes shell`
392
+ Issues and PRs welcome at [github.com/simandebvu/hermes-cli](https://github.com/simandebvu/hermes-cli).
686
393
 
687
394
  ---
688
395
 
689
396
  ## Why "Hermes"?
690
397
 
691
- In Greek mythology, **Hermes** is the guide of travelers and the messenger between worlds.
692
-
693
- - **Branches are worlds.**
694
- - **Merges are crossings.**
695
- - **Hermes ensures you cross safely.**
398
+ In Greek mythology, Hermes guides travelers and carries messages between worlds. Branches are worlds. Merges are crossings. Hermes makes sure you get there safely.
696
399
 
697
400
  ---
698
401
 
699
402
  ## License
700
403
 
701
- [MIT License](LICENSE) - see the [LICENSE](LICENSE) file for details.
702
-
703
- ---
704
-
705
- ## Acknowledgments
706
-
707
- - Powered by [GitHub Copilot CLI](https://github.com/github/copilot-cli)
708
- - Built with [Commander.js](https://github.com/tj/commander.js), [Chalk](https://github.com/chalk/chalk), and [Inquirer](https://github.com/SBoudrias/Inquirer.js)
709
- - Inspired by the need to make Git safer and more accessible
404
+ [MIT](LICENSE)
710
405
 
711
406
  ---
712
407
 
713
408
  <div align="center">
714
409
 
715
- **Made with 🪽 by developers, for developers**
410
+ **Built with [Commander.js](https://github.com/tj/commander.js), [Chalk](https://github.com/chalk/chalk), [Inquirer](https://github.com/SBoudrias/Inquirer.js)**
716
411
 
717
- [Report Bug](https://github.com/simandebvu/hermes-cli/issues) • [Request Feature](https://github.com/simandebvu/hermes-cli/issues) • [Documentation](docs/INTEGRATION.md)
412
+ [Report a bug](https://github.com/simandebvu/hermes-cli/issues) • [Request a feature](https://github.com/simandebvu/hermes-cli/issues)
718
413
 
719
414
  </div>