← Blog

2026-03-12T09:00:00Z · 7 min read

How to build your own OpenClaw runbook from scratch

A step-by-step tutorial. Start with a blank workspace, add a personality, write a schedule, and build a working daily standup summarizer from zero.

Every runbook in the gallery started as a blank file. Someone had a task they were doing by hand, wrote it down, and told their agent to handle it instead. That is the whole process.

This tutorial walks through building a real runbook from scratch: a daily standup summarizer. By the end, your agent will check your git history and calendar every morning and generate a standup report. You will never write another standup manually.

What you need

  • OpenClaw installed and running
  • A connected channel (Telegram is easiest)
  • 15-20 minutes

Step 1: Start with a blank SOUL.md

SOUL.md is where your agent gets its personality and core behavior. It loads once at startup. Every session, your agent reads it first.

Navigate to your workspace:

cd ~/.openclaw/workspace

Create a blank SOUL.md:

touch SOUL.md

Open it and add something minimal. Do not overthink it. The goal is to tell your agent what role it plays and how it should behave:

# SOUL.md

You are a productivity assistant. Your job is to help reduce the time spent on repetitive reporting.

Be concise. No filler. Deliver information in the shortest format that is still useful.

When you run a report, send it to Telegram. Do not ask for confirmation first.

That is enough for a starting point. You can refine it later.

Step 2: Install the skills you need

The standup summarizer needs two things: access to git history (via the github skill) and calendar data (via the gog skill). Install both:

clawhub install github
clawhub install gog

The github skill wraps the gh CLI. The gog skill connects to Google Calendar, Gmail, Drive, and Sheets. For the standup, you only need the calendar piece.

If you have not set up gog yet, follow the auth flow it shows you. It takes about 10 minutes the first time (OAuth with your Google account). After that it just works.

Step 3: Write the HEARTBEAT.md

HEARTBEAT.md is where you define scheduled behavior. Your agent reads it on every heartbeat poll. Write tasks as a numbered list of things to check and do.

Create the file:

touch HEARTBEAT.md

Here is the standup summarizer runbook:

# HEARTBEAT.md

Every weekday at 8:45am:
1. Check git log for commits in the last 24 hours across all repos
   - Run: git log --all --since="24 hours ago" --format="%h %s" --author="$(git config user.email)"
   - If no repos are configured, note that and move on
2. Check Google Calendar for today's meetings
   - List events from now until end of day
   - Include: title, time, attendees count
3. Generate a standup report in this format:
   Yesterday: [list of commits, one line each]
   Today: [list of meetings + any planned work]
   Blockers: [anything that needs attention]
4. Send the report to Telegram
5. Keep the whole report under 15 lines

Save the file. Your agent will pick it up on the next heartbeat poll.

Step 4: Test it

Do not wait until 8:45am to find out if it works. Send your agent a message in Telegram:

Run the standup report now

Your agent will read HEARTBEAT.md, execute the steps, and send back a report. If something is wrong (no git access, gog not connected), it will tell you what failed.

Common issues:

  • No git repos found: tell your agent which directory to check, or run git init in your project
  • gog not authenticated: run the gog auth flow if you skipped it
  • Calendar empty: normal if you have no events today. The report will still run.

Step 5: Customize it

The template works as-is, but a few tweaks make it yours:

  • Change the time: replace 8:45am with whatever works for your standup
  • Add repos: specify exact paths if you have multiple projects
  • Add tasks: pull from a GitHub Projects board or Notion if you use those
  • Change the format: match whatever format your team uses

The real value of building from scratch is knowing every line of the runbook. You wrote it. You know exactly what it does and how to change it.

The pattern

This same pattern works for any runbook:

  1. Identify a task you do by hand on a schedule
  2. Write down what you actually do, step by step
  3. Paste that into HEARTBEAT.md (for scheduled tasks) or SOUL.md (for always-on behavior)
  4. Install any skills needed
  5. Test it manually first, then let the schedule run it

The gallery has 40+ runbooks that followed this exact process. If you build something that works, submit it. Other people are hitting the same problems.

Submit your runbook at tryrunbooks.com/submit.

More posts