Skip to main content

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.

소스 정보

저장소
b1rdmania/ghostclaw
최근 소스 활동
2026년 3월 28일 20:13
감지된 SKILL.md 언어
영어
스타
84
포크
8

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

파일 탐색기
6 개 파일

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
setup-ghostclaw
description
First-time GhostClaw setup. Handles dependencies, authentication, channel configuration, main chat registration, soul building, and service setup. Use this for all new installs.
# 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](https://t.me/+8qJbqxzBQAZkYTNk) to share feedback, get help, or see what others are building.
GitHub에서 보기