Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

12 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿงฐ jay-plugin

Jay's Claude Code toolbox โ€” a personal collection of hooks, commands, skills, and agents for everyday Claude Code workflows, packaged as a single plugin so every machine stays in sync.

Instead of copying install scripts between machines, register the marketplace once and sync everything with git push โ†’ plugin update.

English | ํ•œ๊ตญ์–ด

Installation

/plugin marketplace add jyh4358/jay-plugin
/plugin install jay-plugin@jay-plugin

โš ๏ธ If you previously installed these hooks manually, remove the old entries (Stop hooks in ~/.claude/settings.json and ~/.claude/commands/tokens.md) to avoid double execution.

Requirements: Python 3.9+ ยท macOS (for notifications only โ€” the token reporter works everywhere)

Components

Type Name Description Status
Hook (Stop) plan-usage Per-turn token usage report as a system message after every response โœ…
Hook (Stop ยท Notification) stop-notify macOS notification on response completion (Glass) and when Claude is waiting for your input โ€” permission requests, questions (Ping) โœ…
Command /tokens Ranks the current session's turns by weighted usage and explains why the heavy ones were heavy โœ…
Statusline statusline Model ยท git branch/worktree ยท 5h/weekly plan usage bars with reset timers ยท session time ยท context usage โœ…
Skill /commit Analyzes staged changes, generates a Korean Conventional-Commits message (optional Jira ID), confirms, then commits โœ…
Skill /record Records session work into the My Track Record Obsidian vault as resume-ready task notes โ€” why/how/result structure, short interview, confidentiality filter โœ…
Skill /record-review Monthly vault maintenance โ€” re-evaluates resume/impact on work notes, checks frontmatter & wikilink integrity across work/learning notes (report โ†’ confirm โ†’ apply) โœ…
Skill /learn Captures things learned mid-session (or user-specified concepts) into the vault as knowledge notes โ€” fixed frontmatter, free-form body, "why" required, fact-checked against primary sources, always-on generalization filter โœ…
Agents โ€” (planned) ๐Ÿšง

New components go into their directory (hooks/ commands/ skills/ agents/) โ€” push, then update the plugin on each machine.

plan-usage โ€” token usage reporter

Shows what every turn actually consumed, right after it finishes:

โ”โ”โ”โ”โ”โ” ์ด ํ„ด ํ”Œ๋žœ ํ† ํฐ โ”โ”โ”โ”โ”โ”
Q: ์‚ฌ์šฉํ•˜๋Š” ๋ชจ๋ธ ๊ธฐ์ค€์œผ๋กœ ์ถœ๋ ฅ๋˜๊ฒŒ ํ•  ์ˆ˜ ์žˆ์–ด?
๋ชจ๋ธ: claude-opus-5
์†Œ์ง„(์‹ ๊ทœ) ~62,948   ์žฌ์‚ฌ์šฉ(์บ์‹œ) 10,071,993   ๊ฐ€์ค‘โ‰ˆ1.21M (Opus์ž…๋ ฅ ํ™˜์‚ฐ)
  โ”œ ์ถœ๋ ฅ ์ƒ์„ฑ 24,287
  โ”” ์‹ ๊ทœ ์ž…๋ ฅ 38,661
       ์งˆ๋ฌธ+์‹œ์Šคํ…œ 3,059 / ๋„๊ตฌ๊ฒฐ๊ณผ 5,449 / ๋ฃจํ”„์žฌ์ž…๋ ฅ 30,153
  ๋„๊ตฌ๋ณ„ ์œ ์ž…(์ถ”์ •):
    Read        ~   3,644  (1ํšŒ)
์„ธ์…˜ ๋ˆ„์ : ์†Œ์ง„ ~138,536  ๊ฐ€์ค‘โ‰ˆ2.25M  (9ํ„ด)

