5-minute setup. Your first brief lands tomorrow at 6 AM.
| Thing | Why | How |
|---|---|---|
| macOS 12+ | launchd, Messages.app, Calendar.app | You already have it. |
| Apple ID signed into Messages.app | iMessage delivery | open -a Messages → sign in if needed. |
| Calendar.app subscriptions | Reads today's events | Add Google/iCloud accounts via System Settings → Internet Accounts. |
| Claude CLI | Composes the brief | npm i -g @anthropic-ai/claude-code then claude login. |
jq |
JSON parsing | brew install jq |
git clone https://github.com/jjawnee/neuroos
cd neuroos
./install.shThe installer:
- Prompts for your iMessage handle (phone number or Apple ID email).
- Copies
bin/morning-brief.shto~/.config/neuroos/bin/. - Creates
~/.config/neuroos/{daily,school/extracted,journal,logs}/. - Templates the launchd plist with your
$HOMEand recipient. - Copies the plist to
~/Library/LaunchAgents/. - Runs
launchctl loadto schedule the 6 AM job.
Edit two files (the installer copies starter templates):
~/.config/neuroos/daily/priorities.md — your top 3 for today:
# Today's Top 3
- [ ] Ship the API endpoint
- [ ] 1:1 with advisor at 2 PM
- [ ] Finish biochem problem set~/.config/neuroos/school/extracted/ALL_DEADLINES.md — upcoming deadlines:
## EXAMPLE COURSE 101
- Mon 2026-05-12 23:59 Problem set 4 (15%)
- Wed 2026-05-14 23:59 Lab report (25%)
## EXAMPLE COURSE 102
- Tue 2026-05-13 17:00 Homework 5 (10%)Format: - <DDD> <YYYY-MM-DD> <HH:MM> <title> (<weight>%). Weight is optional.
touch /tmp/morningbrief-test.flag && ~/.config/neuroos/bin/morning-brief.shYou should get a [TEST 6AM BRIEF] iMessage within 30 seconds. If not:
tail -50 ~/.config/neuroos/logs/morning-brief.logCommon causes:
- Messages.app not authorized → System Settings → Privacy & Security → Automation → grant Terminal/iTerm access to Messages.
- Calendar.app empty → Same flow, grant Calendar permission.
claudenot on PATH → Re-runclaude loginand verify withwhich claude.
macOS will prompt you the first time launchd runs the script:
- Calendar access — accept (otherwise events line is empty).
- Automation → Messages — accept (otherwise iMessage send fails).
You can pre-grant in System Settings → Privacy & Security → Automation.
All paths are env-var overridable. Edit ~/Library/LaunchAgents/com.neuroos.morningbrief.plist to inject:
<key>EnvironmentVariables</key>
<dict>
<key>RECIPIENT</key>
<string>+15555550100</string>
<key>JO_ROOT</key>
<string>/Users/you/custom/path</string>
</dict>Reload after edits:
launchctl unload ~/Library/LaunchAgents/com.neuroos.morningbrief.plist
launchctl load ~/Library/LaunchAgents/com.neuroos.morningbrief.plistThe free kernel runs forever. If you want time-keyed nudges (midday, evening, bedtime, weekly review), the modular brief engine, and the PBP doctrine — that's NeuroOS Pro on Gumroad.
launchctl unload ~/Library/LaunchAgents/com.neuroos.morningbrief.plist
rm ~/Library/LaunchAgents/com.neuroos.morningbrief.plist
rm -rf ~/.config/neuroos