geethob 0.1.0 → 0.1.2

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.
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "hemant1996",
3
+ "description": "Hemant Bangar's Claude Code plugins.",
4
+ "owner": { "name": "Hemant Bangar" },
5
+ "plugins": [
6
+ {
7
+ "name": "geethob",
8
+ "source": { "source": "url", "url": "https://github.com/hemant1996/geethob.git" },
9
+ "description": "Turn git history into prose narrative. CLI + skill, local-only, BYO API key."
10
+ }
11
+ ]
12
+ }
@@ -0,0 +1,12 @@
1
+ {
2
+ "name": "geethob",
3
+ "description": "Turn git history into prose narrative. Use when the user asks 'what changed in this repo,' 'summarize these commits,' 'narrate the history of <feature>,' or 'what did <person> ship last week.' Local-only, BYO API key.",
4
+ "version": "0.1.0",
5
+ "author": {
6
+ "name": "Hemant Bangar"
7
+ },
8
+ "homepage": "https://github.com/hemant1996/geethob",
9
+ "repository": "https://github.com/hemant1996/geethob",
10
+ "license": "MIT",
11
+ "keywords": ["git", "github", "narrative", "changelog", "ai", "claude", "skill"]
12
+ }
package/CHANGELOG.md ADDED
@@ -0,0 +1,27 @@
1
+ # Changelog
2
+
3
+ ## v0.1.2
4
+
5
+ - New `geethob skill install` subcommand wires the bundled skill into Claude Code in one step. The full install is now `npm install -g geethob && geethob skill install` — no GitHub SSH key required (unlike the `/plugin install` path on current Claude Code versions).
6
+ - Renamed the bundled skill from `narrate` to `geethob` so the package name and the skill name match. Invocation slash form is now `/geethob:geethob` (or the agent auto-invokes via the Skill tool).
7
+ - Dropped the legacy `skill/` directory; `skills/geethob/SKILL.md` is the single source of truth.
8
+ - Fixed the hardcoded `0.1.0` version string in `--version` output.
9
+
10
+ ## v0.1.1
11
+
12
+ - Slim the npm package from ~70 MB to ~700 KB by excluding the compiled Bun binary (`dist/geethob`) from the published tarball. The binary still ships via GitHub Releases for the single-binary install path; npm users only need the JS bundle.
13
+ - Ship the Claude Code plugin manifest (`.claude-plugin/`) and the bundled skill (`skills/narrate/`) inside the npm package, so a global install also lights up the plugin path once Claude Code's HTTPS-source bug lands a fix.
14
+ - Include `assets/logo.svg` in the package so README rendering doesn't 404 if viewed from the npm tarball.
15
+
16
+ ## v0.1.0
17
+
18
+ Initial release.
19
+
20
+ - `geethob story <scope>` — narrate the history of a local path or a public GitHub repo (`<owner>/<name>` form).
21
+ - `geethob digest --since 7d` — narrate recent activity for the current working tree, a single remote repo (`--repo`), or a GitHub user (`--author`, falls back to public events when no local repo applies).
22
+ - `geethob configure` — write `~/.config/geethob/config.toml` (mode 0600) with an Anthropic API key. Skipped automatically when `ANTHROPIC_API_KEY` is in the environment.
23
+ - Single-binary builds for macOS arm64, macOS x64, Linux x64 via `bun build --compile`.
24
+ - npm package (`bun add -g geethob` or `npm install -g geethob`) for Node ≥20.
25
+ - Claude Code skill via `skill/install.sh` and `skill/SKILL.md`.
26
+ - Hard cap of 200 commits per invocation (`--max-commits` to override), plus a token-budget pass that sheds oldest commits when the assembled prompt would exceed 150K tokens.
27
+ - Six documented exit codes (0 success, 1 usage, 2 no-git, 3 no-key, 4 model error, 5 GitHub auth/rate).
package/README.md CHANGED
@@ -13,37 +13,59 @@ Two modes in v0.1:
13
13
  - **`geethob story <repo>`** — narrate the history of a feature, module, or the whole repo.
14
14
  - **`geethob digest --since 7d`** — narrate a developer's recent work, formatted to paste cleanly into Slack or a PR comment.
15
15
 
16
- Local-only. Bring your own model key. No server. Same binary works as a CLI for humans and a skill for AI harnesses (Claude Code today; Hermes, OpenClaw, Cursor, MCP servers as adapters land).
16
+ Local-only. Bring your own model key. No server. Same binary works as a CLI for humans and a skill for AI harnesses.
17
17
 
