SuperAPI AI Directory

setup-my-hermes-dashboard

Deployment & operations

View repository

Updated 10-21 19:58

About this skill

Put a personal dashboard online at https://dashboard.<domain>, next to Hermes, behind the gate that setup-vps built. It starts as an empty shell (a greeting, three status lights for the agent, a link to Hermes, a page of API keys): the user then asks Hermes "add a module to my dashboard that shows..." and Hermes writes it, tests it, puts it online and pushes it to their GitHub. The first argument is the domain (ask if missing and they have several in cf zones list), the second the alias (default hermes; use it everywhere below). Do every step yourself, talk to the user in their language, short messages, no jargon (never say "token", "systemd", "repo" or "build" to them; say "access", "the service", "your GitHub" and "put online").

Never print a key or a token from the server. Run every remote command as ssh hermes '<command>' < /dev/null; when the login user is not root, prefix install with sudo. Never publish the dashboard any other way than expose add, and never replace an existing ~/projects/dashboard: it holds the user's modules.

  1. Check what is ready: ssh -o BatchMode=yes hermes true (otherwise run connect-vps), then ssh hermes 'hermes-setup check' lists hermes, gateway and dashboard as ok, ssh hermes 'expose status' lists site=hermes.<domain>, and ssh hermes 'gh auth status' is signed in (otherwise run setup-vps first).
  2. Get the files on the server: ssh hermes 'S=~/.cache/ai-maxxing-skills; if [ -d $S/.git ]; then git -C $S pull -q --ff-only; else mkdir -p ~/.cache && git clone -q --depth 1 https://github.com/Melvynx/ai-maxxing-skills $S; fi', then install both commands: ssh hermes 'cd ~/.cache/ai-maxxing-skills/skills/setup-my-hermes-dashboard/scripts && install -m 755 dashboard.sh /usr/local/bin/dashboard && install -m 755 dashboard-cli /usr/local/bin/dashboard-cli'. dashboard without arguments prints its commands.
  3. Create the code, only if ssh hermes 'test -d ~/projects/dashboard' fails: ssh hermes 'mkdir -p ~/projects && cp -R ~/.cache/ai-maxxing-skills/skills/setup-my-hermes-dashboard/template ~/projects/dashboard && cd ~/projects/dashboard && git init -q -b main && git add -A && git commit -qm "Dashboard: empty shell"'. Save it on their GitHub, private: ssh hermes 'cd ~/projects/dashboard && gh repo create hermes-dashboard --private --source . --push'. If that name is taken on their account, ask before using another one.
  4. Install Node with ssh hermes 'dashboard install-node' (Node 24 and pnpm, skipped when there).
  5. Put it in service: their first name (ask, or the first word of git config --global user.name), then ssh hermes 'DASHBOARD_OWNER=<first name> DASHBOARD_URL=https://dashboard.<domain> HERMES_URL=https://hermes.<domain> dashboard deploy', in the background (a few minutes the first time). It ends with dashboard ok on 127.0.0.1:8794, hermes ok. Exit code 4 prints why the checks failed, 5 prints the service log.
  6. Give Hermes its access to the dashboard: ssh hermes 'dashboard key', then ssh hermes 'dashboard-cli get /api/v1/whoami' answers "key": "hermes".
  7. Teach Hermes: ssh hermes 'install -D -m 644 ~/.cache/ai-maxxing-skills/skills/setup-my-hermes-dashboard/hermes-skill/SKILL.md ~/.hermes/skills/productivity/dashboard/SKILL.md'. Hermes then knows where the code is, how to add a module (template/AGENTS.md), and to run dashboard deploy, commit and push.
  8. Put it online: ssh hermes 'expose add dashboard.<domain> 8794'. Exit code 4 means dashboard.<domain> already points somewhere else: ask before picking another name such as home.<domain>, then rerun step 5 with that DASHBOARD_URL. Then ssh hermes 'expose status' must list site=dashboard.<domain> and no line starting with UNPROTECTED.
  9. Prove it from the Mac, after a minute for the address to spread: curl -s -o /dev/null -w '%{http_code} %{redirect_url}' https://dashboard.<domain> answers 302 to /.gate/login (or 200 from an IP they saved). Then ask the user to open https://dashboard.<domain>: the same sign-in as Hermes, then their name, the three status lights and "No module yet" mean done.
  10. Their first module: ask them to send Hermes, on Telegram or Discord, one of the asks the page shows, for example "Add a module to my dashboard that lists my latest conversations." It takes Hermes a few minutes; the new page appears in the sidebar and on the home. If Hermes says it does not know the dashboard, restart its chat with ssh hermes 'hermes gateway restart' and ask again.
  11. Tell every agent, in the ## VPS block (brain AGENTS.md, ~/.claude/rules/vps.md, ~/.codex/AGENTS.md if Codex is installed), keeping every existing line: the personal dashboard is https://dashboard.<domain>, its code is ~/projects/dashboard on the server (GitHub hermes-dashboard), Hermes adds modules to it on request, and ssh hermes 'dashboard deploy' puts a change online.

End with a short check list, a check or a cross on each line: commands installed, code on their GitHub (private), Node ready, service running (Hermes reachable), Hermes has its access, Hermes knows the dashboard, online at https://dashboard.<domain>, no unprotected page, agents told. Then tell the user in 3 lines: the dashboard is theirs and starts empty, ask Hermes for any module they want ("my crons", "a morning report", "today's sales"), and every change is saved on their GitHub, so nothing is ever lost.