Your work diary, written while you work.
A Claude Code agent wakes up every 3 hours, reads your Slack activity and meeting notes, and writes structured daily logs to Notion — automatically, without any input from you.
Named after the innie from Severance: the version of you that only exists at work, quietly logging everything so you don't have to.
## Activity Log
**09:14** — #engineering — flagged type mismatch in auth middleware PR
↑ alex.chen: "Anyone seen this 422 on token refresh?"
→ you: "Yes — refresh token field changed to snake_case in v2.3. Check line 84"
↓ alex.chen: "Fixed, thanks!"
**10:32** — #product — confirmed Q2 roadmap priorities with PM
→ you: "Aligned with @sarah on pushing export to Q3 — focusing on onboarding first"
**14:00** — Weekly Sync → Discussed infra migration blockers. Alex owns DB
cutover, targeting Friday EOD. [3 attendees]
All timestamps in your timezone. Meetings and Slack unified in one chronological log.
The ## Daily Summary section regenerates automatically, grouping activity by theme.
Slack messages + Notion meeting notes
↓
Claude Code agent (cron)
↓
Notion: Audit Log → Year → Quarter → Month → Week → Day
Four cron jobs, zero manual effort:
| Job | Schedule | What it does |
|---|---|---|
| Daily | Every 3h | Appends new Slack + meeting entries to today's page |
| Weekly | 11pm nightly | Rewrites the week summary from all daily summaries |
| Monthly | Saturdays 11:30pm | Rewrites month summary from weekly summaries |
| Quarterly | 1st of month midnight | Rewrites quarter summary from monthly summaries |
Prerequisites: Claude Code
# 1. Connect Notion and Slack via OAuth (one-time, opens browser)
claude mcp add --transport http notion https://mcp.notion.com/mcp
claude mcp add --transport http slack https://mcp.slack.com/mcp
# 2. Clone and run setup
git clone https://github.com/bshaan77/my-innie.git && cd my-innie && ./setup.shSetup asks your name and timezone, then auto-discovers your Slack handle and Notion Audit Log page ID via MCP. It installs 4 cron jobs with a working PATH baked in. First run happens within 3 hours.
Each Slack entry captures context — what was said before and after — so the log reads like a conversation, not a list of orphaned messages:
**HH:MM** — #channel-name — brief topic
↑ Name: message above (if meaningful)
→ You: "your message text"
↓ Name: response below (if meaningful)
Meeting entries use the same timestamp format:
**HH:MM** — Meeting Title → key decisions, action items, attendees
Pure acknowledgments (ok, thanks, single emoji) are skipped unless they
close a thread. Messages within ~2 minutes in the same channel are grouped.
| Source | How it works |
|---|---|
notion |
Searches Notion for meeting-notes pages last edited today |
none |
Slack only — no meeting transcripts |
To switch, re-run ./setup.sh or edit config.sh in the repo directly.
Export your entire Notion Audit Log hierarchy to a local git repo as markdown files, mirroring the Year → Quarter → Month → Week → Day structure.
pip3 install -r requirements.txt
export NOTION_API_KEY="secret_xxx" # add to ~/.zshrc to persistGet a token at notion.so/my-integrations — create an internal integration and share your Audit Log root page with it.
python3 notion_snapshot.py # export to ~/my-knowledge-snapshot
python3 notion_snapshot.py --push # export + commit + push to GitHub
python3 notion_snapshot.py --root <page-id> # use a different root pageOutput structure:
knowledge-snapshot/
2026/
README.md ← year summary
Q1-2026/
README.md ← quarter summary
March-2026/
README.md ← month summary
Week-of-Mar-1-Mar-7-2026/
README.md ← week summary
Mar-6-2026.md ← daily log
| File | Description |
|---|---|
setup.sh |
Interactive setup wizard |
config.sh.template |
Blank config for reference |
daily-audit-log.sh |
Daily runner (every 3h) |
weekly-summary.sh |
Weekly summary (nightly) |
monthly-summary.sh |
Monthly summary (Saturdays) |
quarterly-summary.sh |
Quarterly summary (1st of month) |
notion_snapshot.py |
Export Notion hierarchy → markdown → GitHub |
requirements.txt |
Python deps for notion_snapshot.py |
config.sh and logs/ are gitignored — never committed.
git pull && ./setup.shScripts re-read config.sh on every run — no reinstall needed for config-only
changes. Only re-run setup.sh to pick up script updates or change your config.