npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@tigertroll14/activityclaw

v1.0.0

Published

Real-time activity tracking and visualization for OpenClaw agents

Downloads

254

Readme

🦞 ActivityClaw

Real-time activity tracking and visualization for OpenClaw agents.

Features

  • 📊 Real-time Monitoring - Track all agent activities as they happen
  • 🤖 Multi-Agent Support - Monitors main agent + all sub-agents automatically
  • 🎨 Beautiful Dashboard - Clean, modern interface with activity feed and stats
  • 🔍 Smart Filtering - Filter by activity type (files, commands, web, messages)
  • 📈 Statistics - View activity counts, active agents, and trends
  • 🔒 Privacy-First - All data stays local in SQLite
  • ⚡ Lightweight - Minimal overhead, runs in background

What It Tracks

  • 📝 File Operations - Creates, edits, and reads
  • Commands - Shell executions via exec
  • 🔍 Web Activity - Searches and page fetches
  • 💬 Messages - Outbound messages to channels
  • 🚀 Sub-agents - Spawned agent sessions

Installation

From npm (once published)

npm install -g @rmruss2022/activityclaw
openclaw plugins install @rmruss2022/activityclaw

From GitHub

npm install -g rmruss2022/ActivityClaw
openclaw plugins install @rmruss2022/activityclaw

From Source

git clone https://github.com/rmruss2022/ActivityClaw.git
cd ActivityClaw
npm install
npm run build
openclaw plugins install -l .

Setup

Run the interactive setup wizard:

openclaw activityclaw setup

The wizard will ask you:

  • Dashboard Port (default: 18796)
  • Database Path (default: ~/.openclaw/activity-tracker/activities.db)

Configuration is saved to ~/.openclaw/activity-tracker/config.json.

Usage

View Dashboard

Open in browser:

openclaw activityclaw dashboard

Or visit directly: http://localhost:18796

Commands

# Setup and configuration
openclaw activityclaw setup        # Run setup wizard
openclaw activityclaw status       # Show status and config

# Service management
openclaw activityclaw start        # Start dashboard server
openclaw activityclaw stop         # Stop dashboard server

# Dashboard access
openclaw activityclaw dashboard    # Open dashboard in browser

# Data management
openclaw activityclaw clean --days 30  # Clean old activities

How It Works

ActivityClaw registers a tool_result_persist hook with OpenClaw that fires after every tool call. When a tool executes:

  1. Hook captures tool name, arguments, session ID, and agent label
  2. Tracker parses it into a structured activity record
  3. Activity is logged to SQLite database (non-blocking)
  4. Dashboard polls the database every 5 seconds for real-time updates

No polling of transcripts - this is event-driven and real-time.

Dashboard

The dashboard shows:

  • Activity Feed - Live stream of all agent activities
  • Statistics - Total activities, last hour count, active agents
  • Filters - View all or filter by type (files, commands, web, etc.)
  • Auto-refresh - Updates every 5 seconds automatically

Configuration

Config file: ~/.openclaw/activity-tracker/config.json

{
  "port": 18796,
  "dbPath": "/Users/you/.openclaw/activity-tracker/activities.db"
}

After changing config, restart OpenClaw:

openclaw gateway restart

Development

Build

npm install
npm run build    # Compile TypeScript
npm run dev      # Watch mode

Test Locally

npm run build
openclaw plugins install -l .
openclaw activityclaw status
openclaw activityclaw dashboard

Project Structure

ActivityClaw/
├── src/
│   ├── index.ts          # Plugin entry point
│   ├── tracker.ts        # Activity parsing logic
│   ├── server.ts         # Express API server
│   └── hooks/
│       └── activity.ts   # Hook registration
├── dashboard/
│   └── public/
│       └── index.html    # Standalone dashboard UI
├── dist/                 # Compiled output
└── package.json

Troubleshooting

Dashboard won't load

Check if server is running:

openclaw activityclaw status

If stopped, start it:

openclaw activityclaw start

Port already in use

Change port in config:

openclaw activityclaw setup
# Choose a different port

No activities showing

  1. Ensure the plugin is installed: openclaw plugins list
  2. Check server status: openclaw activityclaw status
  3. Try a test action (e.g., create a file)
  4. Check database: ls -lh ~/.openclaw/activity-tracker/activities.db

Comparison to Polling Approach

| Polling (Old) | Event-driven (ActivityClaw) | |---------------|------------------------------| | 3-second delay | Instant (real-time) | | Reads entire transcripts | Receives events directly | | Separate process | Integrated into OpenClaw | | Manual LaunchAgent setup | Auto-starts with plugin | | No CLI | Full CLI suite |

License

MIT

Contributing

Pull requests welcome! Please ensure:

  • TypeScript compiles without errors
  • Dashboard works in latest Chrome/Firefox/Safari
  • No breaking changes to API

Credits

Created by Matthew Russell (@rmruss2022)

Built for the OpenClaw community 🦞