claude-mission-control 1.12.0 → 1.12.1

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/README.md CHANGED
@@ -2,6 +2,10 @@
2
2
 
3
3
  One web page that shows you everything Claude Code is doing on your machine.
4
4
 
5
+ **[Try the live demo →](https://jonimmswordpressdev.github.io/claude-dashboard/)** Click around with invented projects and sessions before you install anything.
6
+
7
+ ![A session flips to NEEDS YOU on the board, a notification names the command waiting for permission, and one click opens the transcript at that request](docs/screenshots/demo.gif)
8
+
5
9
  Claude Code runs in a terminal. Once you have two or three sessions going, you lose track. Which one is waiting for an answer? What did that session change while you were away? How much has this week cost? Claude Mission Control answers those questions on one screen, updated live, from the files Claude Code already writes to `~/.claude`.
6
10
 
7
11
  **What you get**
@@ -27,7 +31,7 @@ Claude Code runs in a terminal. Once you have two or three sessions going, you l
27
31
 
28
32
  **Requirements:** macOS or Linux (Windows experimental, see below), Node.js ≥ 18, Claude Code.
29
33
 
30
- ![Claude Mission Control, dark mode: three live sessions with live cost, burn rate and context meters, two of them waiting with the question shown, plus the pinned strip, unpushed work, and today's digest](docs/screenshots/dashboard-dark.png)
34
+ ![Claude Mission Control, dark mode: three live sessions with live cost, burn rate and context meters, two of them waiting with the question shown, the limit forecast on the session meter, plus the pinned strip, unpushed work, and today's digest](docs/screenshots/dashboard-dark.png)
31
35
 
32
36
  *Every screenshot here is demo data (`CLAUDE_DASH_DEMO=1`). The projects are invented.*
33
37
 
@@ -165,6 +169,9 @@ If something looks off, the log is at `~/Library/Logs/claude-dashboard.log`. To
165
169
  - **Command palette** — `⌘K` from anywhere: fuzzy-jump to any project or session, watch a live session, start a new one, open settings or stats. Arrow keys + Enter.
166
170
  - **Stats** — click the weekly bar chart in the header: a 26-week activity heatmap, your busiest hours, a weekly-rhythm grid (prompts by day of week and hour), estimated cost per day for the last 90 days (list-price value on a subscription), and an all-time per-model token/cost breakdown. The daily cost history is computed from your existing transcripts, so it's full from the first run.
167
171
  - **Your week with Claude** — a 7-day report (`⌘K`, or the button at the top of stats): sessions, prompts, estimated cost (list-price value on a subscription) against your budget, busiest day and hour, models used, how long you typically take to answer a question, and your cache hit rate. Exports as markdown, or as a share card: a 1200×630 PNG with your week's totals, daily bars, and, on Pro or Max, how many times the plan's weekly price that usage was worth at list price. Download it or copy it straight to the clipboard. The card shows totals only, never project names or prompts.
172
+
173
+ ![Share card: a week's list-price value as a multiple of the Max 20x plan's weekly price, daily bars, sessions, prompts, cache hit rate and busiest hour](docs/screenshots/share-card.png)
174
+
168
175
  - **Day timeline** — `⌘K` → Day timeline: the last 24 hours as one lane per project, with amber ticks where a session needed you.
169
176
  - **Catch-up** — the `🔔` in the header keeps every notification the server has fired since it started, with an unread count. Useful after a morning away from the desk.
170
177
  - **Export** — any transcript downloads as clean markdown via the `export ⇩` button.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claude-mission-control",
3
- "version": "1.12.0",
3
+ "version": "1.12.1",
4
4
  "description": "Local dashboard for Claude Code: live sessions, transcripts, costs, git status — all your projects in one place.",
5
5
  "main": "server.js",
6
6
  "bin": {
@@ -24,7 +24,8 @@
24
24
  ],
25
25
  "scripts": {
26
26
  "start": "node server.js",
27
- "test": "node --test test/pure-logic.test.js"
27
+ "test": "node --test test/pure-logic.test.js",
28
+ "demo:build": "node scripts/build-demo.js"
28
29
  },
29
30
  "engines": {
30
31
  "node": ">=18"
package/public/index.html CHANGED
@@ -209,6 +209,7 @@
209
209
  /* ---------- header: the station sign ---------- */
210
210
  header {
211
211
  display: flex; align-items: center; gap: 16px;
212
+ flex-wrap: wrap; row-gap: 10px;
212
213
  padding: 12px 20px;
213
214
  border-bottom: 2px solid var(--line);
214
215
  background: var(--surface);
@@ -394,6 +395,14 @@
394
395
  }
395
396
  #search:focus { outline: 2px solid var(--accent); outline-offset: 0; }
396
397
  #search::placeholder { color: var(--faint); }
398
+ /* A full set of meters needs ~1600px; tighten before the header wraps. */
399
+ @media (max-width: 1600px) {
400
+ header { gap: 12px; }
401
+ #search { width: 120px; }
402
+ #open-pref-wrap .open-label { display: none; }
403
+ #quota { gap: 12px; }
404
+ .meter .bar { width: 44px; }
405
+ }
397
406
  #gear, #mc-btn, #bell-btn {
398
407
  border: none; background: none; color: var(--muted); cursor: pointer;
399
408
  font-size: 15px; padding: 2px 6px; border-radius: 2px; margin-left: 4px;
@@ -830,11 +839,11 @@
830
839
  <body>
831
840
  <header>
832
841
  <div id="conn" title="connection"></div>
833
- <h1>Claude<span class="tilde"> · </span>Dashboard</h1>
834
- <input id="search" type="search" placeholder="Search sessions… ⏎" autocomplete="off">
842
+ <h1>Claude<span class="tilde"> · </span>Mission Control</h1>
843
+ <input id="search" type="search" placeholder="Search… ⏎" autocomplete="off">
835
844
  <div class="spacer"></div>
836
- <label id="open-pref-wrap">Open in
837
- <select id="open-pref">
845
+ <label id="open-pref-wrap"><span class="open-label">Open in</span>
846
+ <select id="open-pref" aria-label="Open sessions in">
838
847
  <option value="terminal">Terminal</option>
839
848
  </select>
840
849
  </label>