oh-my-claude-sisyphus 3.5.6 → 3.5.8

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 (79) hide show
  1. package/README.md +58 -343
  2. package/commands/omc-setup.md +51 -0
  3. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts +2 -0
  4. package/dist/__tests__/analytics/tokscale-adapter.test.d.ts.map +1 -0
  5. package/dist/__tests__/analytics/tokscale-adapter.test.js +79 -0
  6. package/dist/__tests__/analytics/tokscale-adapter.test.js.map +1 -0
  7. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts +7 -0
  8. package/dist/__tests__/hooks/auto-slash-command/executor.test.d.ts.map +1 -0
  9. package/dist/__tests__/hooks/auto-slash-command/executor.test.js +374 -0
  10. package/dist/__tests__/hooks/auto-slash-command/executor.test.js.map +1 -0
  11. package/dist/__tests__/hooks/learner/bridge.test.d.ts +11 -0
  12. package/dist/__tests__/hooks/learner/bridge.test.d.ts.map +1 -0
  13. package/dist/__tests__/hooks/learner/bridge.test.js +199 -0
  14. package/dist/__tests__/hooks/learner/bridge.test.js.map +1 -0
  15. package/dist/__tests__/installer.test.js +1 -1
  16. package/dist/analytics/cost-estimator.d.ts +14 -0
  17. package/dist/analytics/cost-estimator.d.ts.map +1 -1
  18. package/dist/analytics/cost-estimator.js +65 -0
  19. package/dist/analytics/cost-estimator.js.map +1 -1
  20. package/dist/analytics/index.d.ts +1 -0
  21. package/dist/analytics/index.d.ts.map +1 -1
  22. package/dist/analytics/index.js +4 -0
  23. package/dist/analytics/index.js.map +1 -1
  24. package/dist/analytics/query-engine.d.ts +3 -0
  25. package/dist/analytics/query-engine.d.ts.map +1 -1
  26. package/dist/analytics/query-engine.js +87 -0
  27. package/dist/analytics/query-engine.js.map +1 -1
  28. package/dist/analytics/token-tracker.d.ts +3 -0
  29. package/dist/analytics/token-tracker.d.ts.map +1 -1
  30. package/dist/analytics/token-tracker.js +89 -0
  31. package/dist/analytics/token-tracker.js.map +1 -1
  32. package/dist/analytics/tokscale-adapter.d.ts +71 -0
  33. package/dist/analytics/tokscale-adapter.d.ts.map +1 -0
  34. package/dist/analytics/tokscale-adapter.js +223 -0
  35. package/dist/analytics/tokscale-adapter.js.map +1 -0
  36. package/dist/analytics/types.d.ts +17 -0
  37. package/dist/analytics/types.d.ts.map +1 -1
  38. package/dist/analytics/types.js +5 -0
  39. package/dist/analytics/types.js.map +1 -1
  40. package/dist/cli/analytics.js +35 -0
  41. package/dist/cli/analytics.js.map +1 -1
  42. package/dist/cli/commands/agents.d.ts.map +1 -1
  43. package/dist/cli/commands/agents.js +4 -2
  44. package/dist/cli/commands/agents.js.map +1 -1
  45. package/dist/cli/commands/stats.d.ts.map +1 -1
  46. package/dist/cli/commands/stats.js +6 -1
  47. package/dist/cli/commands/stats.js.map +1 -1
  48. package/dist/cli/index.js +95 -35
  49. package/dist/cli/index.js.map +1 -1
  50. package/dist/cli/utils/tokscale-launcher.d.ts +18 -0
  51. package/dist/cli/utils/tokscale-launcher.d.ts.map +1 -0
  52. package/dist/cli/utils/tokscale-launcher.js +64 -0
  53. package/dist/cli/utils/tokscale-launcher.js.map +1 -0
  54. package/dist/features/auto-update.js +5 -5
  55. package/dist/features/auto-update.js.map +1 -1
  56. package/dist/hooks/learner/bridge.d.ts +71 -0
  57. package/dist/hooks/learner/bridge.d.ts.map +1 -0
  58. package/dist/hooks/learner/bridge.js +426 -0
  59. package/dist/hooks/learner/bridge.js.map +1 -0
  60. package/dist/hooks/skill-bridge.cjs +349 -0
  61. package/dist/hud/types.d.ts +6 -2
  62. package/dist/hud/types.d.ts.map +1 -1
  63. package/dist/hud/types.js.map +1 -1
  64. package/dist/hud/usage-api.d.ts.map +1 -1
  65. package/dist/hud/usage-api.js +13 -1
  66. package/dist/hud/usage-api.js.map +1 -1
  67. package/dist/installer/index.d.ts +1 -1
  68. package/dist/installer/index.js +1 -1
  69. package/docs/ARCHITECTURE.md +80 -397
  70. package/docs/FEATURES.md +396 -1981
  71. package/docs/MIGRATION.md +4 -4
  72. package/docs/REFERENCE.md +545 -0
  73. package/docs/SYNC-SYSTEM.md +6 -6
  74. package/package.json +5 -2
  75. package/scripts/build-skill-bridge.mjs +32 -0
  76. package/scripts/skill-injector.mjs +77 -26
  77. package/scripts/sync-metadata.ts +2 -2
  78. package/skills/omc-setup/SKILL.md +51 -0
  79. package/docs/FULL-README.md +0 -1001
