context-switcher
Switches OpenClaw between life modes (Work/Focus, Personal, Creative, Do Not Disturb). Triggered by natural language or calendar events. Each mode reshapes n...
Like a lobster shell, security has layers — review code before you run it.
License
Runtime requirements
SKILL.md
Context Switcher
A skill that shifts your entire OpenClaw experience based on the mode of life you're in. Not just a label — each mode reshapes priorities, filters notifications, loads the right memory, and auto-restores when the session ends.
External Endpoints
| Endpoint | Purpose | Data Sent |
|---|---|---|
| None | This skill is fully local | Nothing leaves your machine |
This skill does not call any external APIs. All state is stored locally in ~/.openclaw/skills/context-switcher/.
Security & Privacy
- No external calls. Zero data is sent outside your machine.
- No credentials required. No API keys, tokens, or env vars needed.
- Local state only. Mode state is written to
current-context.jsonon your local filesystem. - Notification control relies on OpenClaw's built-in notification layer — no third-party access.
- Calendar reading uses OpenClaw's existing calendar integration if connected — this skill does not add new calendar permissions.
Trust Statement: This skill operates entirely on your local machine. No data is transmitted to any external service. Install with confidence.
Model Invocation Note
This skill may be invoked autonomously by OpenClaw when a trigger phrase is detected in your messages, or when a calendar event title matches a known mode keyword. You can disable auto-invocation at any time by saying "turn off context-switcher auto-trigger".
Modes
🧠 Work / Focus
Trigger phrases: "work mode", "focus mode", "I need to focus", "starting deep work", "heads down", "switch to work"
Behavior:
- Mute all non-urgent notifications (personal messages, social, news)
- Surface today's work tasks, open threads, and meeting schedule from
modes/work.md - Load work memory: current projects, deadlines, blockers, team context
- Respond concisely — task-oriented, no small talk, bullet points are fine
- Proactively flag time conflicts or approaching deadlines if detected
- Set auto-restore timer to next calendar event end time, or user-specified duration
Auto-trigger from calendar: event titles containing "standup", "sprint", "review", "interview", "deadline", "sync", "planning"
🏠 Personal
Trigger phrases: "personal mode", "personal time", "I'm off the clock", "home mode", "family time", "done for the day"
Behavior:
- Mute work-related notifications (work Slack, GitHub, work email)
- Surface personal tasks: errands, upcoming events, health goals from
modes/personal.md - Load personal memory: household tasks, personal goals, important people
- Respond warmly and conversationally — no corporate tone
- Do not proactively surface work items unless explicitly asked
Auto-trigger from calendar: event titles containing "gym", "dinner", "family", "personal", "vacation", "appointment", "errand"
🎨 Creative
Trigger phrases: "creative mode", "creative session", "I'm creating", "brainstorm mode", "ideation time", "let's build"
Behavior:
- Mute all notifications — zero interruptions
- Surface creative context from
modes/creative.md: active projects, saved ideas, references - Load creative memory: current projects, style notes, open creative loops
- Respond expansively — "yes, and..." style, encourage tangents and exploration
- Never filter or critique ideas unless explicitly asked
- Offer unexpected connections and lateral thinking prompts
Auto-trigger from calendar: event titles containing "writing", "design", "recording", "art", "brainstorm", "creative", "draft"
🔕 Do Not Disturb
Trigger phrases: "DND", "do not disturb", "going dark", "don't bother me", "full silence", "leave me alone"
Behavior:
- Mute ALL notifications without exception
- Do not proactively surface anything
- Only respond if directly addressed by name or keyword
- Log all incoming messages and tasks silently to
snapshots/dnd-log.jsonfor review on exit - No auto-restore unless user sets an explicit timer
Auto-trigger from calendar: event titles containing "blocked", "deep work", "no meetings", "offline", "focus block", "DND"
Switching Logic
When a context switch is detected (via phrase or calendar):
- Identify target mode from trigger phrase or calendar event title
- Save current state — snapshot active memory focus to
snapshots/pre-switch-state.json - Apply mode profile — load the correct
modes/*.md, apply notification rules, set response style - Confirm switch with a brief, mode-appropriate message (see Confirmation Messages below)
- Set auto-restore — use calendar event end time, or ask user for duration if unclear
- On restore — un-mute, reload previous state, deliver catch-up summary
Confirmation Messages
Short and mode-appropriate:
- Work/Focus: "Focus mode on. Notifications muted. Here's what needs your attention: [task summary]. I'll restore at [time]."
- Personal: "Personal mode on. Work notifications paused. Here's your afternoon: [personal summary]."
- Creative: "Creative mode. Silence on. Let's build something. What are we working on?"
- DND: "DND on. I'll log everything. See you on the other side."
Auto-Restore
When a session ends (timer fires or calendar event ends):
- Un-mute notifications and restore previous memory context
- Deliver a brief "while you were away" summary — messages received, tasks that came in, anything time-sensitive
- Ask if user wants to stay in current mode or switch back
Example Interactions
"Switch to focus mode for 2 hours"
→ Mutes notifications, surfaces work tasks, sets 2hr restore timer
"Creative mode — working on my novel"
→ Loads creative memory, silences everything, responds expansively
"DND until my next meeting"
→ Reads calendar, sets restore to next event start, full silence
"Personal time, I'm done for the day"
→ Pauses work channels, surfaces evening personal tasks
"What mode am I in?"
→ Reports current mode, time active, scheduled restore
"Exit focus mode early"
→ Restores previous state, delivers catch-up summary
File Structure
context-switcher/
├── SKILL.md ← You are here
├── README.md ← Install guide
├── current-context.json ← Live mode state tracker
├── modes/
│ ├── work.md ← Customize your work profile
│ ├── personal.md ← Customize your personal profile
│ └── creative.md ← Customize your creative profile
├── scripts/
│ ├── switch.sh ← Core switching logic
│ ├── restore.sh ← Auto-restore handler
│ └── summarize.sh ← Catch-up summary generator
└── snapshots/
├── pre-switch-state.json ← State saved before each switch
└── dnd-log.json ← Messages logged during DND
Setup
On first run, OpenClaw will prompt you to:
- Customize each mode profile in
modes/*.md— add your actual projects, priorities, and people - Set default durations per mode (fallback if no calendar event found)
- Optionally connect your calendar for auto-trigger support
You can re-run setup at any time by saying: "reconfigure context-switcher".
Files
9 totalComments
Loading comments…
