Plays a chime and shows a toast when Claude finishes a long job, so you can walk away from the screen.

Claude Code now has mods. Small add-ons that change how Claude itself looks and behaves. These three turn it from an assistant into something closer to a manager that works for you.
| Mod | What it does |
|---|---|
| Daily Command Center | Every morning from 9am, Claude asks for the three tasks you need to do today and stays locked until you type them. Then it pins them in a side pane next to your revenue and key numbers. |
| Focus Lock | Pick one task, start a timed sprint, and Claude holds any prompt that is not about that task until the timer ends. |
| Done Chime | Plays a sound and shows a toast when Claude finishes a long job, so you can walk away instead of watching the screen. |
Step 1. Update Claude Code. Mods need a recent version. These were built and tested on 2.1.289. Older versions reject them.
Step 2. Open Claude Code and paste this:
Install these mods for me: https://github.com/tenfoldmarc/claude-code-mods
Step 3. Start a new session. That's it.
claude plugin marketplace add tenfoldmarc/claude-code-mods
claude plugin install daily-command-center@tenfold-mods
claude plugin install focus-lock@tenfold-mods
claude plugin install done-chime@tenfold-mods
Install only the ones you want. Then start a new session, or run /reload-plugins in an open one.
1, 2 or 3 in the pane to check one off.| Command | What it does |
|---|---|
/today | Open the Today pane |
/today done 2 | Check off task 2 |
/today reset | Clear today's tasks and get asked again |
/today skip | No tasks today |
/today refresh | Refresh the numbers now |
/metric Followers 12,400 | Pin any number to the pane |
/metric Followers | Remove that number |
Your numbers. Three ways to get them in, all optional:
/metric. Zero setup./plugin configure daily-command-center@tenfold-mods and paste a Stripe key. It shows revenue today and month to date. Use a restricted, read-only key with read access to Balance only, never your full secret key. Create one in Stripe under Developers, API keys, Create restricted key. Claude Code keeps it in your system's secure storage.Label: value line per number. Email subscribers, followers, anything you can fetch.| Command | What it does |
|---|---|
/sprint 50 write the sales page | Start a 50 minute sprint on that task |
/sprint write the sales page | Same, with your default length |
/sprint | See the time left |
/sprint stop | End the sprint early |
!! to push it through anyway.Nothing to do. Any job that runs 20 seconds or longer ends with a chime and a toast showing how long it took. Errors get a different sound.
Run /plugin configure <mod>@tenfold-mods to change these.
| Mod | Setting | Default |
|---|---|---|
| Daily Command Center | Start hour | 9 |
| Daily Command Center | Stripe key | none |
| Daily Command Center | Metrics command | none |
| Daily Command Center | Refresh minutes | 5 |
| Focus Lock | Sprint length (minutes) | 50 |
| Focus Lock | Judge model | haiku |
| Done Chime | Minimum seconds | 20 |
| All three | Volume (0 to 4) | 1 |
claude plugin uninstall <mod>@tenfold-mods.claude -p scripts are never held or captured.Paste this into Claude Code:
Update the mods from https://github.com/tenfoldmarc/claude-code-mods
Or in a terminal:
claude plugin marketplace update tenfold-mods
claude plugin update daily-command-center@tenfold-mods
Repeat the second command for focus-lock and done-chime.
If a user asks you to install these mods, do this:
claude --version. If it is older than 2.1.289, tell the user to update Claude Code first and stop. If claude is not on the PATH, give the user the terminal commands from the Install section to run themselves.claude plugin marketplace add tenfoldmarc/claude-code-mods.claude plugin install for each of daily-command-center@tenfold-mods, focus-lock@tenfold-mods and done-chime@tenfold-mods, unless the user asked for only some of them./reload-plugins), and that after 9am the Daily Command Center will ask for their three tasks./plugin configure daily-command-center@tenfold-mods and a restricted, read-only key.To update: claude plugin marketplace update tenfold-mods, then claude plugin update <mod>@tenfold-mods for each installed mod.
MIT. The sounds are original and included under the same license.
Built by @tenfoldmarc. Follow for daily AI builds. Real systems, not theory.
hooks/register.ts 40 lines1import type { Register } from 'claude-code'
2
3const DONE = 'sounds/done.wav'
4const ERROR = 'sounds/error.wav'
5
6const spell = (ms: number): string => {
7 const seconds = Math.round(ms / 1000)
8 const minutes = Math.floor(seconds / 60)
9
10 return minutes === 0 ? `${seconds}s` : `${minutes}m ${seconds % 60}s`
11}
12
13export const register: Register = (on, options) => {
14 const minMs = Math.max(0, Number(options.min_seconds ?? 20)) * 1000
15 const gain = Math.min(4, Math.max(0, Number(options.volume ?? 1)))
16
17 on('turn.complete', async ($, e, next) => {
18 // A subagent's turn is not the job the person is waiting on.
19 const isTheirs = e.agentId === undefined && !e.isAborted
20
21 if (isTheirs && e.durationMs >= minMs) {
22 const hasFailed = e.reason === 'error'
23 $.ui.toast(
24 hasFailed
25 ? `Claude hit an error after ${spell(e.durationMs)}`
26 : `Done in ${spell(e.durationMs)}`,
27 { timeoutMs: 8000 },
28 )
29
30 if (gain > 0) {
31 // Not awaited: the turn should not wait on the clip. A machine with no
32 // player (Linux, Windows) plays nothing, and the toast still shows.
33 void $.audio.play({ asset: hasFailed ? ERROR : DONE }, { gain }).catch(() => {})
34 }
35 }
36
37 return next(e)
38 })
39}
40