Skip to content
cccskills
FreePublished on GitHub

add-clidash

Add a read-only web dashboard for browsing NanoClaw agents, sessions, and other resources. It builds tables from command-line JSON output and includes message activity charts, recent logs, and a viewer for skills, profiles, and CLAUDE.md files.

OriginalShow the original description

Add clidash — a zero-dependency, read-only web dashboard that derives its tabs and tables at runtime from any CLI that lists resources as JSON. Ships pre-wired for NanoClaw's ncl CLI (agent groups, sessions, channels, users, roles), plus message-activity charts, a log tail, and a read-only file viewer for group skills/CLAUDE.md/profiles.

Works withKubernetes
See how to install

Good for

  • Check agent and session status in a browser
  • Review message counts and daily activity
  • Read recent host logs
  • Inspect group skills, CLAUDE.md files, and profiles
  • Add resource tables for another CLI through configuration

Files included (36)

  • SKILL.md6.3 KB
  • add/tools/clidash/activity.js3.5 KB
  • add/tools/clidash/clidash.config.example.json3.3 KB
  • add/tools/clidash/docs.js3.7 KB
  • add/tools/clidash/logs.js667 B
  • add/tools/clidash/package.json347 B
  • add/tools/clidash/parsers.js3.3 KB
  • add/tools/clidash/public/app.js32.6 KB
  • add/tools/clidash/public/apple-touch-icon.png5.3 KB
  • add/tools/clidash/public/favicon.ico547 B
  • add/tools/clidash/public/favicon.svg570 B
  • add/tools/clidash/public/icon-192.png6.5 KB
  • add/tools/clidash/public/icon-512.png18.5 KB
  • add/tools/clidash/public/index.html1.9 KB
  • add/tools/clidash/public/md.js2.7 KB
  • add/tools/clidash/public/site.webmanifest298 B
  • add/tools/clidash/public/style.css18.0 KB
  • add/tools/clidash/README.md4.0 KB
  • add/tools/clidash/server.js17.2 KB
  • add/tools/clidash/test/activity-server.test.js2.3 KB
  • add/tools/clidash/test/activity.test.js3.8 KB
  • add/tools/clidash/test/cmd.test.js3.4 KB
  • add/tools/clidash/test/css.test.js991 B
  • add/tools/clidash/test/docs-server.test.js4.0 KB
  • add/tools/clidash/test/docs.test.js4.4 KB
  • add/tools/clidash/test/fixtures/ncl-help.txt4.1 KB
  • add/tools/clidash/test/fixtures/stub-cli.js1.8 KB
  • add/tools/clidash/test/help.test.js2.2 KB
  • add/tools/clidash/test/logs.test.js2.9 KB
  • add/tools/clidash/test/md.test.js2.9 KB
  • add/tools/clidash/test/ncl-overview.test.js3.5 KB
  • add/tools/clidash/test/parsers.test.js4.0 KB
  • add/tools/clidash/test/server.test.js8.9 KB
  • add/tools/clidash/test/smoke.sh747 B
  • add/tools/clidash/views/ncl-overview.js1.9 KB
  • REMOVE.md544 B

SKILL.md (original)

Review the instructions the agent will receive before you install.

/add-clidash — CLI-derived read-only dashboard

