Agent skill

NanoClaw Monitoring Dashboard

by nanocoai in nanocoai/nanoclaw

Adds a local monitoring dashboard to NanoClaw by installing its npm package and a pusher module that sends periodic JSON snapshots of agent activity.

MITAuto-check: notesDevOps & Cloud

Install NanoClaw Monitoring Dashboard

skills CLI
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install nanocoai/nanoclaw add-dashboard --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/add-dashboard .claude/skills/add-dashboard && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
add-dashboard
GitHub stars
31k
Token cost
~1.3k tokens
SKILL.md length
477 words
Files
4
Skills in repo
59
Repo updated
First seen
Licence
MIT

At a glance

Adds a local monitoring dashboard to NanoClaw by installing its npm package and a pusher module that sends periodic JSON snapshots of agent activity.

  • Works in 6 steps: Install the npm package → Copy the pusher module and its tests → Wire into src/index.ts → …
  • Watching NanoClaw agent groups, sessions and token usage in a browser
  • SKILL.md covers Architecture, Steps, Dashboard Pages and Troubleshooting, plus 1 more section
  • Runs TypeScript scripts from its folder; calls pnpm, curl and node; needs DASHBOARD_SECRET

What it does

The dashboard shows agent groups, sessions, channels, users, token usage, context windows, message activity and live logs. Inside NanoClaw a pusher module collects the data and posts JSON snapshots to an ingest endpoint of the separate `@nanoco/nanoclaw-dashboard` npm package, which serves the pages.

Setup installs the package with pnpm, copies `dashboard-pusher.ts` and two tests into `src/`, and adds one block to `main()` in `src/index.ts`, just before the line that logs NanoClaw as running: a dynamic import and a call to `startDashboard()`. That function reads `DASHBOARD_SECRET` and `DASHBOARD_PORT` from `.env` and does nothing when the secret is unset. A wiring test checks the edit through the TypeScript syntax tree, and a behavior test posts a snapshot to a fake dashboard.

When your agent uses it

  • Watching NanoClaw agent groups, sessions and token usage in a browser
  • Viewing real-time logs and message activity for a running NanoClaw
  • Verifying that the dashboard pusher is wired into startup correctly

Example prompts

  • “Add the monitoring dashboard to NanoClaw and generate a secret for it.”
  • “Install the dashboard pusher and run its tests to confirm it is wired into index.ts.”
  • “Show me token usage and context window sizes for my agent groups on the dashboard.”

Requirements

  • A NanoClaw installation
  • pnpm to install the dashboard package
  • A `DASHBOARD_SECRET` value in `.env`

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Install the npm package
  2. Copy the pusher module and its tests
  3. Wire into src/index.ts
  4. Add environment variables to .env
  5. Build, test, and restart
  6. Verify (runtime smoke check)

What it can do on your machine

Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships script files (TypeScript), which the agent can run.

    Shell commands in SKILL.md call:

    • pnpm
    • curl
    • node

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md. Its commands use pnpm and curl, which can reach the network depending on how they are called.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names these keys or tokens, usually read from environment variables:

    • DASHBOARD_SECRET

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

NanoClaw Monitoring Dashboard loads about 1.3k tokens when it runs. Until then it costs about 35 tokens; SKILL.md has 477 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~35
When it runs · the whole SKILL.md, loaded when a task matches
~1.3k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check: notes

