Agent skill

setup-ghostclaw

First-time GhostClaw setup. Handles dependencies, authentication, channel configuration, main chat registration, soul building, and service setup. Use this for all new installs.

Stars 24
Forks 5

Install this agent skill to your Project

npx add-skill https://github.com/b1rdmania/ghostclaw/tree/main/.claude/skills/setup-ghostclaw

SKILL.md

GhostClaw Setup

Interactive setup for a fresh GhostClaw install. Handles everything from dependencies to personality.

Phase 1: Dependencies

bash
npm install

Check Node.js version:

bash
node --version  # Must be 20+

Phase 2: Authentication

Claude Code token

Ask: "Do you have a Claude Max subscription or an API key?"

Claude Max (recommended): Tell the user to run this in a separate terminal (not inside Claude Code):

bash
claude setup-token

Then ask them to paste the token. Add to .env:

CLAUDE_CODE_OAUTH_TOKEN=<token>

API key:

ANTHROPIC_API_KEY=<key>

Model selection

AskUserQuestion: Which model should the bot use?

  • Sonnet (Recommended) — fast, capable, cost-effective for most tasks
  • Opus — most capable, slower, higher cost
  • Haiku — fastest, cheapest, good for simple tasks

Add to .env based on choice:

GHOSTCLAW_MODEL=claude-sonnet-4-6    # Sonnet (recommended)
# GHOSTCLAW_MODEL=claude-opus-4-6    # Opus
# GHOSTCLAW_MODEL=claude-haiku-4-5-20251001  # Haiku

If they skip or aren't sure, default to Sonnet. Tell them: "You can change this any time by editing GHOSTCLAW_MODEL in .env and restarting."

Bot name

AskUserQuestion: What should the bot be called?

Add to .env:

ASSISTANT_NAME=<name>

Phase 3: Channels

AskUserQuestion: Which channels do you want?

  • Telegram only (recommended — bot gets own identity)
  • WhatsApp only
  • Both

Telegram setup

If Telegram selected:

  1. Tell the user:

    Create a Telegram bot:

    1. Open @BotFather in Telegram
    2. Send /newbot
    3. Pick a name and username
    4. Copy the token
  2. Add to .env:

    TELEGRAM_BOT_TOKEN=<token>
    
  3. If Telegram-only, add:

    TELEGRAM_ONLY=true
    

WhatsApp setup

If WhatsApp selected:

  1. Run the app temporarily to get QR code:
    bash
    npm run build && node dist/index.js
    
  2. Scan QR code with WhatsApp
  3. Stop the process (Ctrl+C)

Phase 4: Build and start

bash
npm run build

Service setup