Key concepts

  • Weighted usage โ€” a single index in Opus-input-token equivalents. Reflects model tier (haiku 0.2x / sonnet 0.4โ€“0.6x / opus 1x / fable 2x), output 5x, cache reads 0.1x โ€” a more honest proxy for plan consumption than raw token counts.
  • Subagent-aware โ€” reads agent-*.jsonl transcripts and attributes their usage to the turn that spawned them.
  • Ledger โ€” ~/.claude/token-usage/<session>.json, ~0.5 KB per turn. Stores numbers only (plus the first 200 chars of each question) โ€” never conversation content.
  • Future-proof pricing โ€” built-in table โ†’ family inference for brand-new models (opus/sonnet/haiku/fable) โ†’ user override via ~/.claude/token-usage/prices.json. No code edits when models or prices change.

CLI reference

SCRIPT=~/.claude/plugins/โ€ฆ/jay-plugin/scripts/plan_usage.py   # installed path

python3 $SCRIPT --rank <session-id>   # recomputed ranking for one session
python3 $SCRIPT --rank-all            # all sessions (--since YYYY-MM-DD / --json)
python3 $SCRIPT --log  <session-id>   # read the stored ledger
python3 $SCRIPT --repair              # reconcile ledger against transcripts (--yes to apply, keeps .bak)

Notes

  • Figures are local approximations. The authoritative plan-usage number is /usage.
  • Once Claude Code's transcript retention (default 30 days) cleans a session, recomputation (--rank/--repair) is no longer possible โ€” the ledger keeps the last known values.

statusline โ€” plan usage HUD

Model: Fable 5 | branch:main
  5h:[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]7%(4h32m) wk:[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]17%(5d15h) | session:6m | ctx:[โ–ˆโ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘โ–‘]9%

Two rows: the first holds the identity segments that vary in length (model, branch/worktree), the second the near-fixed-width numbers. A single row overflows a split pane and gets cut with ..., and wrapping it would move the segment boundaries on every refresh โ€” a fixed split keeps each value in the same place.

Renders entirely from the JSON Claude Code pipes to the statusline command โ€” no network calls, no dependencies (rate limits require a subscription/OAuth login; the segment is skipped for API-key users). Colors: green โ†’ yellow (โ‰ฅ70%) โ†’ red (โ‰ฅ90%). session is colored by elapsed time alone (โ‰ฅ60m yellow, โ‰ฅ120m red) and formatted 7m / 2h5m / 5d3h; context pressure is already reported by the ctx segment next to it. Inside a linked git worktree the branch segment becomes branch:feat-x (wt:feat-x).

Plugins can't register a statusline automatically, so add this once per machine to ~/.claude/settings.json (after installing the plugin):

"statusLine": {
  "type": "command",
  "command": "python3 \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}/plugins/marketplaces/jay-plugin/scripts/statusline.py\""
}

stop-notify โ€” macOS notifications

Two distinct sounds so you can tell them apart without looking:

Event Sound Meaning
Response finished (Stop) Glass done โ€” come check the result
Waiting for you (Notification) Ping action needed โ€” permission request, question, or idle prompt

The notification title is the session title (custom title first, then AI title).


ํ•œ๊ตญ์–ด ์•ˆ๋‚ด

Jay์˜ Claude Code ํˆด๋ฐ•์Šค โ€” ์ผ์ƒ ์›Œํฌํ”Œ๋กœ์—์„œ ๋ฐ˜๋ณตํ•ด ์“ฐ๋Š” ํ›…ยท์ปค๋งจ๋“œยท์Šคํ‚ฌยท์—์ด์ „ํŠธ๋ฅผ ํ•˜๋‚˜์˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ๋ฌถ์–ด ์—ฌ๋Ÿฌ ๋งฅ์—์„œ ๋™์ผํ•˜๊ฒŒ ์“ฐ๊ธฐ ์œ„ํ•œ ๊ฐœ์ธ ์ปฌ๋ ‰์…˜. ์ˆ˜๋™ ์„ค์น˜ ์Šคํฌ๋ฆฝํŠธ๋ฅผ ๊ธฐ๊ธฐ๋งˆ๋‹ค ์˜ฎ๊ธฐ๋Š” ๋Œ€์‹ , ๋งˆ์ผ“ํ”Œ๋ ˆ์ด์Šค ๋“ฑ๋ก ํ•œ ๋ฒˆ์œผ๋กœ ์„ค์น˜ํ•˜๊ณ  git push โ†’ ํ”Œ๋Ÿฌ๊ทธ์ธ ์—…๋ฐ์ดํŠธ๋กœ ๋ชจ๋“  ๊ธฐ๊ธฐ๋ฅผ ๋™๊ธฐํ™”ํ•œ๋‹ค.

