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.
Adds a local monitoring dashboard to NanoClaw by installing its npm package and a pusher module that sends periodic JSON snapshots of agent activity.
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install nanocoai/nanoclaw add-dashboard --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "add-dashboard" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboard into .claude/skills/add-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dashboard", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboardType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install nanocoai/nanoclaw add-dashboard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/add-dashboard .agents/skills/add-dashboard && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "add-dashboard" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboard into .agents/skills/add-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dashboard", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install nanocoai/nanoclaw add-dashboard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/add-dashboard .cursor/skills/add-dashboard && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "add-dashboard" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboard into .cursor/skills/add-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dashboard", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/nanocoai/nanoclaw.git --path .claude/skills/add-dashboard--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install nanocoai/nanoclaw add-dashboard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/add-dashboard .gemini/skills/add-dashboard && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "add-dashboard" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboard into .gemini/skills/add-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dashboard", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install nanocoai/nanoclaw add-dashboardInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/add-dashboard .github/skills/add-dashboard && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "add-dashboard" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboard into .github/skills/add-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dashboard", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add nanocoai/nanoclaw --skill add-dashboard -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install nanocoai/nanoclaw add-dashboard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/nanocoai/nanoclaw.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/add-dashboard .opencode/skills/add-dashboard && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "add-dashboard" agent skill from https://github.com/nanocoai/nanoclaw/tree/main/.claude/skills/add-dashboard into .opencode/skills/add-dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "add-dashboard", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
add-dashboardAdds 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.
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.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 66f0823. It shows what the files ask for, not the result of running them.
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.
Ships script files (TypeScript), which the agent can run.
Shell commands in SKILL.md call:
pnpmcurlnodeFrom the folder's file list and the shell code blocks in SKILL.md.
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.
Names these keys or tokens, usually read from environment variables:
DASHBOARD_SECRETFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
### 4. Add environment variables to .env*: Verify `DASHBOARD_SECRET` matches in `.env`conflict**: Change `DASHBOARD_PORT` in `.env`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.
The full file from nanocoai/nanoclaw at commit 66f0823, republished under its MIT licence (© nanocoai). 477 words, ~1,340 tokens.
.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.Adds a local monitoring dashboard showing agent groups, sessions, channels, users, token usage, context windows, message activity, and real-time logs.
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 │
└──────────────┘pnpm install @nanoco/nanoclaw-dashboardCopy 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.tsdashboard-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.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:
// 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.
DASHBOARD_SECRET=<generate-a-random-secret>
DASHBOARD_PORT=3100Generate the secret: node -e "console.log('nc-' + require('crypto').randomBytes(16).toString('hex'))"
Run from your NanoClaw project root:
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) # macOSRun 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.
Once the service is restarted, confirm the dashboard is live:
curl -s http://localhost:3100/api/status
curl -s -H "Authorization: Bearer <secret>" http://localhost:3100/api/overviewOpen http://localhost:3100/dashboard in a browser.
| Page | Shows |
|---|---|
| Overview | Stats, token usage + cache hit rate, context windows, activity chart |
| Agent Groups | Sessions, wirings, destinations, members, admins |
| Sessions | Status, container state, context window usage bars |
| Channels | Live/offline status, messaging groups, sender policies |
| Messages | Per-session inbound/outbound messages |
| Users | Privilege hierarchy: owner > admin > member |
| Logs | Real-time log streaming with level filter |
DASHBOARD_SECRET matches in .envDASHBOARD_PORT in .envlogs/nanoclaw.log existsReverse the apply steps. Safe to re-run even if some pieces are already gone.
rm -f src/dashboard-pusher.ts src/dashboard-pusher.test.ts src/dashboard-wiring.test.ts
pnpm uninstall @nanoco/nanoclaw-dashboard 2>/dev/null || trueThen, 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.
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
SKILL.md and 3 other files in .claude/skills/add-dashboard of nanocoai/nanoclaw.
Open the folder on GitHubat commit 66f0823
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| NanoClaw Monitoring Dashboard this skillnanocoai/nanoclaw | 31k | — | ~1.3k | Automated safety check: Notes | MIT | |
| Axiom Dashboard Builderopenclaw/clawhub | 9.5k | — | ~4.9k | Automated safety check: Pass | MIT | |
| Happy Infra Metrics and Grafanaslopus/happy | 24k | — | ~2k | Automated safety check: Notes | MIT | |
| Axiom Cost Controlopenclaw/clawhub | 9.5k | — | ~1.7k | Automated safety check: Pass | MIT | |
| WizTelemetry Platform Servicekubesphere/kubesphere | 17k | — | ~1.8k | Automated safety check: Pass | Custom licence | |
| Sentry Miniapp SDKlizhiyao/sentry-miniapp | 687 | — | ~5.1k | Automated safety check: Pass | MIT |
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.
slopus/happy
Queries live Prometheus metrics and manages Grafana dashboards as code for Happy's infrastructure, using the grafanactl CLI and the Grafana datasource proxy API.
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.
kubesphere/kubesphere
Installs and configures the WizTelemetry Platform Service extension for KubeSphere, the shared API server behind its observability extensions.
lizhiyao/sentry-miniapp
Full Sentry SDK setup for Mini Programs — error monitoring, tracing, offline cache, source maps.
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.
nanocoai/nanoclaw
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.
nanocoai/nanoclaw
Installs or refreshes OneCLI as the gateway provider for NanoClaw, copying the adapter files, registering the provider and running the setup script.
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.
nanocoai/nanoclaw
Guides a conversational migration from an OpenClaw install to NanoClaw v2, carrying over identity, channel credentials, scheduled tasks and workspace files.
nanocoai/nanoclaw
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.
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.
Categories
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.
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.
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.
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.
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.
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`.
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.
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.
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.
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.
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.
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.