Luciano Castillo e2922a08fa feat(monitor): layout direction toggle + settings cleanup (#19)
* feat(monitor): add CloudDownload option for Gateway sync and remove Historical Mode toggle

- Introduced a new CloudDownload feature for syncing gateway sessions over the last 24 hours.
- Removed the Historical Mode toggle from the SettingsPanel to streamline the interface.

* feat(monitor): implement layout direction toggle in ActionGraph

- Added a state to manage layout direction (horizontal or vertical) in the ActionGraph component.
- Introduced a button to toggle between 'LR' (left-to-right) and 'TB' (top-to-bottom) layouts, enhancing user control over session display.
- Updated layout algorithm to accommodate the new direction state, improving visual organization of sessions and actions.
- Adjusted spacing constants for better alignment in both layout modes.

This update enhances the usability and flexibility of the ActionGraph visualization.

* feat(monitor): enhance session layout algorithm with hierarchical column mapping

- Introduced a new layout algorithm that organizes sessions into columns based on their spawn hierarchy, improving visual clarity.
- Added constants for layout spacing and offsets to better manage session positioning.
- Implemented functions to determine session depth and root index, facilitating a more structured representation of sessions and their relationships.
- Updated item sorting within sessions to ensure proper chronological order of actions and executions.

This update significantly enhances the organization and usability of the session display in the monitor component.

* feat(monitor): add ROOT_START_Y constant for root session positioning

- Introduced ROOT_START_Y constant to define the vertical offset for the first root session in the layout algorithm.
- Updated spawnY logic to position root sessions correctly below the crab, enhancing the visual hierarchy in the session layout.

This change improves the clarity and organization of session displays in the monitor component.
2026-01-29 13:09:38 -05:00
2026-01-26 14:55:04 -05:00
2026-01-26 20:25:12 -05:00
2026-01-25 17:47:27 -05:00
2026-01-25 17:47:27 -05:00
2026-01-26 15:13:31 -05:00
2026-01-28 18:04:22 -05:00
2026-01-28 18:04:22 -05:00
2026-01-25 17:47:27 -05:00

🦀 Crabwalk

Real-time companion monitor for Moltbot (Clawdbot) agents by @luccasveg.

Watch your AI agents work across WhatsApp, Telegram, Discord, and Slack in a live node graph. See thinking states, tool calls, and response chains as they happen.

Crabwalk Home

Crabwalk Monitor

Features

  • Live activity graph - ReactFlow visualization of agent sessions and action chains
  • Multi-platform - Monitor agents across all messaging platforms simultaneously
  • Real-time streaming - WebSocket connection to clawdbot gateway
  • Action tracing - Expand nodes to inspect tool args and payloads
  • Session filtering - Filter by platform, search by recipient

Installation

docker run -d \
  -p 3000:3000 \
  -e CLAWDBOT_API_TOKEN=your-token \
  -e CLAWDBOT_URL=ws://host.docker.internal:18789 \
  ghcr.io/luccast/crabwalk:latest

Note: When running Crabwalk in Docker, the Moltbot gateway typically runs on the host. Use CLAWDBOT_URL=ws://host.docker.internal:18789 so the container can connect. If you're running Moltbot with bind: loopback and tailscale serve for secure tailnet-only access, you'll need to run the crabwalk container with host networking - replace p:3000:3000 with --network host This allows the container to reach 127.0.0.1:18789 while maintaining the security benefits of loopback-only binding.

Or with docker-compose:

curl -O https://raw.githubusercontent.com/luccast/crabwalk/master/docker-compose.yml
CLAWDBOT_API_TOKEN=your-token CLAWDBOT_URL=ws://host.docker.internal:18789 docker-compose up -d

If gateway is bind: loopback only, you will need to edit the docker-compose.yml to add network_mode: host

From source

git clone https://github.com/luccast/crabwalk.git
cd crabwalk
npm install
CLAWDBOT_API_TOKEN=your-token npm run dev

Open http://localhost:3000/monitor

Configuration

Requires clawdbot gateway running on the same machine.

Gateway Token

Find your token in the clawdbot config file:

# Look for gateway.auth.token
cat ~/.clawdbot/clawdbot.json | rg "gateway\.auth\.token"

Or with jq:

jq '.gateway.auth.token' ~/.clawdbot/clawdbot.json

Or copy it directly:

export CLAWDBOT_API_TOKEN=$(python3 -c "import json,os; print(json.load(open(os.path.expanduser('~/.clawdbot/clawdbot.json')))['gateway']['auth']['token'])")

Accessing from a remote host

If you are running this on a remote server and accessing it through a non-local browser, the default allowedHosts behaviour will prevent access to the web UI.

If running in docker, you can pass the environment variable ALLOWED_HOSTS with a comma-separated list of hosts you wish to allow access to the crabwalk UI.

If running from source, you can either pass ALLOWED_HOSTS as an env var at the command line, or use a .env file.

Stack

TanStack Start, ReactFlow, Framer Motion, tRPC, TanStack DB

S
Description
No description provided
Readme MIT
5.4 MiB
Languages
TypeScript 94.4%
CSS 3.3%
Shell 2.2%
Dockerfile 0.1%