package/README.md CHANGED
@@ -11,407 +11,122 @@
11
11
 
12
12
  **Multi-agent orchestration for Claude Code. Zero learning curve.**
13
13
 
14
- *Some advanced users customize zsh for years — most of us just use oh-my-zsh.*
15
14
  *Don't learn Claude Code. Just use OMC.*
16
15
 
17
- [Get Started](#get-started) • [Documentation](https://yeachan-heo.github.io/oh-my-claudecode-website) • [Migration Guide](docs/MIGRATION.md)
16
+ [Get Started](#quick-start) • [Documentation](https://yeachan-heo.github.io/oh-my-claudecode-website) • [Migration Guide](docs/MIGRATION.md)
18
17
 
19
18
  </div>
20
19
 
21
20
  ---
22
21
 
23
- ## Get Started (30 seconds)
22
+ ## Quick Start
24
23
 
25
- **Step 1:** Install the plugin
26
- ```
24
+ **Step 1: Install**
25
+ ```bash
27
26
  /plugin marketplace add https://github.com/Yeachan-Heo/oh-my-claudecode
28
27
  /plugin install oh-my-claudecode
29
28
  ```
30
29
 
31
- **Step 2:** Run setup
32
- ```
30
+ **Step 2: Setup**
31
+ ```bash
33
32
  /oh-my-claudecode:omc-setup
34
33
  ```
35
34
 
36
- That's it. Everything else is automatic.
37
-
38
- ---
39
-
40
- ## What Happens Now
41
-
42
- | When You... | I Automatically... |
43
- |-------------|-------------------|
44
- | Give me a complex task | Parallelize with specialist agents |
45
- | Say "plan this" | Start a planning interview |
46
- | Say "don't stop until done" | Persist until verified complete |
47
- | Work on UI/frontend | Activate design sensibility |
48
- | Need research or exploration | Delegate to specialized agents |
49
- | Say "build me..." or use autopilot | Execute full autonomous workflow |
50
-
51
- **You don't need to memorize commands.** I detect intent from natural language and activate the right behaviors automatically.
52
-
53
- ---
54
-
55
- ## Magic Keywords (Optional Shortcuts)
56
-
57
- These are **optional shortcuts** for power users who want explicit control. Natural language works just fine - these keywords simply provide precision when you want it.
58
-
59
- Include these words anywhere in your message:
60
-
61
- | Keyword | Effect |
62
- |---------|--------|
63
- | `ralph` | Persistence mode - won't stop until done |
64
- | `ralplan` | Iterative planning with consensus |
65
- | `ulw` / `ultrawork` | Maximum parallel execution |
66
- | `ultrapilot` | Parallel autopilot (3-5x faster) |
67
- | `swarm` | N coordinated agents |
68
- | `pipeline` | Sequential agent chaining |
69
- | `eco` / `ecomode` | Token-efficient parallel execution |
70
- | `plan` | Start a planning interview |
71
- | `autopilot` / `ap` | Full autonomous execution |
72
-
73
- **Combine them:** `ralph ulw: migrate the database` or `eco: refactor auth system`
74
-
75
- ---
76
-
77
- ## Execution Modes (v3.4.0)
78
-
79
- ### Ultrapilot: Parallel Autopilot
80
-
81
- 3-5x faster execution with up to 5 parallel workers. Perfect for multi-component systems and large refactoring:
82
-
83
- ```
84
- /oh-my-claudecode:ultrapilot "build a fullstack todo app"
85
- ```
86
-
87
- **How it works:**
88
- - Automatic task decomposition into parallelizable subtasks
89
- - Non-overlapping file ownership prevents conflicts
90
- - Parallel execution with intelligent coordination
91
- - Automatic conflict detection and resolution
92
-
93
- ---
94
-
95
- ### Swarm: Coordinated Agents
96
-
97
- N independent agents claiming tasks from a shared pool:
98
-
99
- ```
100
- /oh-my-claudecode:swarm 5:executor "fix all TypeScript errors"
101
- ```
102
-
103
- **Features:**
104
- - Atomic task claiming prevents duplicate work
105
- - 5-minute timeout per task with auto-release
106
- - Scales from 2 to 10 workers
107
-
108
- ---
109
-
110
- ### Pipeline: Sequential Chaining
111
-
112
- Chain agents together with data passing between stages:
113
-
114
- ```
115
- /oh-my-claudecode:pipeline explore:haiku -> architect:opus -> executor:sonnet
116
- ```
117
-
118
- **Built-in Presets:**
119
- - `review` - explore → architect → critic → executor
120
- - `implement` - planner → executor → tdd-guide
121
- - `debug` - explore → architect → build-fixer
122
- - `security` - explore → security-reviewer → executor
123
-
124
- ---
125
-
126
- ### Ecomode: Token-Efficient
127
-
128
- Maximum parallelism with Haiku where possible, falling back to Sonnet/Opus for complex reasoning:
129
-
130
- ```
131
- /oh-my-claudecode:ecomode "refactor the authentication system"
132
- ```
133
-
134
- **30-50% token savings** compared to standard ultrawork while maintaining quality.
135
-
136
- ---
137
-
138
- ## Auto Skill Learning (v3.5.0)
139
-
140
- OMC can automatically detect patterns in your problem-solving and suggest extracting them as reusable skills.
141
-
142
- ### How It Works
143
-
144
- 1. **Pattern Detection** - Recognizes problem-solution pairs in conversations
145
- 2. **Skill Extraction** - `/oh-my-claudecode:learner` extracts reusable knowledge
146
- 3. **Auto-Matching** - Fuzzy matching detects when skills apply to new problems
147
- 4. **Auto-Invocation** - High-confidence matches (80+) auto-apply without prompting
148
-
149
- ### Managing Local Skills
150
-
151
- ```
152
- /oh-my-claudecode:skill list # List all learned skills
153
- /oh-my-claudecode:skill search "auth" # Find skills by keyword
154
- /oh-my-claudecode:skill edit <name> # Edit a skill
155
- /oh-my-claudecode:skill sync # Sync user + project skills
156
- ```
157
-
158
- ### Skill Storage
159
-
160
- - **User-level**: `~/.claude/skills/sisyphus-learned/` (shared across projects)
161
- - **Project-level**: `.omc/skills/` (project-specific)
162
-
163
- Skills use YAML frontmatter with triggers, tags, and quality scores.
164
-
165
- ---
166
-
167
- ## Analytics & Cost Tracking (v3.5.0)
168
-
169
- Track your Claude Code usage across all sessions with automatic transcript analysis.
170
-
171
- ### Backfill Historical Data
172
-
173
- ```
174
- omc backfill # Analyze all transcripts
175
- omc backfill --from 2026-01-01 # From specific date
176
- omc backfill --project "*/myproject/*" # Filter by project
177
- ```
178
-
179
- ### View Statistics
180
-
181
- ```
182
- omc stats # All sessions aggregate
183
- omc stats --session # Current session only
184
- omc stats --json # JSON output
185
- ```
186
-
187
- **Sample Output:**
188
- ```
189
- 📊 All Sessions Stats
190
- Sessions: 18
191
- Entries: 3356
192
-
193
- 💰 Token Usage & Cost
194
- Total Tokens: 4.36M
195
- Total Cost: $2620.49
196
-
197
- 🤖 Top Agents by Cost (All Sessions)
198
- (main session) 700.7k tokens $1546.46
199
- oh-my-claudecode:architect 1.18M tokens $432.68
200
- oh-my-claudecode:planner 540.9k tokens $274.85
201
- oh-my-claudecode:executor 306.9k tokens $77.43
202
- ```
203
-
204
- **Features:**
205
- - Automatic backfill on first `omc stats` run
206
- - Global storage in `~/.omc/state/` (cross-project)
207
- - Proper agent attribution (main session vs spawned agents)
208
- - Deduplication prevents double-counting
209
-
210
- ---
211
-
212
- ## Data Analysis & Research (v3.4.0)
213
-
214
- ### Scientist Agent Tiers
215
-
216
- Three tiers of scientist agents for quantitative analysis and data science:
217
-
218
- | Agent | Model | Use For |
219
- |-------|-------|---------|
220
- | `scientist-low` | Haiku | Quick data inspection, simple statistics, file enumeration |
221
- | `scientist` | Sonnet | Standard analysis, pattern detection, visualization |
222
- | `scientist-high` | Opus | Complex reasoning, hypothesis validation, ML workflows |
223
-
224
- **Features:**
225
- - **Persistent Python REPL** - Variables persist across calls (no pickle/reload overhead)
226
- - **Structured markers** - `[FINDING]`, `[STAT:*]`, `[DATA]`, `[LIMITATION]` for parsed output
227
- - **Quality gates** - Every finding requires statistical evidence (CI, effect size, p-value)
228
- - **Auto-visualization** - Charts saved to `.omc/scientist/figures/`
229
- - **Report generation** - Markdown reports with embedded figures
230
-
231
- ```python
232
- # Variables persist across calls!
233
- python_repl(action="execute", researchSessionID="analysis",
234
- code="import pandas as pd; df = pd.read_csv('data.csv')")
235
-
236
- # df still exists - no need to reload
237
- python_repl(action="execute", researchSessionID="analysis",
238
- code="print(df.describe())")
239
- ```
240
-
241
- ### /oh-my-claudecode:research Command (NEW)
242
-
243
- Orchestrate parallel scientist agents for comprehensive research workflows:
244
-
245
- ```
246
- /oh-my-claudecode:research <goal> # Standard research with checkpoints
247
- /oh-my-claudecode:research AUTO: <goal> # Fully autonomous until complete
248
- /oh-my-claudecode:research status # Check current session
249
- /oh-my-claudecode:research resume # Resume interrupted session
250
- /oh-my-claudecode:research list # List all sessions
251
- /oh-my-claudecode:research report <session-id> # Generate report for session
252
- ```
253
-
254
- **Research Protocol:**
255
- 1. **Decomposition** - Breaks goal into 3-7 independent stages
256
- 2. **Parallel Execution** - Fires scientist agents concurrently (max 5)
257
- 3. **Cross-Validation** - Verifies consistency across findings
258
- 4. **Synthesis** - Generates comprehensive markdown report
259
-
260
- **Smart Model Routing:**
261
- - Data gathering tasks → `scientist-low` (Haiku)
262
- - Standard analysis → `scientist` (Sonnet)
263
- - Complex reasoning → `scientist-high` (Opus)
264
-
265
- **Session Management:** Research state persists at `.omc/research/{session-id}/` enabling resume after interruption.
266
-
267
- ---
268
-
269
- ## Stopping Things
270
-
271
- Just say:
272
- - "stop"
273
- - "cancel"
274
- - "abort"
275
-
276
- I'll intelligently determine what to stop based on context.
277
-
278
- ---
279
-
280
- ## MCP Server Configuration
281
-
282
- Extend Claude Code with additional tools via Model Context Protocol (MCP) servers.
283
-
284
- ```
285
- /oh-my-claudecode:mcp-setup
286
- ```
287
-
288
- ### Supported MCP Servers
289
-
290
- | Server | Description | API Key Required |
291
- |--------|-------------|------------------|
292
- | **Context7** | Documentation and code context from popular libraries | No |
293
- | **Exa** | Enhanced web search (replaces built-in websearch) | Yes |
294
- | **Filesystem** | Extended file system access | No |
295
- | **GitHub** | GitHub API for issues, PRs, repos | Yes (PAT) |
296
-
297
- ### Quick Setup
298
-
299
- Run the setup command and follow the prompts:
300
- ```
301
- /oh-my-claudecode:mcp-setup
35
+ **Step 3: Build something**
302
36
  ```
303
-
304
- Or configure manually in `~/.claude/settings.json`:
305
- ```json
306
- {
307
- "mcpServers": {
308
- "context7": {
309
- "command": "npx",
310
- "args": ["-y", "@upstash/context7-mcp"]
311
- },
312
- "exa": {
313
- "command": "npx",
314
- "args": ["-y", "exa-mcp-server"],
315
- "env": {
316
- "EXA_API_KEY": "your-key-here"
317
- }
318
- }
319
- }
320
- }
37
+ autopilot: build a REST API for managing tasks
321
38
  ```
322
39
 
323
- After configuration, restart Claude Code for changes to take effect.
40
+ That's it. Everything else is automatic.
324
41
 
325
42
  ---
326
43
 
327
- ## What's Under the Hood
44
+ ## Why oh-my-claudecode?
328
45
 
329
- - **32 Specialized Agents** - architect, researcher, explore, designer, writer, vision, critic, analyst, executor, planner, qa-tester, scientist (with tier variants including explore-high)
330
- - **40 Skills** - orchestrate, autopilot, ultrawork, ultrapilot, swarm, pipeline, ecomode, ralph, planner, ralplan, deepsearch, analyze, research, tdd, build-fix, code-review, security-review, git-master, frontend-ui-ux, learner, mcp-setup, cancel (unified), and more
331
- - **5 Execution Modes** - Autopilot (autonomous), Ultrapilot (3-5x parallel), Swarm (coordinated), Pipeline (sequential), Ecomode (token-efficient)
332
- - **MCP Server Support** - Easy configuration of Context7, Exa, GitHub, and custom MCP servers
333
- - **Persistent Python REPL** - True variable persistence for data analysis
334
- - **Research Workflow** - Parallel scientist orchestration with `/oh-my-claudecode:research` command
335
- - **HUD Statusline** - Real-time visualization of orchestration state
336
- - **Learned Skills** - Extract reusable insights from sessions with `/oh-my-claudecode:learner`
337
- - **Memory System** - Persistent context that survives compaction
46
+ - **Zero configuration required** - Works out of the box with intelligent defaults
47
+ - **Natural language interface** - No commands to memorize, just describe what you want
48
+ - **Automatic parallelization** - Complex tasks distributed across specialized agents
49
+ - **Persistent execution** - Won't give up until the job is verified complete
50
+ - **Cost optimization** - Smart model routing saves 30-50% on tokens
51
+ - **Learn from experience** - Automatically extracts and reuses problem-solving patterns
52
+ - **Real-time visibility** - HUD statusline shows what's happening under the hood
338
53
 
339
54
  ---
340
55
 
341
- ## HUD Statusline
56
+ ## Features
342
57
 
343
- The HUD displays real-time orchestration status in Claude Code's status bar:
58
+ ### Execution Modes
59
+ Multiple strategies for different use cases - from fully autonomous builds to token-efficient refactoring. [Learn more →](https://yeachan-heo.github.io/oh-my-claudecode-website/execution-modes)
344
60
 
345
- ```
346
- [OMC] | 5h:0% wk:100%(1d6h) | ctx:45% | agents:Ae
347
- todos:3/5 (working: Implementing feature)
348
- ```
61
+ | Mode | Speed | Use For |
62
+ |------|-------|---------|
63
+ | **Autopilot** | Fast | Full autonomous workflows |
64
+ | **Ultrapilot** | 3-5x faster | Multi-component systems |
65
+ | **Ecomode** | Fast + 30-50% cheaper | Budget-conscious projects |
66
+ | **Swarm** | Coordinated | Parallel independent tasks |
67
+ | **Pipeline** | Sequential | Multi-stage processing |
349
68
 
350
- **Line 1:** Core metrics
351
- - Rate limits with reset times (e.g., `wk:100%(1d6h)` = resets in 1 day 6 hours)
352
- - Context window usage
353
- - Active agents (coded by type and model tier)
69
+ ### Intelligent Orchestration
70
+ - **32 specialized agents** for architecture, research, design, testing, data science
71
+ - **Smart model routing** - Haiku for simple tasks, Opus for complex reasoning
72
+ - **Automatic delegation** - Right agent for the job, every time
354
73
 
355
- **Line 2:** Todo progress
356
- - Completion ratio (`3/5`)
357
- - Current task in progress
74
+ ### Developer Experience
75
+ - **Magic keywords** - `ralph`, `ulw`, `eco`, `plan` for explicit control
76
+ - **HUD statusline** - Real-time orchestration metrics in your status bar
77
+ - **Skill learning** - Extract reusable patterns from your sessions
78
+ - **Analytics & cost tracking** - Understand token usage across all sessions
358
79
 
359
- Run `/oh-my-claudecode:hud setup` to configure display options.
80
+ [Full feature list →](docs/REFERENCE.md)
360
81
 
361
82
  ---
362
83
 
363
- ## Coming from 2.x?
84
+ ## Magic Keywords
364
85
 
365
- **Good news:** Your old commands still work!
86
+ Optional shortcuts for power users. Natural language works fine without them.
366
87
 
367
- ```
368
- /oh-my-claudecode:ralph "task" → Still works (or just say "ralph: task")
369
- /oh-my-claudecode:ultrawork "task" → Still works (or just use "ulw" keyword)
370
- /oh-my-claudecode:planner "task" → Still works (or just say "plan this")
371
- ```
88
+ | Keyword | Effect | Example |
89
+ |---------|--------|---------|
90
+ | `autopilot` | Full autonomous execution | `autopilot: build a todo app` |
91
+ | `ralph` | Persistence mode | `ralph: refactor auth` |
92
+ | `ulw` | Maximum parallelism | `ulw fix all errors` |
93
+ | `eco` | Token-efficient execution | `eco: migrate database` |
94
+ | `plan` | Planning interview | `plan the API` |
372
95
 
373
- The difference? You don't *need* them anymore. Everything auto-activates.
374
-
375
- See the [Migration Guide](docs/MIGRATION.md) for details.
96
+ **Combine them:** `ralph ulw: migrate database` = persistence + parallelism
376
97
 
377
98
  ---
378
99
 
379
100
  ## Documentation
380
101
 
381
- - [Full Reference](docs/FULL-README.md) - Complete documentation (800+ lines)
382
- - [Migration Guide](docs/MIGRATION.md) - 2.x to 3.0 transition
383
- - [Architecture](docs/ARCHITECTURE.md) - Technical deep-dive
384
- - [Website](https://yeachan-heo.github.io/oh-my-claudecode-website) - Online docs
102
+ - **[Full Reference](docs/REFERENCE.md)** - Complete feature documentation
103
+ - **[Website](https://yeachan-heo.github.io/oh-my-claudecode-website)** - Interactive guides and examples
104
+ - **[Migration Guide](docs/MIGRATION.md)** - Upgrade from v2.x
105
+ - **[Architecture](docs/ARCHITECTURE.md)** - How it works under the hood
385
106
 
386
107
  ---
387
108
 
388
109
  ## Requirements
389
110
 
390
111
  - [Claude Code](https://docs.anthropic.com/claude-code) CLI
391
- - One of:
392
- - **Claude Max/Pro subscription** (recommended for individuals)
393
- - **Anthropic API key** (for API-based usage)
394
-
395
- ---
396
-
397
- ## Star History
398
-
399
- [![Star History Chart](https://api.star-history.com/svg?repos=Yeachan-Heo/oh-my-claudecode&type=Date)](https://star-history.com/#Yeachan-Heo/oh-my-claudecode&Date)
112
+ - Claude Max/Pro subscription OR Anthropic API key
400
113
 
401
114
  ---
402
115
 
403
116
  ## License
404
117
 
405
- MIT - see [LICENSE](LICENSE)
118
+ MIT
406
119
 
407
120
  ---
408
121
 
409
122
  <div align="center">
410
123
 
411
- **Inspired by:**
412
-
413
- [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) • [claude-hud](https://github.com/ryanjoachim/claude-hud) • [Superpowers](https://github.com/NexTechFusion/Superpowers) • [everything-claude-code](https://github.com/affaan-m/everything-claude-code)
124
+ **Inspired by:** [oh-my-opencode](https://github.com/code-yeongyu/oh-my-opencode) • [claude-hud](https://github.com/ryanjoachim/claude-hud) • [Superpowers](https://github.com/NexTechFusion/Superpowers) • [everything-claude-code](https://github.com/affaan-m/everything-claude-code)
414
125
 
415
126
  **Zero learning curve. Maximum power.**
416
127
 
417
128
  </div>
129
+
130
+ ## Star History
131
+
132
+ [![Star History Chart](https://api.star-history.com/svg?repos=Yeachan-Heo/oh-my-claudecode&type=date&legend=top-left)](https://www.star-history.com/#Yeachan-Heo/oh-my-claudecode&type=date&legend=top-left)
@@ -82,6 +82,45 @@ fi
82
82
 
83
83
  **Note:** The `npm install` command triggers the `prepare` script which runs `npm run build`, creating the dist/ directory with all compiled HUD files.
84
84
 
85
+ ## Step 3.6: Install CLI Analytics Tools (Optional)
86
+
87
+ The OMC CLI provides standalone token analytics commands (`omc stats`, `omc agents`, `omc backfill`, `omc tui`).
88
+
89
+ Ask user: "Would you like to install the OMC CLI for standalone analytics? (Recommended for tracking token usage and costs)"
90
+
91
+ **Options:**
92
+ 1. **Yes (Recommended)** - Install CLI tools globally for `omc stats`, `omc agents`, etc.
93
+ 2. **No** - Skip CLI installation, use only plugin skills
94
+
95
+ ### If User Chooses YES:
96
+
97
+ ```bash
98
+ # Check for bun (preferred) or npm
99
+ if command -v bun &> /dev/null; then
100
+ echo "Installing OMC CLI via bun..."
101
+ bun install -g oh-my-claudecode
102
+ elif command -v npm &> /dev/null; then
103
+ echo "Installing OMC CLI via npm..."
104
+ npm install -g oh-my-claudecode
105
+ else
106
+ echo "ERROR: Neither bun nor npm found. Please install Node.js or Bun first."
107
+ exit 1
108
+ fi
109
+
110
+ # Verify installation
111
+ if command -v omc &> /dev/null; then
112
+ echo "✓ OMC CLI installed successfully!"
113
+ echo " Try: omc stats, omc agents, omc backfill"
114
+ else
115
+ echo "⚠ CLI installed but 'omc' not in PATH."
116
+ echo " You may need to restart your terminal or add npm/bun global bin to PATH."
117
+ fi
118
+ ```
119
+
120
+ ### If User Chooses NO:
121
+
122
+ Skip this step. User can install later with `npm install -g oh-my-claudecode`.
123
+
85
124
  ## Step 4: Verify Plugin Installation
86
125
 
87
126
  ```bash
@@ -144,6 +183,12 @@ Run /oh-my-claudecode:mcp-setup to add tools like web search, GitHub, etc.
144
183
  HUD STATUSLINE:
145
184
  The status bar now shows OMC state. Restart Claude Code to see it.
146
185
 
186
+ CLI ANALYTICS (if installed):
187
+ - omc - Full dashboard (stats + agents + cost)
188
+ - omc stats - View token usage and costs
189
+ - omc agents - See agent breakdown by cost
190
+ - omc tui - Launch interactive TUI dashboard
191
+
147
192
  That's it! Just use Claude Code normally.
148
193
  ```
149
194
 
@@ -173,6 +218,12 @@ MAGIC KEYWORDS (power-user shortcuts):
173
218
  HUD STATUSLINE:
174
219
  The status bar now shows OMC state. Restart Claude Code to see it.
175
220
 
221
+ CLI ANALYTICS (if installed):
222
+ - omc - Full dashboard (stats + agents + cost)
223
+ - omc stats - View token usage and costs
224
+ - omc agents - See agent breakdown by cost
225
+ - omc tui - Launch interactive TUI dashboard
226
+
176
227
  Your workflow won't break - it just got easier!
177
228
  ```
178
229
 
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=tokscale-adapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokscale-adapter.test.d.ts","sourceRoot":"","sources":["../../../src/__tests__/analytics/tokscale-adapter.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,79 @@
1
+ import { describe, it, expect, beforeEach } from 'vitest';
2
+ import { getTokscaleAdapter, lookupPricingWithFallback, isTokscaleAvailable, resetAdapterCache } from '../../analytics/tokscale-adapter.js';
3
+ describe('tokscale-adapter', () => {
4
+ beforeEach(() => {
5
+ // Reset the cached adapter before each test
6
+ resetAdapterCache();
7
+ });
8
+ describe('getTokscaleAdapter', () => {
9
+ it('returns adapter with isAvailable property', async () => {
10
+ const adapter = await getTokscaleAdapter();
11
+ expect(adapter).toHaveProperty('isAvailable');
12
+ expect(typeof adapter.isAvailable).toBe('boolean');
13
+ });
14
+ it('caches adapter instance', async () => {
15
+ const adapter1 = await getTokscaleAdapter();
16
+ const adapter2 = await getTokscaleAdapter();
17
+ expect(adapter1).toBe(adapter2);
18
+ });
19
+ it('returns adapter with expected properties when available', async () => {
20
+ const adapter = await getTokscaleAdapter();
21
+ // Even when unavailable, should have isAvailable property
22
+ expect(adapter).toHaveProperty('isAvailable');
23
+ });
24
+ });
25
+ describe('lookupPricingWithFallback', () => {
26
+ it('returns pricing for known models', async () => {
27
+ const pricing = await lookupPricingWithFallback('claude-sonnet-4.5');
28
+ expect(pricing).toHaveProperty('inputPerMillion');
29
+ expect(pricing).toHaveProperty('outputPerMillion');
30
+ expect(pricing.inputPerMillion).toBeGreaterThan(0);
31
+ expect(pricing.outputPerMillion).toBeGreaterThan(0);
32
+ });
33
+ it('returns pricing for haiku model', async () => {
34
+ const pricing = await lookupPricingWithFallback('claude-haiku-4');
35
+ // Tokscale returns live pricing from LiteLLM database
36
+ expect(pricing.inputPerMillion).toBeGreaterThan(0);
37
+ expect(pricing.outputPerMillion).toBeGreaterThan(0);
38
+ expect(pricing.outputPerMillion).toBeGreaterThan(pricing.inputPerMillion);
39
+ });
40
+ it('returns pricing for opus model', async () => {
41
+ const pricing = await lookupPricingWithFallback('claude-opus-4.5');
42
+ // Tokscale returns live pricing from LiteLLM database
43
+ expect(pricing.inputPerMillion).toBeGreaterThan(0);
44
+ expect(pricing.outputPerMillion).toBeGreaterThan(0);
45
+ expect(pricing.outputPerMillion).toBeGreaterThan(pricing.inputPerMillion);
46
+ });
47
+ it('returns default pricing for unknown models', async () => {
48
+ const pricing = await lookupPricingWithFallback('unknown-model-xyz');
49
+ expect(pricing).toBeDefined();
50
+ expect(pricing).toHaveProperty('inputPerMillion');
51
+ expect(pricing).toHaveProperty('outputPerMillion');
52
+ });
53
+ it('includes cache pricing fields', async () => {
54
+ const pricing = await lookupPricingWithFallback('claude-sonnet-4.5');
55
+ expect(pricing).toHaveProperty('cacheWriteMarkup');
56
+ expect(pricing).toHaveProperty('cacheReadDiscount');
57
+ });
58
+ });
59
+ describe('isTokscaleAvailable', () => {
60
+ it('returns a boolean', async () => {
61
+ const available = await isTokscaleAvailable();
62
+ expect(typeof available).toBe('boolean');
63
+ });
64
+ });
65
+ describe('resetAdapterCache', () => {
66
+ it('clears the cached adapter', async () => {
67
+ // Get adapter to populate cache
68
+ const adapter1 = await getTokscaleAdapter();
69
+ // Reset cache
70
+ resetAdapterCache();
71
+ // Get adapter again - should create new instance
72
+ const adapter2 = await getTokscaleAdapter();
73
+ // Both should have same structure but might be different instances
74
+ // depending on whether tokscale is available
75
+ expect(adapter2).toHaveProperty('isAvailable');
76
+ });
77
+ });
78
+ });
79
+ //# sourceMappingURL=tokscale-adapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokscale-adapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/analytics/tokscale-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Integration tests for learned skill discovery
3
+ *
4
+ * Tests the discoverAllCommands() functionality with project and user-scoped skills
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=executor.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"executor.test.d.ts","sourceRoot":"","sources":["../../../../src/__tests__/hooks/auto-slash-command/executor.test.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}