18
18
  ## Install
19
19
 
20
+ ### Claude Code (recommended — works everywhere)
21
+
22
+ ```bash
23
+ npm install -g geethob && geethob skill install
24
+ ```
25
+
26
+ Two things happen: the `geethob` binary lands on your `$PATH`, and the bundled skill is dropped into `~/.claude/skills/geethob/`. Restart Claude Code (or reload skills) and ask a story-grained question about any repo.
27
+
28
+ Requires Node ≥20 or Bun ≥1.1. If you don't have either, use the [single-binary install](#single-binary-no-runtime-needed) below.
29
+
30
+ ### Claude Code — plugin marketplace (alpha)
31
+
32
+ ```
33
+ /plugin marketplace add hemant1996/geethob
34
+ /plugin install geethob@hemant1996
35
+ ```
36
+
37
+ This is the standard Claude Code plugin install pattern, but current Claude Code versions clone via SSH on the install step. If you have a GitHub SSH key configured, it works. If you don't, either use the npm path above or run this once to tell git to use HTTPS for GitHub:
38
+
39
+ ```bash
40
+ git config --global url."https://github.com/".insteadOf "git@github.com:"
41
+ ```
42
+
43
+ ### Cursor / Codex / Hermes / OpenClaw / plain terminal
44
+
45
+ ```bash
46
+ npm install -g geethob
47
+ ```
48
+
49
+ After install, `geethob` is on `$PATH` for any harness with shell-tool access. To wire the skill into a specific harness, copy [`skills/geethob/SKILL.md`](./skills/geethob/SKILL.md) into that harness's skills directory. PRs welcome with verified one-liners for harnesses you've tested.
50
+
20
51
  ### Single-binary (no runtime needed)
21
52
 
