Docs

Quickstart — Get Your Agent Org Running

This gets you from zero to a running CEO persona in 15 commands. No choices until you have something working. Customization comes after.

Time to complete: 15–20 minutes
Default persona: CEO
Prerequisites: macOS or Linux, Node.js 18+, a Telegram account


Step 1: Install OpenClaw

npm install -g openclaw

Verify:

openclaw --version

Step 2: Start the gateway

openclaw gateway start
openclaw gateway status

The gateway should show running. This is the process that handles messages and cron jobs.


Step 3: Configure Telegram

Create a bot via @BotFather on Telegram. Copy the token.

openclaw config set channels.telegram.token "YOUR_BOT_TOKEN"

Get your personal Telegram user ID from @userinfobot. Copy it — you'll need it for crons.

Enable direct messages:

openclaw config set channels.telegram.allowDM true

Restart gateway:

openclaw gateway restart

Send your bot a message: /start. It should respond.


Step 4: Create workspace

mkdir -p ~/.openclaw/workspace/{memory,memory/archive,projects,scripts,docs,personas}
cd ~/.openclaw/workspace
git init

Step 5: Install the CEO persona

Download or clone the ClawGear personas repo, then:

cp personas/ceo/SOUL.md ~/.openclaw/workspace/SOUL.md
cp personas/ceo/AGENTS.md ~/.openclaw/workspace/AGENTS.md
cp personas/ceo/HEARTBEAT.md ~/.openclaw/workspace/HEARTBEAT.md
cp personas/ceo/WAKE_PROTOCOL.md ~/.openclaw/workspace/WAKE_PROTOCOL.md

Step 6: Customize persona files

Replace template variables. Open each file and replace:

| Variable | Replace with | |---|---| | {{AGENT_NAME}} | Your agent's name (e.g., "Max") | | {{OPERATOR_NAME}} | Your name (e.g., "Sarah") | | {{COMPANY_NAME}} | Your company (e.g., "Acme Corp") | | {{PROJECT_NAME}} | Your main project folder (e.g., "main") |

Quick replace:

AGENT=Max OPERATOR=Sarah COMPANY="Acme Corp" PROJECT=main
for f in SOUL.md AGENTS.md HEARTBEAT.md WAKE_PROTOCOL.md; do
  sed -i '' \
    "s/{{AGENT_NAME}}/$AGENT/g" \
    "s/{{OPERATOR_NAME}}/$OPERATOR/g" \
    "s/{{COMPANY_NAME}}/$COMPANY/g" \
    "s/{{PROJECT_NAME}}/$PROJECT/g" \
    ~/.openclaw/workspace/$f
done

Step 7: Create MEMORY.md and USER.md

cat > ~/.openclaw/workspace/MEMORY.md << 'EOF'
# MEMORY.md — Max Long-Term Memory

## WHO I AM
- Name: Max
- Workspace: ~/.openclaw/workspace

## SARAH
- Timezone: America/Los_Angeles
- Telegram DM: YOUR_TELEGRAM_ID
- Prefers: brief reports, autonomous action, close the loop
EOF

cat > ~/.openclaw/workspace/USER.md << 'EOF'
# USER.md

- Name: Sarah
- Timezone: America/Los_Angeles
- Telegram DM (chat_id): YOUR_TELEGRAM_ID
EOF

Step 8: Create your first project

mkdir -p ~/.openclaw/workspace/projects/main
cat > ~/.openclaw/workspace/projects/main/PROJECT.md << 'EOF'
# Main Project

Status: Active
Started: $(date +%Y-%m-%d)
EOF

cat > ~/.openclaw/workspace/projects/main/TASKS.md << 'EOF'
# Tasks — Main

## Active
- [ ] Set up agent org and verify working

## Backlog
- [ ] First real task
EOF

touch ~/.openclaw/workspace/projects/main/MEMORY.md

Step 9: Install the briefing script

cp scripts/generate-briefing.sh ~/.openclaw/workspace/scripts/generate-briefing.sh
chmod +x ~/.openclaw/workspace/scripts/generate-briefing.sh

Step 10: Set up your first cron

Replace YOUR_TELEGRAM_ID with your actual Telegram user ID:

openclaw cron add \
  --name "ceo-heartbeat" \
  --schedule "*/10 * * * *" \
  --prompt "Read HEARTBEAT.md if it exists. Follow it strictly. Do not infer or repeat old tasks from prior chats. If nothing needs attention, reply HEARTBEAT_OK." \
  --channel telegram \
  --to "YOUR_TELEGRAM_ID"

Step 11: Verify the heartbeat

openclaw cron list

Wait 10 minutes. You should receive a Telegram message from your bot saying HEARTBEAT_OK or surfacing a task.


Step 12: Send your first message

Send a Telegram DM to your bot:

"What are your top priorities right now?"

It should read SOUL.md, AGENTS.md, projects/main/TASKS.md, and respond with context. If it responds generically without mentioning your project — check that workspace is connected in openclaw.json.


Step 13: Commit your workspace

cd ~/.openclaw/workspace
git add -A
git commit --no-verify -m "init: CEO persona setup"

What you have now

  • CEO agent with persistent memory
  • Heartbeat cron checking for tasks every 10 minutes
  • Morning briefing on weekdays
  • Workspace with version control

Next: Customize

Change heartbeat frequency:

openclaw cron remove --name "ceo-heartbeat"
openclaw cron add --name "ceo-heartbeat" --schedule "*/30 * * * *" ...

Add more crons — see personas/ceo/cron-schedule.md for the full recommended set.

Add projects — create new folders under projects/, add to projects/index.json.

Change the persona — swap SOUL.md for a different persona (Solo Founder, Developer, Agency Operator).

Install skills — browse shopclawmart.com for add-on capabilities.


Troubleshooting

Bot doesn't respond:

  • openclaw gateway status — is it running?
  • openclaw gateway logs — look for delivery errors
  • Check Telegram token is correct in config

Heartbeat doesn't fire:

  • openclaw cron list — is cron registered?
  • Gateway restart wipes crons — re-add them after restart
  • Check format: --channel telegram --to "ID" (not --channel "telegram:ID")

Agent ignores context files:

  • Verify workspaceAccess: true in your Telegram channel config
  • Check workspace path in openclaw.json matches actual workspace directory

Need help:

  • docs/what-is-an-agent-org.md — conceptual overview
  • personas/ceo/install.md — detailed install guide