From alive
Renders live dashboard of projects grouped by ALIVE domain, showing active, stale, attention items from WORLD_INDEX or .alive/_index.yaml. Routes to open, tidy, find, history, map; checks inbox, unsigned items via bash/python.
npx claudepluginhub alivecontext/alive --plugin aliveThis skill uses the workspace's default tool permissions.
This is Mission Control. When the human opens their world, it should feel like booting an operating system — everything they care about, at a glance, with clear paths to action.
Audits Claude Code workspaces (walnuts) for maintenance issues like stale tasks, orphan folders, v2 remnants, and unsaved sessions. Surfaces issues one at a time with recommended fixes.
Generates daily or weekly digests of activity from connected sources (chat, email, docs, tasks, CRM), highlighting action items, decisions, mentions, and project updates.
Share bugs, ideas, or general feedback.
This is Mission Control. When the human opens their world, it should feel like booting an operating system — everything they care about, at a glance, with clear paths to action.
NOT a database dump. NOT a flat list. A living view of their world, grouped by what matters, showing relationships, surfacing what needs attention.
<WORLD_INDEX> — it's already in your session context from the SessionStart hook. Contains every walnut's type, goal, phase, rhythm, updated, next, people, links, tags, bundles, and parent relationships. Zero file reads needed. If <WORLD_INDEX> is not in context, fall back to reading .alive/_index.yaml directly.python3 .alive/scripts/generate-index.py "$WORLD_ROOT"), then read the output. If the script doesn't exist either, fall back to manual scanning: use Glob to find all */_kernel/key.md files across the World, read each one's frontmatter (type, goal, rhythm, people, links, parent), then read matching _kernel/now.json frontmatter (phase, updated, next, bundle). Dispatch these reads as parallel subagents to keep it fast. This fallback only happens on first-time setup before the index infrastructure exists.parent: fieldunsigned_with_stash:. If non-zero, surface in the Attention section. No bash loop needed.ls 03_Inbox/ 2>/dev/null | grep -v '^\.' | grep -v '^Icon' — just the filenames, no deep reads.03_Inbox/ has items, dispatch a background agent to triage them. Don't wait for it — render the dashboard immediately, the triage results arrive while the human reads.Dispatch with run_in_background: true when inbox has 1+ items. The agent:
03_Inbox/ with ls -laWhen the background agent completes, surface the results:
╭─ 🐿️ inbox triaged (8 items)
│
│ Urgent
│ march-expenses.csv → finance (transactions, needs review)
│ error-log-april-2.txt → my-startup (build error from deploy)
│
│ Route
│ team-dinner-recap.mp4 → my-startup (event footage)
│ fathom-extraction/ → runs via /alive:mine-for-context
│ otter-extraction/ → runs via /alive:mine-for-context
│
│ Auto-route (low priority)
│ gmail/ → capture via sync script
│ slack/ → capture via sync script
│
│ ▸ Route all? Or review one at a time?
│ 1. Route all suggested
│ 2. Review each
│ 3. Skip for now
╰─
The triage agent gets the world index in its prompt so it knows every walnut, person, and active bundle. It matches by name, keywords, and file type patterns. It does NOT move files — it suggests. The human confirms.
DO NOT read preferences.yaml — it's already injected at session start. DO NOT read individual walnut files (key.md, now.json, log.md) — the index has everything. DO NOT read .alive/_squirrels/*.yaml files — recent sessions are in the index under recent_sessions: and unsigned stash count is in unsigned_with_stash:. DO NOT spawn Explore agents or subagents for the dashboard — use the index and the one bash check above. The entire dashboard should render from data already in context plus 1 fast bash call (inputs listing).
Before rendering, detect system state:
setup.md_brain/ folders exist) → offer migration via /alive:create-walnut migrate modeThe dashboard has 4 sections. Each tells you something different.
What needs the human's attention TODAY. Not everything — just what's active and demanding.
╭─ 🐿️ your world
│
│ RIGHT NOW
│ ──────────────────────────────────────────────
│
│ 1. my-startup launching
│ Next: Record demo video for investor deck
│ Last: 2 hours ago · 6 sessions this week
│
│ 2. freelance-agency legacy
│ Next: Close out 3 remaining client contracts
│ Last: 2 days ago
│ People: Jake Chen, Sarah Mills
│
│ 3. social-content building
│ Next: Review 8 drafted posts in Buffer
│ ⚠ 4 days past rhythm
│
╰─
Only show walnuts that are active or past their rhythm. Sort by most recently touched. Show:
_kernel/now.json)_kernel/key.md — max 2-3 names)Things that need your decision or action. Not walnuts — specific issues.
╭─ 🐿️ attention
│
│ → 3 unread emails from Orion (Gmail, 2 days)
│ → Unsigned session on nova-station (squirrel:a3f7, 6 stash items)
│ → 03_Inbox/ has 2 items older than 48 hours
│ → flux-engine quiet for 12 days (rhythm: weekly)
│ → 4 working files older than 30 days across 3 walnuts
│
╰─
Sources:
03_Inbox/ older than 48 hours. These are unrouted context that could impact active walnuts TODAY. The squirrel should stress this to the human: "You have unrouted inputs. These might contain decisions, tasks, or context that affects your active work. Route them before diving into a walnut."Inputs triage: The world skill should understand that inputs are a buffer — content arrives there and needs routing to its proper walnut. When surfacing inputs, the squirrel should scan the context.manifest.yaml frontmatter (if manifests exist) or the file names to understand what the content might relate to. Don't digest the full content — just flag it, estimate which walnuts it might affect, and urge the human to route it. Use alive:capture-context to process each input properly.
The full structure — grouped by ALIVE domain, with parent/child nesting visible.
╭─ 🐿️ your world
│
│ LIFE
│ identity active LinkedIn bio update
│ health quiet ADHD assessment follow-up
│ finance quiet ⚠ 10 days — subscriptions review
│ people/
│ jake-chen updated 2 days ago
│ sarah-mills updated 1 day ago
│ tom updated 5 days ago
│
│ VENTURES
│ my-startup launching MVP demo + investor deck
│ └ mobile-app building React Native prototype
│ freelance-agency legacy Closing out client contracts
│
│ EXPERIMENTS
│ social-content building Content calendar + Buffer queue 3 bundles · 4 tasks
│ side-project waiting Decide: rewrite or revise
│ podcast quiet ⚠ 12 days — episode 4 edit
│ ... +3 more (2 waiting, 1 quiet)
│
│ INBOX
│ 2 items (oldest: 4 days)
│
│ ARCHIVE
│ 1 walnut (old-portfolio)
│
╰─
Key features:
└● dot for each of the last 5 days the walnut was touched. Visual pulse at a glance.│ nova-station ●●●●● building Orbital test suite
│ stellarforge ●●○○○ launching Relay satellites
│ side-project ○○○○○ waiting Decide: rewrite or revise
● = touched that day. ○ = no activity. Read left to right: today, yesterday, 2 days, 3 days, 4 days. Five dots tells you this walnut is hot. Zero tells you it's cold. No numbers, no dates — just a visual heartbeat.
What's been happening across the world. A pulse check.
Recent session data is IN the index under recent_sessions:. Do NOT read individual squirrel YAML files. Do NOT run bash loops to grep squirrel entries. The index has everything: squirrel ID, walnut, date, bundle, saves count, summary, and tags for the 10 most recent sessions. The index also includes unsigned_with_stash: count -- if non-zero, surface it in the Attention section.
╭─ 🐿️ recent activity
│
│ Today nova-station 6 sessions · shipped test harness
│ Yesterday nova-station refined architecture, 22 decisions
│ Feb 22 stellarforge infrastructure, telemetry, comms
│ Feb 22 nova-station companion app, integration tests
│ Feb 21 nova-station module refactor, ecosystem plan
│
│ 5 sessions this week · 3 walnuts touched · 47 stash items routed
│
╰─
The index regenerates automatically after every save (post-write hook detects _kernel/now.json writes). If the index is missing or the human asks for a fresh view, regenerate on demand:
python3 .alive/scripts/generate-index.py "$WORLD_ROOT"
After regenerating, re-read .alive/_index.yaml to render the updated dashboard.
alive:load-context)alive:system-cleanupalive:search-worldalive:session-historyalive:my-context-graphalive:mine-for-contextIf context_sources: is configured in .alive/preferences.yaml, surface relevant items from active sources:
/alive:session-history and /alive:search-world.Filter by walnut scoping — only show sources where walnuts: all or the current active walnut is in the list.
setup.md — first-time world creation (triggers automatically when no ALIVE structure found)