Luciano Castillo 1c0388c586 feat(monitor): nest subagent sessions, reorganizing feature (#15)
* feat(monitor): enhance session list with subagent grouping and improved filtering

- Introduced SubagentItem component for rendering subagent sessions.
- Grouped subagents under their parent sessions based on the spawnedBy relationship.
- Updated filtering logic to separate parent sessions from subagents.
- Enhanced sorting and display of sessions, including orphan subagents.
- Improved UI for session selection and status indication.

This update improves the organization and usability of the session list in the monitor component.

* fix(monitor): update session display to show recipient instead of agentId

- Changed the displayed identifier in the SessionList component from agentId to recipient for improved clarity in session representation.

* feat(monitor): add node position pinning and reorganize layout functionality

- Introduced functionality to pin node positions upon drag-end, enhancing user experience in the ActionGraph component.
- Added a button to reorganize the layout, clearing pinned positions and reapplying the layout for better visual management.
- Updated the node state handling to incorporate pinned positions during layout updates, ensuring a smoother interaction with the graph.

* fix(monitor): update styling for ExecNode and SessionNode components

- Changed the CSS class for text wrapping in ExecNode to improve readability.
- Modified the border and box shadow logic in SessionNode to enhance visual feedback based on session status, particularly for 'thinking' states.

* feat(monitor): enhance session node representation with thinking state

- Added logic to determine which sessions are in a "thinking" state based on the latest action type in the ActionGraph component.
- Updated SessionNode to accept a new `thinking` property, modifying the visual feedback (border and box shadow) to reflect this state, improving user experience and clarity in session status.

* revert: undo session thinking state and exec/session styling changes

* fix(monitor): update SubagentItem emoji representation

* feat(monitor): implement collapsible subagent groups in SessionList

- Added functionality to collapse and expand subagent groups within the SessionList component.
- Introduced a new state to manage collapsed groups and updated the UI to reflect the expanded/collapsed state with a ChevronDown icon.
- Enhanced user experience by allowing users to easily navigate through subagent sessions.

* style(monitor): update SessionList component styling

- Adjusted padding and alignment for improved layout in the SessionList component.
- Increased ChevronDown icon size for better visibility.
- Enhanced text styling for consistency and readability.

* refactor(monitor): optimize animation handling in SessionList component

- Updated SubagentItem animations to improve performance and visual feedback.
- Replaced AnimatePresence with motion.div for better control over height and opacity transitions during group collapse/expand.
- Simplified initial animation states for a smoother user experience.
2026-01-28 17:56:01 -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-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 Clawdbot gateway typically runs on the host. Use CLAWDBOT_URL=ws://host.docker.internal:18789 so the container can connect.

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

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'])")

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%