clidash is a small, read-only web dashboard. You point it at any CLI that can list resources as JSON (NanoClaw's ncl, docker, kubectl, …) and it builds the dashboard at runtime: one tab per resource, a generic table over whatever columns the rows have. A new ncl resource becomes a new tab and a new column becomes a new table column with zero code changes.

It ships pre-wired for NanoClaw's ncl CLI and adds three NanoClaw-aware panels driven entirely by config:

  • Agents overview — status cards joining groups + sessions + messaging groups + wirings (green <15m / amber <2h / red older).
  • Activity — per-session inbound/outbound message totals and a daily series, read directly from the session DBs (ncl has no messages resource).
  • Logs — last N lines of allowlisted host log files.
  • Files — a read-only viewer for group skills, CLAUDE.md, and profiles.

Why it's safe

clidash is read-only by construction: the server can only execFile the argv templates in its config. {resource} is the sole substitution and is allowlist-validated against the discovered/static resource set before exec — never a shell, no free-form input reaches argv. There is no auth; the network is the auth boundary — it binds 127.0.0.1 by default. Only ever bind a private interface (e.g. a tailnet IP), never a public one.

It's distinct from /add-dashboard (which pushes JSON snapshots to a separate @nanoco/nanoclaw-dashboard npm package): clidash has zero dependencies, no build step, no push pipeline, and no edits to NanoClaw source — it just reads ncl and the session DBs.

Steps

1. Copy the tool into place

clidash is fully self-contained — copy the whole directory in:

tools/ is not a standard NanoClaw directory and cp -R won't create it, so make it first:

mkdir -p tools
cp -R .claude/skills/add-clidash/add/tools/clidash tools/clidash

That is the only file change this skill makes. Nothing in NanoClaw src/ is touched, no dependency is added.

2. Create the config

The example config is pre-wired for NanoClaw with paths relative to the repo root, so it works as-is when you run clidash from tools/clidash/:

cd tools/clidash
cp clidash.config.example.json clidash.config.json

clidash.config.json is your local config — add it to .gitignore if you don't want to commit install-specific paths:

echo 'tools/clidash/clidash.config.json' >> ../../.gitignore

The example assumes ncl is built at bin/ncl. If bin/ncl doesn't exist, build it first (pnpm run build) or point clis.ncl.bin at the right path.

3. Test

Tests use a stub CLI — no real ncl or docker needed:

npm test

All tests should pass (Node ≥ 22.5, node:test, zero dependencies).

4. Run and verify

node server.js          # serves http://127.0.0.1:4690

In another shell, confirm it's live and that ncl discovery worked:

curl -s http://127.0.0.1:4690/api/clis | head -c 400      # CLIs + discovered resources
curl -s http://127.0.0.1:4690/api/r/ncl/groups | head -c 400   # a real resource table

Then open http://127.0.0.1:4690/ in a browser. You should see the Agents overview plus a tab per ncl resource.

5. (Optional) Run as a service

clidash binds 127.0.0.1 by default. To reach it from other devices, bind a private (e.g. tailnet) IP via the BIND env var or bind in config — never a public interface.

# ~/.config/systemd/user/clidash.service   (Linux)
[Unit]
Description=clidash read-only CLI dashboard

[Service]
WorkingDirectory=%h/nanoclaw/tools/clidash
ExecStart=/usr/bin/node %h/nanoclaw/tools/clidash/server.js
Environment=BIND=127.0.0.1
Restart=on-failure

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

On macOS, wrap node server.js (with WorkingDirectory = tools/clidash) in a launchd plist the same way the main NanoClaw service is configured.

Configuration reference

clidash.config.json keys (see tools/clidash/README.md and clidash.config.example.json for the full shape):

KeyPurpose
port, bind, refreshSecondsserver bind + UI auto-refresh cadence
clis.<name>.bin / cwd / envhow to invoke the CLI (bin is relative to cwd)
clis.<name>.discover or resourcesruntime discovery (ncl help) vs a static resource list
clis.<name>.listargv template; {resource} is the only substitution
clis.<name>.outputjson or jsonlines (docker/kubectl style)
clis.<name>.unwrapdot-path into a response envelope (e.g. data)
clis.<name>.enrich/badges/summarytable decorations (ID→name joins, status colors, summary cards)
activitysessionsRoot + days for the message-activity charts
logsdir, tailLines, and an allowlist of files to tail
docsfile viewer: root, a deny glob list, and collections of glob patterns

Adding a second CLI is config-only — e.g. docker is included as a jsonlines example. View plugins (views/<cli>-<view>.js) are the only per-CLI code and are optional.

Troubleshooting

  • ENOENT / config not found — run from tools/clidash/ and make sure you copied clidash.config.example.json to clidash.config.json (step 2), or set CLIDASH_CONFIG=/abs/path.json.
  • No ncl resources / discovery empty — bin/ncl isn't built or the path is wrong. Build it (pnpm run build) or fix clis.ncl.bin.
  • docker tab errors — the docker daemon isn't running, or remove the docker CLI from config if you don't need it.
  • Can't reach it from another device — it binds 127.0.0.1; set BIND=<private-ip> (tailnet), never a public interface.
  • Empty Activity/Logs/Files — check that activity.sessionsRoot, logs.dir, and docs.root resolve to your NanoClaw root (relative to where you launch node server.js).

Removal

See REMOVE.md.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

add-anydoc

FreeSummary

Equip NanoClaw agents to convert attached office documents into Markdown locally using Firecrawl AnyDoc. Agents can read Word, PowerPoint, Excel, and text-based PDF files without uploading them to an external parsing service.

  • Reading and summarizing attached office documents
  • Converting documents without uploading them to an external service
  • Extracting text from text-based PDFs
nanocoai/nanoclaw31KUpdated Oct 22, 2026

Let a NanoClaw container agent call local models running in Atomic Chat. The skill adds an MCP server, a connection that exposes model listing and text generation as tools, while Claude continues to coordinate the work.

  • Delegate part of Claude's work to a local model
  • List models available in Atomic Chat
  • Generate an answer with a specified local model
nanocoai/nanoclaw31KUpdated Oct 22, 2026

add-codex

FreeSummary

Add Codex as the agent that plans tasks and coordinates tools in NanoClaw. Choose it for individual groups alongside Claude, with conversation history and session resume using a ChatGPT subscription or OpenAI API key.

  • Adding Codex as a NanoClaw agent provider
  • Choosing Claude or Codex for each group
  • Setting up ChatGPT or API key authentication
nanocoai/nanoclaw31KUpdated Oct 22, 2026

add-cursor

FreeSummary

Install Cursor as an agent backend for NanoClaw groups using its local SDK. Set up authentication and container integration so groups can use Cursor for planning, MCP tools, streaming responses, and session continuation.

  • Install Cursor as a NanoClaw agent backend
  • Configure Cursor account sign-in or API key authentication
  • Switch a specific NanoClaw group to Cursor
nanocoai/nanoclaw31KUpdated Oct 22, 2026

add-dashboard

FreeSummary

Install a local NanoClaw dashboard to inspect agents, sessions, channels, messages, and users. It displays token usage, context usage, activity, and live logs using periodic data snapshots and a log forwarding module.

  • Checking agent and session status in one place
  • Reviewing token and context usage
  • Following live logs with level filters
nanocoai/nanoclaw31KUpdated Oct 22, 2026

add-deltachat

FreeSummary

Connect NanoClaw agents to DeltaChat for email-based messaging with end-to-end encryption. Set up direct chats or small group conversations, exchange file attachments, and link each chat to the appropriate agent group.

  • Chatting with a personal assistant through DeltaChat
  • Using an agent in a small DeltaChat group
  • Exchanging files with an agent in chat
nanocoai/nanoclaw31KUpdated Oct 22, 2026

See all skills by nanocoai

Report a problem with this skill