์„ค์น˜

/plugin marketplace add jyh4358/jay-plugin
/plugin install jay-plugin@jay-plugin

โš ๏ธ ์ด์ „์— ์ˆ˜๋™์œผ๋กœ ์„ค์น˜ํ–ˆ๋˜ ๋งฅ์ด๋ผ๋ฉด ๋‹ค์Œ์„ ์ œ๊ฑฐํ•ด์•ผ ์ด์ค‘ ์‹คํ–‰๋˜์ง€ ์•Š๋Š”๋‹ค: ~/.claude/settings.json ์˜ Stop ํ›… 2๊ฐœ(plan_usage, stop-notify), ~/.claude/commands/tokens.md

๊ตฌ์„ฑ ์š”์†Œ

์ข…๋ฅ˜ ์ด๋ฆ„ ์„ค๋ช…
ํ›… (Stop) plan-usage ๋งค ํ„ด ์ข…๋ฃŒ ์‹œ ํ† ํฐ ์‚ฌ์šฉ๋Ÿ‰ ๋ฆฌํฌํŠธ๋ฅผ ์‹œ์Šคํ…œ ๋ฉ”์‹œ์ง€๋กœ ํ‘œ์‹œ
ํ›… (StopยทNotification) stop-notify ์‘๋‹ต ์™„๋ฃŒ(Glass์Œ), ์ž…๋ ฅ ๋Œ€๊ธฐ โ€” ๊ถŒํ•œ ์š”์ฒญยท์งˆ๋ฌธ โ€” ์‹œ(Ping์Œ) macOS ์•Œ๋ฆผ
์ปค๋งจ๋“œ /tokens ํ˜„์žฌ ์„ธ์…˜์˜ ๊ฐ€์ค‘ ์‚ฌ์šฉ๋Ÿ‰ ๋žญํ‚น + ์™œ ๋ฌด๊ฑฐ์› ๋Š”์ง€ ๋ถ„์„
์ƒํƒœ์ค„ statusline ๋ชจ๋ธ ยท git ๋ธŒ๋žœ์น˜/์›ŒํฌํŠธ๋ฆฌ ยท 5h/์ฃผ๊ฐ„ ํ”Œ๋žœ ์‚ฌ์šฉ๋Ÿ‰ ๋ง‰๋Œ€(๋ฆฌ์…‹ ํƒ€์ด๋จธ) ยท ์„ธ์…˜ ์‹œ๊ฐ„ ยท ์ปจํ…์ŠคํŠธ ์‚ฌ์šฉ๋ฅ  ํ‘œ์‹œ
์Šคํ‚ฌ /commit ๋ณ€๊ฒฝ์‚ฌํ•ญ ๋ถ„์„ โ†’ Conventional Commits ํ•œ๊ตญ์–ด ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ƒ์„ฑ(Jira ID ์ง€์›) โ†’ ํ™•์ธ ํ›„ ์ปค๋ฐ‹
์Šคํ‚ฌ /record ์„ธ์…˜์—์„œ ํ•œ ์ž‘์—…์„ Obsidian vault(My Track Record)์— ๋ฌด์—‡์„/์™œ/์–ด๋–ป๊ฒŒ/์„ฑ๊ณผ ๊ตฌ์กฐ์˜ ์ž‘์—… ๋…ธํŠธ๋กœ ๊ธฐ๋ก โ€” ๋ถ€์กฑํ•œ ๋งฅ๋ฝ ์ธํ„ฐ๋ทฐ + ํšŒ์‚ฌ ๊ธฐ๋ฐ€ ๋ณด์•ˆ ํ•„ํ„ฐ
์Šคํ‚ฌ /record-review vault ์›”๊ฐ„ ์ ๊ฒ€ โ€” ์ž‘์—… ๋…ธํŠธ resumeยทimpact ์žฌํ‰๊ฐ€, ์ž‘์—…ยทํ•™์Šต ๋…ธํŠธ frontmatterยทwikilink ๋ฌด๊ฒฐ์„ฑ ์ ๊ฒ€ (๋ฆฌํฌํŠธ โ†’ ํ™•์ธ โ†’ ๋ฐ˜์˜)
์Šคํ‚ฌ /learn ์„ธ์…˜ ์ค‘ ์ƒˆ๋กœ ์•Œ๊ฒŒ ๋œ ๊ฒƒยท๊ฐœ๋… ์ •๋ฆฌ๋ฅผ ํ•™์Šต ๋…ธํŠธ๋กœ ๊ธฐ๋ก โ€” frontmatter ๊ณ ์ • + ๋ณธ๋ฌธ ์ž์œ , '์™œ/์›๋ฆฌ' ํ•„์ˆ˜, 1์ฐจ ์ถœ์ฒ˜ ๊ฒ€์ฆ(ํ‹€๋ฆฐ ์ง€์‹์€ ์ˆ˜์ •ํ•˜์—ฌ ๊ธฐ๋ก), ์ผ๋ฐ˜ํ™” ํ•„ํ„ฐ ์ƒ์‹œ ์ ์šฉ

