setup-my-hermes-dashboard
Skill32 starsChanged 25 days agoMITView on GitHub
Give the user their own personal dashboard on their VPS, in the same look and stack as the Hermes dashboard (TanStack Start, Tailwind, SQLite), at dashboard.their-domain behind the same sign-in gate. It starts with no module but a built-in System monitoring group (latest conversations, Infra with server health, daily audit and one-click fixes, and a Models page to pick the AI model); the user asks Hermes for the modules they want and Hermes builds and ships them. Use after setup-vps.
In this repository42 other files it gives its agents.
- skills/setup-my-hermes-dashboard/template/AGENTS.mdAGENTS.md
- audit-safetySkill
- betterSkill
- cleanupSkill
- create-projectSkill
- doneSkill
- dreamSkill
- projectsSkill
- setup-brainSkill
- cloudflareSkill
- code-debugSkill
- codex-imagesSkill
- connect-googleSkill
- connect-instagram-developer-platformSkill
- connect-toolSkill
- connect-vpsSkill
- connect-youtube-developer-platformSkill
- convexSkill
- create-internal-appSkill
- create-landingSkill
- create-softwareSkill
- dev-browserSkill
- grill-meSkill
- initializeSkill
- install-skillsSkill
- lumailSkill
- safe-shipSkill
- setup-cloudflareSkill
- setup-convexSkill
- setup-dev-browserSkill
- setup-githubSkill
- setup-lumailSkill
- dashboardSkill
- setup-nodeSkill
- setup-stripeSkill
- setup-vpsSkill
- show-meSkill
- skill-managerSkill
- stripe-checkoutSkill
- use-styleSkill
- verifySkill
- wait-whatSkill
The file
We split this skill into the rules it gives an agent
4 rules. About 0 are common, 0 are distinctive, and 4 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 12
Check what is ready: ssh -o BatchMode=yes hermes true (otherwise run connect-vps), then ssh hermes 'hermes-setup check' lists hermes, …
- Very specific: line 14
Create the code, only if ssh hermes 'test -d ~/projects/dashboard' fails:
- Very specific: line 16
Put it in service: their first name (ask, or the first word of git config --global user.name), then ssh hermes 'DASHBOARD_OWNER=<first …
- Very specific: line 19
Put it online: ssh hermes 'expose add dashboard.<domain> 8794'.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Put a personal dashboard online at https://dashboard.<domain>, next to Hermes, behind the gate that setup-vps built. It starts with no module (a greeting, three status lights for the agent, a link to Hermes, a page of API keys, a Team page to see who can sign in and add or remove members) and, for admins, a "System monitoring" group at the bottom of the menu: Conversations (the latest chats with Hermes), Models (the AI model Hermes uses, switched in one click, and which providers are connected) and Infra (the server is checked every 15 minutes, Hermes writes a short audit every morning at 7, and each problem has a "Fix" button that hands the task to Hermes): 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.
- Check what is ready:
ssh -o BatchMode=yes hermes true(otherwise runconnect-vps), thenssh hermes 'hermes-setup check'lists hermes, gateway and dashboard as ok,ssh hermes 'expose status'listssite=hermes.<domain>, andssh hermes 'gh auth status'is signed in (otherwise runsetup-vpsfirst). - 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'.dashboardwithout arguments prints its commands. - 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. - Install Node with
ssh hermes 'dashboard install-node'(Node 24 and pnpm, skipped when there). - Put it in service: their first name (ask, or the first word of
git config --global user.name), thenssh 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 withdashboard ok on 127.0.0.1:8794, hermes ok. Exit code 4 prints why the checks failed, 5 prints the service log. - Give Hermes its access to the dashboard:
ssh hermes 'dashboard key', thenssh hermes 'dashboard-cli get /api/v1/whoami'answers"key": "hermes". - Teach Hermes:
ssh hermes 'hermes-setup add dashboard'puts thedashboardskill in~/.agents/skills, the folder of every skill on the server (Hermes reads it, Claude Code through~/.claude/skills).ssh hermes 'hermes skills list'then listsdashboard. Hermes then knows where the code is, how to add a module (template/AGENTS.md), and to rundashboard deploy, commit and push. The user can also skip this whole skill and ask Hermes "create my dashboard": itscreate-dashboardskill does the same steps from the server. - Put it online:
ssh hermes 'expose add dashboard.<domain> 8794'. Exit code 4 meansdashboard.<domain>already points somewhere else: ask before picking another name such ashome.<domain>, then rerun step 5 with thatDASHBOARD_URL. Thenssh hermes 'expose status'must listsite=dashboard.<domain>and no line starting withUNPROTECTED. - 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>answers302to/.gate/login(or200from an IP they saved). Then ask the user to openhttps://dashboard.<domain>: the same sign-in as Hermes (their email, then the code it receives, whenssh hermes 'expose status'sayssign_in=code), then their name, the three status lights, the Infra card, "System monitoring" at the bottom of the menu, "No module yet" and their email at the bottom of the menu mean done. A minute later the Infra page shows its first check; red or orange lines there are real findings about the server to tell the user about, not a failed install. - 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 with my crons and when they run next." 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. - Tell every agent, in the
## VPSblock (brainAGENTS.md,~/.claude/rules/vps.md,~/.codex/AGENTS.mdif Codex is installed), keeping every existing line: the personal dashboard ishttps://dashboard.<domain>, its code is~/projects/dashboardon the server (GitHubhermes-dashboard), Hermes adds modules to it on request, andssh 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, Infra checked and the daily audit on, agents told. Then tell the user in 3 lines: the dashboard is theirs, its Infra page watches the server and suggests fixes, ask Hermes for any module they want ("my crons", "a morning report", "today's sales"), every change is saved on their GitHub, so nothing is ever lost, and they can let someone in from the Team page (account menu, bottom left) or with ssh hermes 'expose user add <email> member --invite': a member sees the modules but not Hermes, the API keys or the Team page.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

