Personal AI secretary for attention management
npx claudepluginhub durandom/laytonPersonal AI secretary for attention management. Track what matters, maintain focus, get context-aware briefings.
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.
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.
Layton remembers for you:
Ask "What should I know?" and get an answer that respects your time.
| 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.
claude plugin marketplace add durandom/layton
claude plugin install --scope project layton@secretary
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
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
{
"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"]
}
}
---
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 |
---
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 |
/layton
Select "setup" or say "configure layton" - Layton will guide you through:
.layton/config.json with your preferences/layton
This runs orientation: health checks + rolodex inventory + protocols inventory.