OpenClaw — Momenta Tech

Setup log and operations reference. Machine: openclaw-macbookpro · Last updated: 2026-02-25

Task Tracker

#TaskStatus
1Install OpenClawDONE
2Configure model providers (OpenAI Codex)DONE
3Connect Slack (socket mode)DONE
4Create Lobster agent (default bot)DONE
5Create Video-Producer agent (PL0 pipeline)DONE
6Configure agent routingDONE
7Pre-flight verification & end-to-end testPENDING

Task 1: Install OpenClaw

Machine Details

Hostopenclaw-macbookpro
Usermomentatech
OSmacOS 26.3 (Intel)
Tailscale IP100.115.140.26
SSHssh momentatech@100.115.140.26
Nodev22.22.0 (/usr/local/bin/node)
npm10.9.4 (/usr/local/bin/npm)
Homebrew5.0.15 (/usr/local/bin/brew, Intel path)

Install Steps

1. First attempt — failed (permissions)

curl -fsSL https://openclaw.ai/install.sh | bash

npm install failed with EACCES: permission denied trying to rename /usr/local/lib/node_modules/openclaw. Old install owned the directory as root.

2. Fix permissions

sudo chown -R $(whoami) /usr/local/lib/node_modules/

3. Second attempt — success

curl -fsSL https://openclaw.ai/install.sh | bash

OpenClaw v2026.2.25 installed. Doctor ran automatically:

Post-Install State

Version2026.2.25
Config~/.openclaw/openclaw.json
Gateway token564fbd64b04c5305ed70d6063cb32701ba3331c94db96bf8
Dashboardhttp://127.0.0.1:18789
Skills eligible7
Skills missing reqs44
Keys backup~/openclaw-backup/keys.json

Outstanding Issues (Resolved)

Task 2: Configure Model Providers

Steps

1. Run configure wizard

openclaw configure → Model → OpenAI → OpenAI Codex (ChatGPT OAuth)

OAuth flow: wizard generated a URL, user opened in local browser, pasted redirect URL back.

2. Result

Default model set to openai-codex/gpt-5.3-codex.

Current Model Config

Default modelopenai-codex/gpt-5.3-codex
Auth methodOAuth (ChatGPT Codex)
Auth profileopenai-codex:default

Anthropic Provider (Added Later)

Anthropic API key added via env.ANTHROPIC_API_KEY in openclaw.json. No auth profile needed — OpenClaw auto-detects the env var for Anthropic models.

Available models: anthropic/claude-opus-4-6, anthropic/claude-sonnet-4-6

Still Needed

Task 3: Connect Slack

Steps

1. Run configure wizard

openclaw configure → Channels → Slack (Socket Mode)

2. Enter tokens

3. Channel allowlist

C0AGU4295HQ,C0AGT89CSKD

Resolved: #lobster-test + #video-production

4. DM policy

Set to Pairing (recommended) — unknown DMs get a pairing code.

5. Gateway restart + pairing

openclaw gateway restart
openclaw pairing approve slack 9Q99B7B7

Approved Slack sender U0AG3M14UTX.

Slack Config Summary

App IDA0AGCHZD03Z
ModeSocket Mode
Channel policyAllowlist
#lobster-testC0AGU4295HQ — allowed
#video-productionC0AGT89CSKD — allowed
DM policyPairing
Approved senderU0AG3M14UTX
StreamingPartial + native

Task 4: Create Lobster Agent

Default Slack bot. Handles all channels except #video-production.

Agent IDlobster
Modelopenai-codex/gpt-5.3-codex
DefaultYes (catches unmatched Slack traffic)
Workspace~/.openclaw/workspace-lobster/

Workspace Files

Task 5: Create Video-Producer Agent

AI video production pipeline for Punchlist Zero content. Handles #video-production only.

Agent IDvideo-producer
Modelanthropic/claude-opus-4-6
Channel#video-production (C0AGT89CSKD)
Workspace~/.openclaw/workspace-video/

Workspace Files

Workspace Directory Structure

workspace-video/
├── SOUL.md
├── IDENTITY.md
├── config/
│   ├── technical_notes.md
│   ├── style_guide.md
│   └── demo_context.md
├── scripts/
├── connectors/
├── workflows/
├── runs/
├── logs/
├── topics/
├── analytics/
├── output/{videos,thumbnails,metadata}/
└── assets/{stock_video,stock_images,music,voiceover}/

Task 6: Configure Agent Routing

Config Schema (Learned)

Important: Agents go in agents.list[] as an array, NOT as top-level keys under agents. First attempt used agents.lobster / agents.video-producer which was rejected by the config validator.

Auth for Anthropic uses env.ANTHROPIC_API_KEY — no auth profile needed. Attempted auth.profiles.anthropic:default.mode: "api-key" but was rejected (valid values differ).

Final Bindings

{
  "bindings": [
    {
      "agentId": "video-producer",
      "match": {
        "channel": "slack",
        "peer": { "kind": "channel", "id": "C0AGT89CSKD" }
      }
    },
    {
      "agentId": "lobster",
      "match": { "channel": "slack" }
    }
  ]
}

Order matters: specific peer match first, generic catch-all second.

Verification

openclaw status output after fix:

System Requirements (Video Production)

Installed Tools

ToolVersionFull PathStatus
FFmpeg8.0.1/usr/local/bin/ffmpegOK
Python3.12.12/usr/local/bin/python3.12OK
ImageMagick7.1.2-15/usr/local/bin/magickOK
yt-dlp2026.02.21/usr/local/bin/yt-dlpOK (relinked)
sag (TTS)0.2.2/usr/local/bin/sagOK

Python Packages

Pillow12.1.1OK — text rendering verified
requests2.32.5OK
pydub0.25.1OK

Fonts

Arial Bold.ttfFound
Impact.ttfFound

All at: /System/Library/Fonts/Supplemental/

API Keys in OpenClaw env

ServiceEnv VariableStatus
ElevenLabsELEVENLABS_API_KEYConfigured
PexelsPEXELS_API_KEYConfigured
PixabayPIXABAY_API_KEYConfigured
AnthropicANTHROPIC_API_KEYConfigured
Runway MLRUNWAYML_API_KEYNot set (key expired, needs rotation)

OpenClaw Skills

SkillStatusUse
slackReadyMessages, reactions, pins in Slack
video-framesReadyExtract frames/clips from video via ffmpeg
coding-agentReadyDelegate coding tasks to sub-agents
sag (TTS)Binary found, skill shows missingElevenLabs TTS — may need gateway restart
nano-banana-proMissingNeeds GEMINI_API_KEY

Total: 8 ready / 51 total

Known Constraints