Skip to content

VACInc/openclaw-tool-call-viewer

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

46 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

OpenClaw Tool Call Viewer

A lightweight web UI for browsing OpenClaw session tool call history. Zero dependencies β€” just Node.js.

Screenshot

⚠️ Security Warning

Do not expose this to the public internet. Session logs contain your full command history, file paths, API responses, and potentially sensitive data. This tool is designed for local network use only.

Features

  • Dynamic parsing of JSONL session files
  • Filter by: tool type, model, session (multi-select with search), date range, text search
  • Sort by: clicking column headers β€” date, tool name, model, session
  • Cross-filtered counts β€” dropdown counts update based on other active filters
  • Copy β€” double-click arguments to copy, or πŸ“‹ button for full row JSON
  • Auto-refresh β€” polls for new calls every 10 seconds (enabled by default)
  • Export β€” download filtered results as JSON
  • Relative timestamps β€” "2m ago" with full date on hover
  • Customizable β€” set your agent name/emoji via CLI or env var
  • Mobile responsive β€” works on phones and tablets
  • LAN accessible β€” binds to 0.0.0.0

Requirements

Installing Node.js

macOS (Homebrew):

brew install node

macOS/Linux (nvm):

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
nvm install --lts

Ubuntu/Debian:

curl -fsSL https://deb.nodesource.com/setup_lts.x | sudo -E bash -
sudo apt-get install -y nodejs

Windows:

Download installer from nodejs.org

Installation

git clone https://github.com/VACInc/openclaw-tool-call-viewer.git
cd openclaw-tool-call-viewer
node server.js

No npm install needed β€” zero dependencies.

Usage

# Default (port 3847, OpenClaw sessions)
node server.js

# Custom port
node server.js --port 8080

# Custom sessions directory
node server.js --sessions /path/to/sessions

# Custom agent name (shows in title + favicon)
node server.js --name "πŸ€– Jarvis"

# Or via environment variable
OPENCLAW_AGENT_NAME="πŸ€– Jarvis" node server.js

# Demo mode (fake data, safe for screenshots)
node server.js --demo

# Show help
node server.js --help

Then open http://localhost:3847 (or your machine's LAN IP).

CLI Options

Option Short Description Default
--port -p Port to listen on 3847
--sessions -s Path to sessions directory ~/.openclaw/agents/main/sessions
--name -n Agent name for title + favicon OpenClaw (or OPENCLAW_AGENT_NAME env)
--demo Run with fake demo data
--help -h Show help message

API Endpoints

Endpoint Description
GET / Web UI
GET /api/tools?all=true All tool calls as JSON
GET /api/tools?days=7 Tool calls from last N days
GET /api/stats Aggregated stats by tool type

Running as a Service

macOS (launchd)

Create ~/Library/LaunchAgents/com.toolcallviewer.plist:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.toolcallviewer</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>/path/to/toolcallviewer/server.js</string>
    </array>
    <key>RunAtLoad</key>
    <true/>
    <key>KeepAlive</key>
    <true/>
</dict>
</plist>
launchctl load ~/Library/LaunchAgents/com.toolcallviewer.plist

Linux (systemd)

Create ~/.config/systemd/user/toolcallviewer.service:

[Unit]
Description=Tool Call Viewer

[Service]
ExecStart=/usr/bin/node /path/to/toolcallviewer/server.js
Restart=always

[Install]
WantedBy=default.target
systemctl --user enable --now toolcallviewer

License

MIT

About

🦞 Web UI for browsing OpenClaw session tool call history. Zero dependencies, just Node.js.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages