happenin 0.3.0 → 0.5.0
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.
- package/.claude-plugin/marketplace.json +14 -0
- package/.cursor-plugin/marketplace.json +11 -0
- package/README.md +26 -13
- package/assets/help.md +5 -9
- package/dist/bin.js +446 -128
- package/package.json +8 -3
- package/plugins/claude/.claude-plugin/plugin.json +9 -0
- package/plugins/claude/hooks/hooks.json +345 -0
- package/plugins/cursor/.cursor-plugin/plugin.json +10 -0
- package/plugins/cursor/hooks/hooks.json +95 -0
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "happenin",
|
|
3
|
+
"description": "Record Cursor and Claude Code agent events in a local dashboard.",
|
|
4
|
+
"owner": {
|
|
5
|
+
"name": "Yogev Boaron Ben-Har"
|
|
6
|
+
},
|
|
7
|
+
"plugins": [
|
|
8
|
+
{
|
|
9
|
+
"name": "happenin",
|
|
10
|
+
"source": "./plugins/claude",
|
|
11
|
+
"description": "Record local Claude Code events for the happenin dashboard."
|
|
12
|
+
}
|
|
13
|
+
]
|
|
14
|
+
}
|
package/README.md
CHANGED
|
@@ -5,19 +5,19 @@
|
|
|
5
5
|
[](docs/CODE_OF_CONDUCT.md)
|
|
6
6
|
[](http://makeapullrequest.com)
|
|
7
7
|
|
|
8
|
-
A
|
|
8
|
+
A CLI that records Cursor and Claude Code agent events to a local SQLite database and serves a live browser dashboard.
|
|
9
9
|
|
|
10
10
|

|
|
11
11
|
|
|
12
12
|
## Try it
|
|
13
13
|
|
|
14
14
|
```bash
|
|
15
|
-
npx -y happenin install #
|
|
15
|
+
npx -y happenin install # show plugin setup for Cursor and Claude Code
|
|
16
16
|
npx -y happenin import # import existing transcripts
|
|
17
17
|
npx -y happenin dashboard # open the live dashboard
|
|
18
18
|
```
|
|
19
19
|
|
|
20
|
-
No global install needed:
|
|
20
|
+
No global install needed: the packaged hooks run through `npx`. For a permanent setup, use the [global install](#install).
|
|
21
21
|
|
|
22
22
|
## Why
|
|
23
23
|
|
|
@@ -29,7 +29,7 @@ Cursor and Claude Code can emit local hooks for each session, tool use, prompt,
|
|
|
29
29
|
|
|
30
30
|
## Requirements
|
|
31
31
|
|
|
32
|
-
- macOS
|
|
32
|
+
- macOS, Linux, or Windows
|
|
33
33
|
- Node.js `>= 22.13.0` (uses the built-in `node:sqlite` module, available since Node 22.13)
|
|
34
34
|
- Zero runtime dependencies
|
|
35
35
|
- The dashboard loads htmx and htmx-ext-sse from a CDN
|
|
@@ -52,7 +52,7 @@ npm run build
|
|
|
52
52
|
## Quick start
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
#
|
|
55
|
+
# Show the plugin setup for Cursor and Claude Code
|
|
56
56
|
happenin install
|
|
57
57
|
|
|
58
58
|
# Import existing transcripts
|
|
@@ -68,7 +68,9 @@ The dashboard opens at `http://localhost:8765`. New events appear automatically.
|
|
|
68
68
|
|
|
69
69
|
### `happenin install [--cursor] [--claude]`
|
|
70
70
|
|
|
71
|
-
|
|
71
|
+
Prints the supported plugin setup for Cursor and Claude Code. The packaged plugins call `npx -y happenin record`, so they work with both the trial and global-install flows without rewriting `~/.cursor/hooks.json` or `~/.claude/settings.json`. Use `--cursor` or `--claude` to show one client only.
|
|
72
|
+
|
|
73
|
+
Migrating from a pre-plugin install? Remove the old `happenin record` entries from `~/.cursor/hooks.json` and `~/.claude/settings.json` by hand (one-time step). Keep every unrelated hook.
|
|
72
74
|
|
|
73
75
|
```bash
|
|
74
76
|
happenin install --cursor
|
|
@@ -142,6 +144,13 @@ Clicking a tool, skill, or file jumps to a list of every session that used it. T
|
|
|
142
144
|
chart can be scoped to one directory with the "md files directory" filter (the common path prefix
|
|
143
145
|
is stripped from the dropdown labels, and paths under `/private` are excluded).
|
|
144
146
|
|
|
147
|
+
The persistent filter bar also has multi-select "directories", "skills", and "integrations (MCP)"
|
|
148
|
+
controls. Each lets you pick several values at once — matching sessions with _any_ of the selected
|
|
149
|
+
values in that category (OR) — and the categories combine with every other filter, including each
|
|
150
|
+
other, with AND (e.g. directory X or Y, AND skill A or B). The "integrations (MCP)" list is derived
|
|
151
|
+
from the data itself: it parses the `mcp__<server>__<tool>` naming convention on recorded tool
|
|
152
|
+
calls and lists every distinct MCP server actually seen, with no hardcoded set of servers.
|
|
153
|
+
|
|
145
154
|
A context breakdown widget splits recorded payload size (and, for imported Claude sessions, token
|
|
146
155
|
usage) into four buckets: MCP server calls, markdown file reads, bloatware (skill loads and
|
|
147
156
|
lifecycle/hook noise), and actual value (real tool calls and conversation turns). It appears on the
|
|
@@ -180,18 +189,22 @@ npm install
|
|
|
180
189
|
npm run build
|
|
181
190
|
```
|
|
182
191
|
|
|
192
|
+
Every pull request must reference an existing issue. If no issue exists, open one first, then link it in the pull request body with `Closes #<issue>`. CI enforces this on every pull request; bot PRs are skipped, and maintainers can bypass with the `no-issue` label.
|
|
193
|
+
|
|
183
194
|
Before opening a pull request, run the full check suite:
|
|
184
195
|
|
|
185
196
|
```bash
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
197
|
+
nub run build
|
|
198
|
+
nub run typecheck
|
|
199
|
+
nub run format
|
|
200
|
+
nub run lint
|
|
201
|
+
nub run duplicates:ci
|
|
202
|
+
nub run knip:ci
|
|
203
|
+
nub run test:ci
|
|
193
204
|
```
|
|
194
205
|
|
|
206
|
+
The same scripts also work with `npm run <script>`.
|
|
207
|
+
|
|
195
208
|
See [docs/CONTRIBUTING.md](docs/CONTRIBUTING.md) for details.
|
|
196
209
|
|
|
197
210
|
## Documentation
|
package/assets/help.md
CHANGED
|
@@ -1,20 +1,16 @@
|
|
|
1
1
|
# happenin
|
|
2
2
|
|
|
3
|
-
A
|
|
3
|
+
A CLI that records Cursor and Claude Code agent events to a local SQLite database and serves a live browser dashboard.
|
|
4
4
|
|
|
5
5
|
## Commands
|
|
6
6
|
|
|
7
7
|
### `happenin install [--cursor] [--claude]`
|
|
8
8
|
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
runs through npx, hooks are written as `npx -y happenin` commands so they keep working without a
|
|
12
|
-
global install.
|
|
9
|
+
Shows how to install the packaged Cursor and Claude Code plugins without changing user config files.
|
|
10
|
+
The plugin hooks use `npx -y happenin`, so they work with the trial and global-install flows.
|
|
13
11
|
|
|
14
|
-
- `--cursor` —
|
|
15
|
-
- `--claude` —
|
|
16
|
-
|
|
17
|
-
By default both are installed. Backups are written to `~/.happenin/backups/`.
|
|
12
|
+
- `--cursor` — show Cursor setup only.
|
|
13
|
+
- `--claude` — show Claude Code setup only.
|
|
18
14
|
|
|
19
15
|
### `happenin record <source> [event]`
|
|
20
16
|
|