dnd
Do not disturb for the kit's panes (history, dev activity, reminders, handoffs). Creates profiles that hide a pane or keep only some repos, groups or the session's folder, turns one on by hand (for a
SKILL.mdmods/dnd/skills/dnd/SKILL.md
GitHubDo not disturb
dnd.sh, next to this file, holds the profiles and their rules. The dnd mod reads it every minute
and the history, dev activity and reminders-handoffs panes hide or filter what they show by what is on.
Run it with bash; bash dnd.sh alone prints every command.
What a profile holds
One line per part: history, prs, reminders, handoffs, each show (the default), hide, or
only a list of names. A name is a repo (owner/repo or its last part), a reminder group or
folder, a handoff's repo; @here keeps what belongs to the session's folder (its git repo).
History is shown or hidden, never filtered.
bash dnd.sh set work prs only Workcare @here
bash dnd.sh set work reminders only Acme
bash dnd.sh set meeting history hide
bash dnd.sh list
The user can also pick in the Do not disturb pane (/dnd, or its button in the Configuration
pane, opened from the band above the prompt or /configuration), or on a terminal: bash dnd.sh edit work (arrows,
Enter or Space, the installer's keys). In the pane, edit beside a profile opens it: a button per
mode for each part, and for only a checklist of the session's folder, what the part lists now
and every repo and folder the user works in. Before you create a profile, ask what it should keep
or hide when the user did not say; propose the names dnd.sh known prs|reminders|handoffs prints,
or the repos and folders under workspaces in dnd.sh json.
Every mod's settings are in the Configuration pane (the configuration mod, which the kit's pane mods bring with them), for all computers or this one.
Turning one on by hand
bash dnd.sh on PROFILE [30m|2h|1d|HH:MM], bash dnd.sh off. none is a profile that shows
everything: on none 2h quiets the rules for two hours.
Ask the user whether it is for this session only, for this computer (every session on it)
or for all computers (every computer in the config sync, at its next sync), unless they already
said so in their words ("just here", "on this Mac", "everywhere"). For this session, add
--session "$CLAUDE_CODE_SESSION_ID" to on and to off; for all computers, --everywhere to
on (off takes the computer's switch and that one off together). A meeting is a profile turned
on by hand for how long it lasts.
Rules that turn one on by themselves
bash dnd.sh rule PROFILE KEY=VALUE..., every key must hold:
wifi=NAME: on that Wi-Fi network (bash dnd.sh wifitells the current one).days=weekend(orweekday,day,sat,sun,mon,tue...),from=09:00,to=18:00; a span past midnight (from=22:00 to=07:00) works.folder=~/dev/shop: sessions in that folder or below; a repo's own default.
A turn-on by hand wins over the rules (the session's, then the computer's, then every computer's),
then rules with a folder, then the others in their order.
bash dnd.sh unrule N deletes the Nth rule as list numbers them.
Where it lives
Profiles and rules: ~/.claude-sync/dnd/profiles.json when the config sync is set up (every
computer gets them), else ~/.claude/dnd/profiles.json. The switch and the last Wi-Fi name stay on
the computer, in ~/.claude/.dnd/, beside active.json, what is on per session, which the kit's
status line shows as 🔕 <profile> · session|computer|everywhere|rule while one is on. The switch
for every computer is kept in profiles.json, with the profiles. Tell the user which one you changed.