22
- Download the binary for your platform from [the latest release](https://github.com/hemant1996/geethob/releases/latest), drop it on your `$PATH`, and `chmod +x`:
53
+ Download from [the latest release](https://github.com/hemant1996/geethob/releases/latest), drop on your `$PATH`, `chmod +x`:
23
54
 
24
55
  ```bash
25
56
  # macOS arm64
26
- curl -L https://github.com/hemant1996/geethob/releases/latest/download/geethob-darwin-arm64 -o /usr/local/bin/geethob
27
- chmod +x /usr/local/bin/geethob
57
+ curl -L https://github.com/hemant1996/geethob/releases/latest/download/geethob-darwin-arm64 -o /usr/local/bin/geethob && chmod +x /usr/local/bin/geethob
28
58
 
29
59
  # macOS x64
30
- curl -L https://github.com/hemant1996/geethob/releases/latest/download/geethob-darwin-x64 -o /usr/local/bin/geethob
31
- chmod +x /usr/local/bin/geethob
60
+ curl -L https://github.com/hemant1996/geethob/releases/latest/download/geethob-darwin-x64 -o /usr/local/bin/geethob && chmod +x /usr/local/bin/geethob
32
61
 
33
62
  # Linux x64
34
- curl -L https://github.com/hemant1996/geethob/releases/latest/download/geethob-linux-x64 -o /usr/local/bin/geethob
35
- chmod +x /usr/local/bin/geethob
63
+ curl -L https://github.com/hemant1996/geethob/releases/latest/download/geethob-linux-x64 -o /usr/local/bin/geethob && chmod +x /usr/local/bin/geethob
36
64
  ```
37
65
 
38
- ### From npm
39
-
40
- Requires Node ≥20 or Bun ≥1.1.
66
+ After installing the binary, run `geethob skill install` to wire it into Claude Code.
41
67
 
42
- ```bash
43
- npm install -g geethob
44
- # or
45
- bun add -g geethob
46
- ```
68
+ `geethob serve` (MCP server mode) is on the v0.2 roadmap.
47
69
 
48
70
  ## Configure
49
71
 
@@ -77,39 +99,6 @@ geethob digest --author tj --since 14d
77
99
 
78
100
  `--max-commits` defaults to 200. If the prompt would overflow Claude Sonnet's context window, geethob sheds the oldest commits to fit and prints a warning.
79
101
 
80
- ## Use from your AI harness
81
-
82
- geethob ships as a skill that any compatible AI harness can invoke.
83
-
84
- ### Claude Code — plugin install (recommended)
85
-
86
- Inside Claude Code, run:
87
-
88
- ```
89
- /plugin marketplace add hemant1996/geethob
90
- /plugin install geethob@hemant1996
91
- ```
92
-
93
- The plugin bundles the `narrate` skill, which Claude Code's Skill tool will invoke automatically whenever you ask story-grained questions about a repo's history. You can also invoke it explicitly via `/geethob:narrate`.
94
-
95
- ### Claude Code — manual install (legacy)
96
-
97
- If you prefer a shell-based install:
98
-
99
- ```bash
100
- ./skill/install.sh
101
- ```
102
-
103
- This drops `SKILL.md` into `~/.claude/skills/geethob/`. Restart Claude Code (or reload skills) and the `geethob` skill is invokable from the Skill tool.
104
-
105
- ### Hermes / OpenClaw / Cursor
106
-
107
- Manual until v0.2 ships adapters. Each harness has a skills directory; copy `skill/SKILL.md` into it and adjust the invocation paths to point at the `geethob` binary on your `$PATH`. PRs welcome with one-line install snippets for any harness you've tested.
108
-
109
- ### MCP server (v0.2)
110
-
111
- `geethob serve` will expose `story` and `digest` as MCP tools so any MCP-compatible host can invoke them without shelling out. Not in v0.1.
112
-
113
102
  ## Exit codes
114
103
 
115
104
  | Code | Meaning |
@@ -0,0 +1,55 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 256 256" width="256" height="256" role="img" aria-label="geethob logo: a smiling speech-bubble blob with a tiny git-graph inside">
2
+ <title>geethob</title>
3
+ <defs>
4
+ <linearGradient id="bodyGrad" x1="0" y1="0" x2="0" y2="1">
5
+ <stop offset="0%" stop-color="#FFB199"/>
6
+ <stop offset="100%" stop-color="#FF7A7A"/>
7
+ </linearGradient>
8
+ </defs>
9
+
10
+ <!-- speech-bubble blob body -->
11
+ <path d="
12
+ M 56 36
13
+ C 100 16, 156 16, 200 36
14
+ C 232 56, 240 96, 232 132
15
+ C 224 172, 188 200, 144 204
16
+ L 132 232
17
+ L 116 204
18
+ C 72 200, 36 172, 28 132
19
+ C 20 96, 28 56, 56 36
20
+ Z"
21
+ fill="url(#bodyGrad)"
22
+ stroke="#3D2B3D"
23
+ stroke-width="6"
24
+ stroke-linejoin="round"/>
25
+
26
+ <!-- left eye (smiling, commit-node shaped) -->
27
+ <circle cx="96" cy="110" r="10" fill="#FFFAF5"/>
28
+ <circle cx="98" cy="112" r="5" fill="#3D2B3D"/>
29
+
30
+ <!-- right eye -->
31
+ <circle cx="160" cy="110" r="10" fill="#FFFAF5"/>
32
+ <circle cx="162" cy="112" r="5" fill="#3D2B3D"/>
33
+
34
+ <!-- cheek dots (subtle warmth) -->
35
+ <circle cx="70" cy="140" r="6" fill="#FF5A5A" opacity="0.35"/>
36
+ <circle cx="186" cy="140" r="6" fill="#FF5A5A" opacity="0.35"/>
37
+
38
+ <!-- happy smile -->
39
+ <path d="M 100 152 Q 128 174, 156 152"
40
+ fill="none"
41
+ stroke="#3D2B3D"
42
+ stroke-width="6"
43
+ stroke-linecap="round"/>
44
+
45
+ <!-- tiny git-graph above the head: three commit nodes connected by a curve -->
46
+ <path d="M 86 64 Q 128 44, 170 64"
47
+ fill="none"
48
+ stroke="#3D2B3D"
49
+ stroke-width="4"
50
+ stroke-linecap="round"
51
+ opacity="0.85"/>
52
+ <circle cx="86" cy="64" r="6" fill="#FFFAF5" stroke="#3D2B3D" stroke-width="3"/>
53
+ <circle cx="128" cy="50" r="6" fill="#FFFAF5" stroke="#3D2B3D" stroke-width="3"/>
54
+ <circle cx="170" cy="64" r="6" fill="#FFFAF5" stroke="#3D2B3D" stroke-width="3"/>
55
+ </svg>