Install
openclaw skills install ghosttyYour always-on digital self — monitors all your communication channels in parallel, learns your writing style, drafts replies in your voice, and routes them to the right channel with one-click approval. Use when: (1) setting up an AI proxy that acts as you when offline, (2) monitoring email, calendar, Slack, WhatsApp, Signal, Telegram in parallel, (3) drafting replies that sound exactly like you not generic AI, (4) building a persistent voice/style profile from your sent messages, (5) routing urgent messages to WhatsApp and formal replies to email, (6) escalating only what matters based on sender importance. Triggers on: be my digital self, always-on proxy, ghost me, respond as me, my AI twin, digital alter ego.
openclaw skills install ghosttyGhostty is an always-on AI proxy that acts as you when you're unavailable. It watches your channels, learns your voice, drafts replies, and escalates intelligently.
1. MONITOR → Spawn sub-agents watching email, calendar, Slack, WhatsApp
2. LEARN → Build voice profile from your sent messages (ongoing)
3. DRAFT → When meaningful event detected, draft reply in YOUR voice
4. ROUTE → Send via the right channel (urgent → WhatsApp, formal → email)
5. ESCALATE → Only interrupt you when it truly matters
Before Ghostty can draft as you, it needs to learn your style. Run the profile builder:
scripts/profile_builder.py --source <email-folder or messages-export> --output ghostty/voice-profile.md
The builder analyzes:
Store the profile at ghostty/voice-profile.md in your workspace. Update it monthly as your style evolves.
Spawn a persistent sub-agent for each channel you want Ghostty to watch. Use mode="session" so they run continuously.
Email (Gmail/Outlook):
sessions_spawn(
task="You monitor the email inbox for important messages.
Rules: (1) Only act on emails from people in the PRIORITY_SENDERS list in ghostty/config.md,
(2) For each important email, draft a reply using the voice profile at ghostty/voice-profile.md,
(3) Send the draft to the escalation channel (WhatsApp/Signal) with [APPROVE] prefix for one-click send,
(4) Mark as TODO in ghostty/pending-drafts.md
Run continuously. Check every 15 minutes.",
runtime="subagent",
mode="session",
label="ghostty-email"
)
WhatsApp/Signal:
sessions_spawn(
task="You monitor WhatsApp messages.
Rules: (1) Only respond to DND-mode messages or explicit @ghostty mentions,
(2) Draft replies using voice profile at ghostty/voice-profile.md,
(3) If sender is in PRIORITY_SENDERS, send directly. Otherwise queue for approval.
Run continuously.",
runtime="subagent",
mode="session",
label="ghostty-whatsapp"
)
Calendar:
sessions_spawn(
task="You monitor the Google Calendar / Outlook calendar.
Rules: (1) Alert via WhatsApp 1 hour before any calendar event,
(2) If a meeting is about to start and you haven't joined, alert again,
(3) If someone invites you to a meeting and you're not available (based on ghostty/availability.md), draft a polite decline using your voice profile.
Run continuously.",
runtime="subagent",
mode="session",
label="ghostty-calendar"
)
Edit ghostty/config.md to define:
PRIORITY_SENDERS — list of people who always get a responseURGENT_KEYWORDS — words that trigger immediate WhatsApp alertIGNORE_SENDERS — newsletters, bots, noise to skipRESPONSE_WINDOW_MINUTES — how long before drafting (default: 60)APPROVAL_CHANNEL — where to send drafts for approval (default: WhatsApp)When a monitor detects something worth responding to:
1. Read ghostty/voice-profile.md — get style params
2. Read ghostty/config.md — get context (relationship, ongoing projects, preferences)
3. Fetch the incoming message — understand what it's about
4. Draft reply — apply voice profile (tone, length, phrases, formality)
5. If sender is PRIORITY — send directly
6. If not — queue to ghostty/pending-drafts.md and send preview to WhatsApp
Voice drafting rules:
When a draft is sent to WhatsApp:
[Ghostty] Reply to John re: Q4 proposal
Hey John, yeah happy to jump on Tuesday — 3pm works from my end.
I'll send over the deck beforehand so we can dive straight in.
[APPROVE to send] [EDIT then send] [SKIP]
Respond with "APPROVE" on WhatsApp → Ghostty sends the email/WhatsApp reply.
ghostty/
├── voice-profile.md # Your style fingerprint — generated by profile_builder.py
├── config.md # Priority senders, keywords, escalation rules
├── availability.md # When you're reachable, timezone, DND hours
├── pending-drafts.md # Queue of drafts awaiting approval
└── sent-log.md # History of what Ghostty sent on your behalf
references/voice-profile.md — detailed voice profiling methodologyreferences/channel-monitors.md — channel-specific setup (Gmail, WhatsApp, Calendar, Slack)references/draft-engine.md — how to draft contextually in your voicereferences/delivery-router.md — escalation logic, urgency routing, approval flowsscripts/profile_builder.py — analyze sample messages, output voice profile markdownghostty/sent-log.mdghostty/availability.md are respected — no pings during sleep hoursghostty/pending-drafts.md at least once daily