AskUserQuestion: Set up as a background service? (Yes / No, I'll run it manually)

If yes, detect OS:

macOS:

Read the template from launchd/com.ghostclaw.plist. Replace the {{...}} placeholders with actual values:

  • {{NODE_PATH}} → result of which node
  • {{PROJECT_ROOT}} → absolute path to the GhostClaw directory (e.g. /Users/username/ghostclaw)
  • {{HOME}} → user's home directory (e.g. /Users/username)
  • {{ASSISTANT_NAME}} → the bot name from .env

Write the resolved plist to ~/Library/LaunchAgents/com.ghostclaw.plist.

bash
mkdir -p PROJECT_ROOT/logs
launchctl load ~/Library/LaunchAgents/com.ghostclaw.plist

Linux: Create systemd user service and enable it.

Phase 5: Register main chat

Start the service and wait for connection.

Telegram: Tell the user to send /chatid to their bot. They'll get back tg:XXXXXXX. Register it:

bash
node -e "
const { initDatabase, setRegisteredGroup } = require('./dist/db.js');
initDatabase();
setRegisteredGroup('CHAT_JID', {
  name: 'BOTNAME Main',
  folder: 'main',
  trigger: '@BOTNAME',
  added_at: new Date().toISOString(),
  requiresTrigger: false,
});
console.log('Main group registered');
"

Create group directory:

bash
mkdir -p groups/main/logs

Restart the service.

Phase 6: Soul building (onboarding)

This is what makes GhostClaw different. After the bot is running, build its personality.

AskUserQuestion: "Tell me about yourself — what do you do, what are you building, what matters to you? (A few sentences is fine)"

AskUserQuestion: "How do you like AI to communicate? Pick what resonates:"

  • Direct and short — no fluff
  • Detailed and thorough
  • Casual and conversational
  • Technical and precise

AskUserQuestion: "Any words, phrases, or patterns you hate in AI responses? (e.g. 'leverage', emoji, 'Great question!')"

AskUserQuestion: "What should the bot proactively help with?"

  • Email monitoring
  • News/trend watching
  • Code review reminders
  • Morning briefings
  • Nothing — just respond when asked

Generate the soul

If groups/main/CLAUDE.md doesn't exist yet, copy the template first:

bash
cp groups/main/CLAUDE.md.template groups/main/CLAUDE.md

Then customise groups/main/CLAUDE.md based on the user's answers. The template provides the base structure — overwrite the placeholder sections with:

  1. Identity section — bot name, what it does
  2. Soul section — communication style, banned patterns, user context
  3. Capabilities section — what it can do (tools, scheduling, web access)
  4. Admin section — file paths, group management, IPC instructions

Use the answers to craft specific instructions. Examples:

If "direct and short":

Don't over-explain. Short answers. Show the work, don't narrate it. Two lines, not ten.

If banned words provided:

Never use these words: [list]. No filler. Write like Orwell.

Write memory seed files

Based on user description, create initial memory files:

  • groups/main/about-user.md — what they told you about themselves
  • groups/main/preferences.md — communication and tool preferences

Phase 7: Heartbeat (always set up)

The heartbeat is core to GhostClaw — it's what makes the agent proactive rather than reactive.

Create HEARTBEAT.md

Create groups/main/HEARTBEAT.md with a basic checklist. Ask the user what they'd like monitored — suggest:

  • GhostClaw error log checks
  • Disk space monitoring
  • Email checks (if Gmail is set up)
  • Any URLs or services they want pinged

Register the heartbeat task

bash
mkdir -p data/ipc/main/tasks
cat > "data/ipc/main/tasks/heartbeat_$(date +%s).json" << 'EOF'
{
  "type": "schedule_task",
  "prompt": "Read $GHOSTCLAW_GROUP_DIR/HEARTBEAT.md (or ./HEARTBEAT.md in the current directory) and run each check listed. Only message the user if something needs attention. If everything is fine, respond with <internal>All checks passed</internal> and nothing else.",
  "schedule_type": "cron",
  "schedule_value": "*/30 * * * *",
  "context_mode": "isolated"
}
EOF

Tell the user: "Heartbeat is running. It checks every 30 minutes and only messages you if something needs attention. Edit groups/main/HEARTBEAT.md any time to add or remove checks."

Phase 8: Verify

Tell the user to send a message to the bot. Check logs to confirm it responds.

bash
tail -20 logs/ghostclaw.log | grep -E "Processing|Agent output|error"

If working: "You're set. Talk to BOTNAME — it knows who you are."

Phase 9: Optional extras

After core setup, offer optional extras. Use AskUserQuestion with multiSelect:

  • /add-update-check — weekly check for GhostClaw updates (recommended)
  • /add-morning-briefing — scheduled daily/weekly briefings
  • /add-gmail-agent — email access for the bot (needs Google Cloud OAuth)
  • /add-voice-transcription — voice note transcription (needs ElevenLabs key)
  • /add-voice-reply — bot replies with voice notes via ElevenLabs (needs ElevenLabs key)

Run each selected skill in sequence. If none selected, skip — they can always add these later.

After setup, let the user know about the community:

Join the OpenClawOS community on Telegram to share feedback, get help, or see what others are building.

Expand your agent's capabilities with these related and highly-rated skills.

b1rdmania/ghostclaw

agent-browser

Browse the web for any task — research topics, read articles, interact with web apps, fill forms, take screenshots, extract data, and test web pages. Use whenever a browser would be useful, not just when the user explicitly asks.

24 5
Explore
b1rdmania/ghostclaw

add-voice-transcription

Add voice message transcription to GhostClaw using ElevenLabs Scribe API. Automatically transcribes voice notes so the agent can read and respond to them.

24 5
Explore
b1rdmania/ghostclaw

sales-enablement

When the user wants to create sales collateral, pitch decks, one-pagers, objection handling docs, or demo scripts. Also use when the user mentions 'sales deck,' 'pitch deck,' 'one-pager,' 'leave-behind,' 'objection handling,' 'deal-specific ROI analysis,' 'demo script,' 'talk track,' 'sales playbook,' 'proposal template,' 'buyer persona card,' 'help my sales team,' 'sales materials,' or 'what should I give my sales reps.' Use this for any document or asset that helps a sales team close deals. For competitor comparison pages and battle cards, see competitor-alternatives. For marketing website copy, see copywriting. For cold outreach emails, see cold-email.

24 5
Explore
b1rdmania/ghostclaw

seo-audit

When the user wants to audit, review, or diagnose SEO issues on their site. Also use when the user mentions "SEO audit," "technical SEO," "why am I not ranking," "SEO issues," "on-page SEO," "meta tags review," "SEO health check," "my traffic dropped," "lost rankings," "not showing up in Google," "site isn't ranking," "Google update hit me," "page speed," "core web vitals," "crawl errors," or "indexing issues." Use this even if the user just says something vague like "my SEO is bad" or "help with SEO" — start with an audit. For building pages at scale to target keywords, see programmatic-seo. For adding structured data, see schema-markup. For AI search optimization, see ai-seo.

24 5
Explore
b1rdmania/ghostclaw

churn-prevention

When the user wants to reduce churn, build cancellation flows, set up save offers, recover failed payments, or implement retention strategies. Also use when the user mentions 'churn,' 'cancel flow,' 'offboarding,' 'save offer,' 'dunning,' 'failed payment recovery,' 'win-back,' 'retention,' 'exit survey,' 'pause subscription,' 'involuntary churn,' 'people keep canceling,' 'churn rate is too high,' 'how do I keep users,' or 'customers are leaving.' Use this whenever someone is losing subscribers or wants to build systems to prevent it. For post-cancel win-back email sequences, see email-sequence. For in-app upgrade paywalls, see paywall-upgrade-cro.

24 5
Explore
b1rdmania/ghostclaw

qodo-pr-resolver

Review and resolve PR issues with Qodo - get AI-powered code review issues and fix them interactively (GitHub, GitLab, Bitbucket, Azure DevOps)

24 5
Explore

Didn't find tool you were looking for?

Be as detailed as possible for better results