calm — bash — 80x40
man calm-software
CALM(1) Software Design Manual CALM(1)
NAME
calm-software – software that is useful without being demanding
SYNOPSIS
calm [--defaults] [--no-nag] [--respect-attention]
DESCRIPTION
Calm software reduces cognitive load, resists turning every interaction
into a choice, and treats your attention as a scarce resource rather
than inventory to monetize.
The cleanest framing comes from Weiser and Brown: the ideal system
lives mostly in the periphery, moves to the center when needed,
and then recedes again.
───────────────────────────────────────────────────────────────────────
PRINCIPLES
1. Default over choice
If the user must choose every time, they carry the burden forever.
Calm systems decide, then let the user correct.
diff --git a/meal-planner/anxious.txt b/meal-planner/calm.txt
--- a/meal-planner/anxious.txt
+++ b/meal-planner/calm.txt
@@ -1,5 +1,5 @@
Monday: [Select a meal...]
Tuesday: [Select a meal...]
Wednesday: [Select a meal...]
Thursday: [Select a meal...]
Friday: [Select a meal...]
Monday: Pasta with roasted tomatoes [swap]
Tuesday: Black bean tacos [swap]
Wednesday: Sheet pan chicken & vegetables [swap]
Thursday: Fried rice with whatever's left [swap]
Friday: Pizza (dealer's choice) [swap]
The user sees a complete plan. Their only job is to disagree.
Most nights, they won't.
2. State, not feed
Feeds create obligation ("I should check"). Calm software shows
state: what's true right now, what's decided, what needs attention.
diff --git a/dashboard/feed.txt b/dashboard/state.txt
--- a/dashboard/feed.txt
+++ b/dashboard/state.txt
@@ -1,4 +1,2 @@
2m ago — Grocery list was updated
1h ago — New recipe: Thai Basil Chicken
3h ago — Reminder: plan tomorrow's meals
5h ago — Sarah shared her meal plan
Tonight: Black bean tacos
Groceries: Everything's set for this week
3. Make deviation cheap and guilt-free
Reality wins. Swaps are expected. Skipping doesn't break streaks.
"Not today" is normal, not failure.
diff --git a/tracker/guilt.txt b/tracker/fine.txt
--- a/tracker/guilt.txt
+++ b/tracker/fine.txt
@@ -1,3 +1,3 @@
[M:✓][T:✓][W:✓][T:✗][F: ][S: ][S: ]
STREAK BROKEN! You missed Thursday.
Start over?
Mon: cooked | Tue: cooked | Wed: cooked
Thu: skipped (ordered in)
Fri: pizza tonight
4. Ask for data only at the moment of pain
Upfront preference interviews are work. Earn personalization
through contextual corrections.
diff --git a/onboarding/wizard.txt b/onboarding/contextual.txt
--- a/onboarding/wizard.txt
+++ b/onboarding/contextual.txt
@@ -1,5 +1,3 @@
Step 2 of 7 (~4 min remaining)
Dietary restrictions: [Select all that apply...]
Spice tolerance: [Choose level...]
Cooking skill: [Beginner / Intermediate / Expert]
Household size: [Enter number...]
You swapped "Spicy Thai Basil Chicken".
Was that too spicy? [Yes, less spicy] [No, just tonight]
Higher-signal input. No wizard. Trust preserved.
5. Calm is not austere
Calm software can be playful, warm, delightful. Weiser's Dangling
String spins with network traffic—whimsical, then ambient.
Calm is about respecting attention over time, not stripping
away personality.
6. Notifications are a last resort
A calm product should be safe to ignore.
diff --git a/notifications/engagement.txt b/notifications/calm.txt
--- a/notifications/engagement.txt
+++ b/notifications/calm.txt
@@ -1,3 +1,1 @@
[!] You haven't opened the app today. Streak resets in 2h!
[5] 5 friends shared plans. Check them out!
[!] Weekly digest: 47 things happened while you were away
Grocery list ready, whenever you need it.
───────────────────────────────────────────────────────────────────────
ANTI-PATTERNS
Engagement metrics as product goals (DAU/MAU as north star)
Streaks and nags
Infinite scroll / "discovery" as default mode
Preference dashboards that require configuration to be usable
Empty states that guilt ("You haven't planned Tuesday")
───────────────────────────────────────────────────────────────────────
ANALYTICS
Measure disagreement and reliance, not attention.
Swap frequencyHow often the default was wrong
RerollsWhen the whole week felt off
Grocery completionDid the plan survive reality?
Time spent in appMeasuring the wrong thing
Streak lengthMeasuring guilt, not value
DAU/MAUOptimizing for attention capture
───────────────────────────────────────────────────────────────────────
MANIFESTO
"Software should do work so users don't have to."
"The best interface is absence; the second best is a summary."
"Defaults are kindness."
"Corrections should be easier than configuration."
"Interruptions should be rare and proportional."
"Ignoring the app should be a valid usage mode."
───────────────────────────────────────────────────────────────────────
SEE ALSO
weiser-brown(7) "Designing Calm Technology" (MIT CSAIL)
humane-design(7) Pattern library for ethical interfaces
apple-hig(7) Managing notifications (interruption levels)
2025 CALM(1)
(END)
$