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.
@@ -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
+ }
@@ -0,0 +1,11 @@
1
+ {
2
+ "name": "happenin",
3
+ "owner": { "name": "Yogev Boaron Ben-Har" },
4
+ "plugins": [
5
+ {
6
+ "name": "happenin",
7
+ "source": "./plugins/cursor",
8
+ "description": "Record local Cursor agent events for the happenin dashboard."
9
+ }
10
+ ]
11
+ }
package/README.md CHANGED
@@ -5,19 +5,19 @@
5
5
  [![Contributor Covenant](https://img.shields.io/badge/Contributor%20Covenant-v3.0%20adopted-ff69b4.svg)](docs/CODE_OF_CONDUCT.md)
6
6
  [![PRs Welcome](https://img.shields.io/badge/PRs-welcome-brightgreen.svg)](http://makeapullrequest.com)
7
7
 
8
- A macOS CLI that records Cursor and Claude Code agent events to a local SQLite database and serves a live browser dashboard.
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
  ![happenin dashboard](docs/dashboard.gif)
11
11
 
12
12
  ## Try it
13
13
 
14
14
  ```bash
15
- npx -y happenin install # add record hooks to Cursor and Claude Code
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: hooks installed this way run through `npx`. For a permanent setup, use the [global install](#install).
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
- # Install hooks into Cursor and Claude Code (backs up existing configs)
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
- Backs up and appends `happenin record` hooks to `~/.cursor/hooks.json` and `~/.claude/settings.json`. Backups are written to `~/.happenin/backups/`. Re-running `install` replaces the previous `happenin` hooks instead of duplicating them, and hooks installed through `npx -y happenin install` are written as `npx -y happenin` commands so they keep working without a global install.
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
- npm run build
187
- npm run typecheck
188
- npm run format
189
- npm run lint
190
- npm run duplicates:ci
191
- npm run knip:ci
192
- npm run test:ci
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 macOS CLI that records Cursor and Claude Code agent events to a local SQLite database and serves a live browser dashboard.
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
- Backs up and appends `happenin record` hooks to your Cursor and Claude Code configuration files.
10
- Re-running install replaces previous happenin hooks instead of duplicating them. When happenin
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` — install Cursor hooks only.
15
- - `--claude` — install Claude Code hooks only.
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