The automated check noted patterns worth knowing about, such as sudo or a known installer.

  • NoteMentions a .env fileSKILL.md:58
    ### 4. Add environment variables to .env
  • NoteMentions a .env fileSKILL.md:107
    *: Verify `DASHBOARD_SECRET` matches in `.env`
  • NoteMentions a .env fileSKILL.md:108
    conflict**: Change `DASHBOARD_PORT` in `.env`
  • NoteMentions a .env fileSKILL.md:120
    BOARD_SECRET` and `DASHBOARD_PORT` from `.env`.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 477 words, ~1,340 tokens.

Download SKILL.mdSave it as .claude/skills/add-dashboard/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.
name
add-dashboard
description
Add a monitoring dashboard to NanoClaw. Installs @nanoco/nanoclaw-dashboard and a pusher that sends periodic JSON snapshots.

/add-dashboard — NanoClaw Dashboard

Adds a local monitoring dashboard showing agent groups, sessions, channels, users, token usage, context windows, message activity, and real-time logs.

Architecture

NanoClaw (pusher)              Dashboard (npm package)
┌──────────┐    POST JSON      ┌──────────────┐
│ collects │ ────────────────→ │ /api/ingest  │
│ DB data  │   every 60s       │ in-memory    │
│ tails    │ ────────────────→ │ /api/logs/   │
│ log file │   every 2s        │   push       │
└──────────┘                   │ serves UI    │
                               └──────────────┘

Steps

1. Install the npm package
bash
pnpm install @nanoco/nanoclaw-dashboard
2. Copy the pusher module and its tests

Copy all three resource files into src/. The tests ship with the skill and run against the composed project — they're how you confirm the skill works and is wired in correctly.

.claude/skills/add-dashboard/resources/dashboard-pusher.ts       → src/dashboard-pusher.ts
.claude/skills/add-dashboard/resources/dashboard-pusher.test.ts  → src/dashboard-pusher.test.ts
.claude/skills/add-dashboard/resources/dashboard-wiring.test.ts  → src/dashboard-wiring.test.ts
  • dashboard-pusher.test.ts — behavior: starts the pusher, posts a real snapshot to a fake dashboard.
  • dashboard-wiring.test.ts — the code edit in step 3: asserts (via the TS AST) that index.ts dynamically imports ./dashboard-pusher.js and awaits startDashboard() as colocated statements of main(), after DB init and before the boot-complete log. Delete or misplace the edit and this goes red.
3. Wire into src/index.ts

This is the skill's one integration point, and it's deliberately minimal and self-contained: all the startup logic lives in dashboard-pusher.ts, and the import is colocated with the call so the whole edit is a single block in one place — there's no separate top-of-file import to add (or to remember to remove).

Add this block inside main(), just before the log.info('NanoClaw running') line:

typescript
  // Dashboard (optional; no-ops without DASHBOARD_SECRET)
  const { startDashboard } = await import('./dashboard-pusher.js');
  await startDashboard();

startDashboard() reads DASHBOARD_SECRET/DASHBOARD_PORT itself and no-ops if the secret is unset, so nothing else in core needs to change.

4. Add environment variables to .env
DASHBOARD_SECRET=<generate-a-random-secret>
DASHBOARD_PORT=3100

Generate the secret: node -e "console.log('nc-' + require('crypto').randomBytes(16).toString('hex'))"

5. Build, test, and restart

Run from your NanoClaw project root:

bash
pnpm run build
pnpm exec vitest run src/dashboard-pusher.test.ts src/dashboard-wiring.test.ts   # behavior + wiring
source setup/lib/install-slug.sh
systemctl --user restart $(systemd_unit)              # Linux
# or: launchctl kickstart -k gui/$(id -u)/$(launchd_label)  # macOS

Run build before the tests: it's what guards the @nanoco/nanoclaw-dashboard dependency. dashboard-pusher.ts reaches the package through await import('@nanoco/nanoclaw-dashboard'), so if step 4 was skipped, pnpm run build fails with TS2307: Cannot find module. The behavior test deliberately mocks that package — its startDashboard binds a real dashboard port, a side effect we don't want in a test — so the test alone would pass with the dependency missing. Build is therefore the leg that verifies the dependency is installed; keep it ahead of the tests in the validate step.

Show full SKILL.md (157 more words)Show less
6. Verify (runtime smoke check)

Once the service is restarted, confirm the dashboard is live:

bash
curl -s http://localhost:3100/api/status
curl -s -H "Authorization: Bearer <secret>" http://localhost:3100/api/overview

Open http://localhost:3100/dashboard in a browser.

Dashboard Pages

PageShows
OverviewStats, token usage + cache hit rate, context windows, activity chart
Agent GroupsSessions, wirings, destinations, members, admins
SessionsStatus, container state, context window usage bars
ChannelsLive/offline status, messaging groups, sender policies
MessagesPer-session inbound/outbound messages
UsersPrivilege hierarchy: owner > admin > member
LogsReal-time log streaming with level filter

Troubleshooting

  • "No data yet": Wait 60s for first push, or check logs for push errors
  • 401 errors: Verify DASHBOARD_SECRET matches in .env
  • Port conflict: Change DASHBOARD_PORT in .env
  • No logs: Check logs/nanoclaw.log exists

Removal

Reverse the apply steps. Safe to re-run even if some pieces are already gone.

bash
rm -f src/dashboard-pusher.ts src/dashboard-pusher.test.ts src/dashboard-wiring.test.ts
pnpm uninstall @nanoco/nanoclaw-dashboard 2>/dev/null || true

Then, by hand, remove the single dashboard block the skill added to main() in src/index.ts (the // Dashboard (optional…) comment, the await import('./dashboard-pusher.js') line, and the await startDashboard(); call), and remove DASHBOARD_SECRET and DASHBOARD_PORT from .env.

bash
pnpm run build

© nanocoai, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 3 other files in .claude/skills/add-dashboard of nanocoai/nanoclaw.

  • SKILL.md
  • resources/dashboard-pusher.test.ts
  • resources/dashboard-pusher.ts
  • resources/dashboard-wiring.test.ts

Open the folder on GitHubat commit 66f0823

Compare with similar skills

NanoClaw Monitoring Dashboard next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

NanoClaw Monitoring Dashboard compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
NanoClaw Monitoring Dashboard this skillnanocoai/nanoclaw31k—~1.3kAutomated safety check: NotesMIT
Axiom Dashboard Builderopenclaw/clawhub9.5k—~4.9kAutomated safety check: PassMIT
Happy Infra Metrics and Grafanaslopus/happy24k—~2kAutomated safety check: NotesMIT
Axiom Cost Controlopenclaw/clawhub9.5k—~1.7kAutomated safety check: PassMIT
WizTelemetry Platform Servicekubesphere/kubesphere17k—~1.8kAutomated safety check: PassCustom licence
Sentry Miniapp SDKlizhiyao/sentry-miniapp687—~5.1kAutomated safety check: PassMIT

Similar skills

  • Axiom Dashboard Builder

    openclaw/clawhub

    Designs and deploys Axiom dashboards through the API, choosing chart types and writing APL or metrics queries, with templates and migration notes for Splunk and Grafana.

    9.5k GitHub stars~4.9k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • Queries live Prometheus metrics and manages Grafana dashboards as code for Happy's infrastructure, using the grafanactl CLI and the Grafana datasource proxy API.

    24k GitHub stars~2k tokensUpdated today
    DevOps & CloudAuto-check: notes
  • Axiom Cost Control

    openclaw/clawhub

    Finds unused data in Axiom by analyzing query patterns, then deploys a cost dashboard and ingest monitors to keep spend under the contract limit.

    9.5k GitHub stars~1.7k tokensUpdated yesterday
    DevOps & CloudAuto-check passed
  • WizTelemetry Platform Service

    kubesphere/kubesphere

    Installs and configures the WizTelemetry Platform Service extension for KubeSphere, the shared API server behind its observability extensions.

    17k GitHub stars~1.8k tokensUpdated 2 mo ago
    DevOps & CloudAuto-check passed
  • Sentry Miniapp SDK

    lizhiyao/sentry-miniapp

    Full Sentry SDK setup for Mini Programs — error monitoring, tracing, offline cache, source maps.

    687 GitHub stars~5.1k tokensUpdated today
    DevOps & CloudAuto-check passed
  • Axiom Metrics Query

    openclaw/clawhub

    Explores and queries OpenTelemetry metrics in Axiom MetricsDB, listing datasets, metrics and tags first and picking the right aggregation for each metric's type.

    9.5k GitHub stars~2.6k tokensUpdated yesterday
    DevOps & CloudAuto-check passed

More from nanocoai/nanoclaw

All 59 skills in this repo
  • Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.

    31k GitHub stars~4.6k tokensUpdated 3 days ago
    Auto-check: notes
  • Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.

    31k GitHub stars~1.1k tokensUpdated 3 days ago
    Auto-check: notes
  • Agent Browser

    nanocoai/nanoclaw

    Drives a web browser from the shell with the agent-browser CLI: open pages, read an element snapshot, click and fill by reference, grab text and screenshots.

    31k GitHub starsUsed in 2 repos~1.6k tokens
    Auto-check passed
  • Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.

    31k GitHub stars~6k tokensUpdated 3 days ago
    Auto-check: notes
  • Wires up an additional phone number onto an already-installed Dial channel, so one NanoClaw install answers SMS and AI voice calls on more than one line.

    31k GitHub stars~1.5k tokensUpdated 3 days ago
    Auto-check passed
  • Add Dial Tool

    nanocoai/nanoclaw

    Installs the `dial` CLI and a credential in NanoClaw agent containers so chosen agents can send SMS, place AI voice calls and receive verification codes.

    31k GitHub stars~4.4k tokensUpdated 3 days ago
    Auto-check passed

Questions about NanoClaw Monitoring Dashboard

What does NanoClaw Monitoring Dashboard do?

Adds a local monitoring dashboard to NanoClaw by installing its npm package and a pusher module that sends periodic JSON snapshots of agent activity. The dashboard shows agent groups, sessions, channels, users, token usage, context windows, message activity and live logs. Inside NanoClaw a pusher module collects the data and posts JSON snapshots to an ingest endpoint of the separate `@nanoco/nanoclaw-dashboard` npm package, which serves the pages.

When should I use NanoClaw Monitoring Dashboard?

NanoClaw Monitoring Dashboard fits situations like: watching NanoClaw agent groups, sessions and token usage in a browser; viewing real-time logs and message activity for a running NanoClaw; verifying that the dashboard pusher is wired into startup correctly.

How do I install NanoClaw Monitoring Dashboard in Claude Code?

Run `npx skills add nanocoai/nanoclaw --skill add-dashboard -a claude-code`. Or copy the skill folder (.claude/skills/add-dashboard in nanocoai/nanoclaw) into .claude/skills/add-dashboard in your project. Claude Code loads it when a task matches its description.

How do I install NanoClaw Monitoring Dashboard in Codex?

Run `npx skills add nanocoai/nanoclaw --skill add-dashboard -a codex`. Or copy the skill folder (.claude/skills/add-dashboard in nanocoai/nanoclaw) into .agents/skills/add-dashboard in your project. Codex loads it when a task matches its description.

Can I use NanoClaw Monitoring Dashboard in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add nanocoai/nanoclaw --skill add-dashboard -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/add-dashboard, .gemini/skills/add-dashboard, .github/skills/add-dashboard and .opencode/skills/add-dashboard in your project.

What does NanoClaw Monitoring Dashboard need to run?

Going by SKILL.md and its folder, NanoClaw Monitoring Dashboard needs TypeScript for the scripts in its folder, the command-line tools its instructions call (pnpm, curl and node) and credentials named DASHBOARD_SECRET. Our summary lists: A NanoClaw installation; pnpm to install the dashboard package; A `DASHBOARD_SECRET` value in `.env`.

Does NanoClaw Monitoring Dashboard access the network?

SKILL.md contains no URLs. Its commands use curl, which can reach the network depending on how they are called. This is read from the text; nothing was executed.

Is NanoClaw Monitoring Dashboard safe to install?

Our automated static check of SKILL.md found notes only (mentions a .env file), nothing it rates as a warning. It is not a guarantee. Review the folder before installing.

What licence does NanoClaw Monitoring Dashboard use?

NanoClaw Monitoring Dashboard is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does NanoClaw Monitoring Dashboard use?

About 1.3k tokens (SKILL.md is roughly 5.4k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to NanoClaw Monitoring Dashboard?

Skills that share tags, products or a category with NanoClaw Monitoring Dashboard: Axiom Dashboard Builder (openclaw/clawhub, 9.5k stars), Happy Infra Metrics and Grafana (slopus/happy, 24k stars), Axiom Cost Control (openclaw/clawhub, 9.5k stars) and WizTelemetry Platform Service (kubesphere/kubesphere, 17k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains NanoClaw Monitoring Dashboard?

nanocoai (a GitHub organization) maintains it in nanocoai/nanoclaw, which has 30,902 GitHub stars. The repository holds 59 skills in this directory. The repository was last updated on October 6, 2026.

Source: nanocoai/nanoclaw on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.