Layton
Your personal AI secretary.
Named after Elizabeth Layton, Churchill's wartime secretary - a trusted assistant who anticipated needs, tracked what mattered, and synthesized information so her boss could focus on what only he could do.
The Problem
Your AI assistant starts every conversation at zero. It doesn't know what you were working on, what you're waiting for, or what deserves your attention today. You end up repeating context, losing track of threads, and managing your own attention instead of doing the actual work.
The Vision
Layton remembers for you:
- What you're watching - that PR waiting for review, the Jira ticket blocked on someone else
- Where your focus is - your current work, so you can context-switch and return
- How you work - your schedule, preferences, and patterns
- What's happening - synthesized briefings across all your connected systems
Ask "What should I know?" and get an answer that respects your time.
How It Works
| Concept | What It Is |
|---|
| Beads | State backend - tracks items with labels (watching, focus, layton) |
| Rolodex | Data source cards (Gmail, Jira, Slack) - AI instructions for querying systems |
| Protocols | Orchestration patterns (morning briefing, gather data) - AI instructions for synthesis |
| .layton/ | Your personalization directory - config, rolodex, protocols |
Layton is a knowledge repo skill for building personalized AI protocols. Rolodex cards and protocols are AI instructions (markdown), not executable code - they tell Claude how to query your systems and synthesize information.
Installation
claude plugin marketplace add durandom/layton
claude plugin install --scope project layton@secretary
Prerequisites
Beads - Layton's memory and state backend.
Beads stores everything Layton tracks: items you're watching, your current focus, and metadata from external systems. All state operations use beads labels for filtering (bd list --label watching).
bd --version # verify it's installed
What You'll Build
After setup, your project will have a .layton/ directory with your personalized configuration:
your-project/
├── .layton/ # YOUR personalizations
│ ├── config.json # Timezone, work hours, user info
│ ├── rolodex/ # Data source cards
│ │ ├── gmail.md # How to query Gmail
│ │ ├── jira.md # How to query Jira
│ │ └── slack.md # How to query Slack
│ └── protocols/ # Custom orchestrations
│ ├── morning-briefing.md
│ └── process-inbox.md
├── CLAUDE.md # Project instructions (with Layton integration)
└── AGENTS.md # Agent behavior rules
Example: config.json
{
"timezone": "America/New_York",
"user": {
"name": "Alex",
"email": "alex@example.com"
},
"work": {
"schedule": { "start": "09:00", "end": "17:00" },
"days": ["monday", "tuesday", "wednesday", "thursday", "friday"]
}
}
Example: Rolodex Card (.layton/rolodex/gmail.md)
---
name: gmail
description: Query Gmail for starred emails requiring attention
source: google_workspace MCP server
---
## Commands
\`\`\`bash
# List starred emails
mcp-cli google_workspace/search_gmail_messages '{"query": "is:starred"}'
\`\`\`
## What to Extract
- Starred count (items flagged for attention)
- Stale items (> 7 days old)
- Unread starred (new items needing attention)
## Key Metrics
| Metric | Meaning |
|--------|---------|
| starred_count | Items flagged for attention |
| starred_stale | Decision debt accumulating |
Example: Protocol File (.layton/protocols/morning-briefing.md)
---
name: morning-briefing
triggers: [morning briefing, good morning, what should I know today]
---
## Steps
1. Get temporal context: `layton context`
1. Get current focus: `bd list --label focus --json`
1. Get watching items: `bd list --label watching --json`
1. Query configured rolodex cards
1. Synthesize briefing adapted to time of day
## Context Adaptation
| Context | Adaptation |
|---------|------------|
| Morning + workday | Full briefing, suggest high-energy focus work |
| Afternoon | Lighter briefing, check if focus needs updating |
| Evening | Brief summary, acknowledge end of day |
| Monday morning | Include weekly perspective |
Getting Started
First-Time Setup
/layton
Select "setup" or say "configure layton" - Layton will guide you through:
- Creating
.layton/config.json with your preferences
- Discovering available rolodex cards
- Setting up CLAUDE.md/AGENTS.md integration
Daily Usage
/layton
This runs orientation: health checks + rolodex inventory + protocols inventory.
Common Interactions