์ฃผ์š” ๊ฐœ๋…

  • ๊ฐ€์ค‘ ์‚ฌ์šฉ๋Ÿ‰: Opus ์ž…๋ ฅ ํ† ํฐ์œผ๋กœ ํ™˜์‚ฐํ•œ ๋‹จ์ผ ์ง€์ˆ˜. ๋ชจ๋ธ ํ‹ฐ์–ด(haiku 0.2x / sonnet 0.4~0.6x / opus 1x / fable 2x), ์ถœ๋ ฅ 5x, ์บ์‹œ์ฝ๊ธฐ 0.1x ๋ฐ˜์˜.
  • ์„œ๋ธŒ์—์ด์ „ํŠธ ํฌํ•จ: agent-*.jsonl ์„ ์ฝ์–ด ๊ฐ ํ„ด์— ์‹œ๊ฐ ๊ธฐ์ค€์œผ๋กœ ๊ท€์†.
  • ์žฅ๋ถ€: ~/.claude/token-usage/<์„ธ์…˜ID>.json โ€” ํ„ด๋‹น ~0.5KB ์š”์•ฝ๋งŒ ์ €์žฅ (๋Œ€ํ™” ๋ณธ๋ฌธ ์—†์Œ, ์งˆ๋ฌธ ์•ž 200์ž๋งŒ).
  • ๋‹จ๊ฐ€(๊ฐ€์ค‘์น˜ ์›์ฒœ): ๋‚ด์žฅ ํ‘œ โ†’ ๊ณ„์—ด ์ถ”์ • โ†’ ~/.claude/token-usage/prices.json ์˜ค๋ฒ„๋ผ์ด๋“œ ์ˆœ. ์ƒˆ ๋ชจ๋ธ์ด ๋‚˜์™€๋„ ๊ณ„์—ด๋กœ ์ž๋™ ์ถ”์ •ํ•˜๊ณ , ๊ฐ€๊ฒฉ์ด ๋‹ค๋ฅด๋ฉด prices.json ์— ํ•œ ์ค„ ์ถ”๊ฐ€.

์ฃผ์˜

  • ์ˆ˜์น˜๋Š” ๋กœ์ปฌ ๊ทผ์‚ฌ์น˜๋‹ค. ํ”Œ๋žœ ์‹ค์ œ ์†Œ์ง„์œจ์˜ ๊ถŒ์œ„๊ฐ’์€ /usage.
  • transcript(~/.claude/projects/**)๊ฐ€ ๋ณด์กด ๊ธฐ๊ฐ„(๊ธฐ๋ณธ 30์ผ)์œผ๋กœ ์ •๋ฆฌ๋˜๋ฉด ํ•ด๋‹น ์„ธ์…˜์˜ ์žฌ๊ณ„์‚ฐ์€ ๋ถˆ๊ฐ€๋Šฅํ•ด์ง€๊ณ , ์žฅ๋ถ€์˜ ๊ธฐ์กด ๊ฐ’๋งŒ ๋‚จ๋Š”๋‹ค.

License

MIT

About

๐Ÿงฐ Jay's Claude Code toolbox โ€” hooks, commands, skills & agents

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages