Dashboard
asgeirtj/system_prompts_leaks
Use this for a dashboard, metrics page, KPI tracker, scorecard, data visualization or recurring report: a page or scroll story of charts, numbers and tables of data, whatever the data and wherever…
Authoritative reference for the Lagune dashboard, a live view of a project's .lagune/ chain with a locked-down local action surface.
$ npx skills add wellwelwel/lagune --skill dashboard -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install wellwelwel/lagune 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/wellwelwel/lagune.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/dashboard .claude/skills/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 "dashboard" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/dashboard into .claude/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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/wellwelwel/lagune/tree/main/.claude/skills/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 wellwelwel/lagune --skill dashboard -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install wellwelwel/lagune dashboard --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/dashboard .agents/skills/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 "dashboard" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/dashboard into .agents/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 wellwelwel/lagune --skill dashboard -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install wellwelwel/lagune dashboard --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/dashboard .cursor/skills/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 "dashboard" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/dashboard into .cursor/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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/wellwelwel/lagune.git --path .claude/skills/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 wellwelwel/lagune --skill dashboard -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install wellwelwel/lagune dashboard --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/dashboard .gemini/skills/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 "dashboard" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/dashboard into .gemini/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 wellwelwel/lagune 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 wellwelwel/lagune --skill dashboard -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/dashboard .github/skills/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 "dashboard" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/dashboard into .github/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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 wellwelwel/lagune --skill 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 wellwelwel/lagune dashboard --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/wellwelwel/lagune.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/dashboard .opencode/skills/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 "dashboard" agent skill from https://github.com/wellwelwel/lagune/tree/main/.claude/skills/dashboard into .opencode/skills/dashboard/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "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.
dashboardAuthoritative reference for the Lagune dashboard, a live view of a project's .lagune/ chain with a locked-down local action surface.
Dashboard is an agent skill from wellwelwel/lagune. Authoritative reference for the Lagune dashboard, a live view of a project's .lagune/ chain with a locked-down local action surface. Use before changing anything under src/dashboard/ or src/types/dashboard/.
Its SKILL.md is about 3k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
The repository describes itself as: 🌊 Lagune is your security copilot as you build, your Blue Team when you audit, whether you're a developer or not (no API key needed). The licence is MIT.
Read from SKILL.md and the folder at commit c97ddfc. 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.
Shell commands in SKILL.md call:
npmnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Dashboard loads about 3k tokens when it runs. Until then it costs about 54 tokens; SKILL.md has 1,572 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 found no risky patterns in SKILL.md.
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 wellwelwel/lagune at commit c97ddfc, republished under its MIT licence (© wellwelwel). 1,572 words, ~3,026 tokens.
.claude/skills/dashboard/SKILL.md (or your agent's skills folder).A live view of a project's .lagune/ chain: charter, findings, hardening, verification, and the applied sub-skills. It parses the real memory artifacts and tracking map on every request and pushes a browser reload whenever anything under .lagune/ changes. Viewing is read-only. The one write path is the Settings action surface, which runs the CLI's own core in-process behind the guards described under Actions.
Authored in strict TypeScript with Node APIs, runtime-agnostic across Node, Bun, and Deno. It ships as a self-contained static client plus a zero-dependency server, both bundled into lib/ at build time. src/ is never published.
The product mission and workflow philosophy live in CLAUDE.md. The toolchain, code conventions, and build path live in the engineering skill, the repository layout in the architecture skill, and design-engineering principles, including how to verify rendered output, in the /interface skill.
The client follows one visual system. Same-styled elements never carry their own local variants, and when two of them disagree on a value, standardize on the smallest one already in use. New kinds of visual consistency belong here as subsections, never as new top-level sections.
For general guidelines on the user interface, CDP, screenshots, etc., see: /interface
p-4.5 (18px) from every edge, all four sides. The metric cards, finding cards, charter cards, rail blocks, and detail cards all share it.overflow-hidden rounded-lg bg-surface shadow-card, with no padding of its own. Each row owns px-4.5 py-3, and the first and last rows close the card edge with first:pt-4.5 and last:pb-4.5 (in the findings table, the header is the first row: pt-4.5 pb-3). This keeps row hover and dividers spanning the full card width, and keeps every spacing readable on the element itself. Never assemble an inset from a parent padding plus a child padding: a hidden contribution on the parent is exactly the inconsistency this rule exists to prevent.py-3 with gap-3, card grids use gap-4, sections end with mb-6, and section heads sit mb-3 above their content.Icon tiles in rows are size-8.5 with text-[1.05rem] glyphs, circular arrow affordances are size-8.5 rounded-full text-[0.95rem], and large tiles are size-11 rounded-md text-[1.25rem].
Micro labels (uppercase group titles, table headers, card labels) come from MICRO_LABEL in client/styles/classes.ts, badges from BADGE, group heads from GROUP_HEAD. Reuse the token instead of retyping a near-copy. Card titles are text-[0.9rem] font-bold tracking-[-0.01em], with extrabold reserved for page and section headings.
End users run it against their own project, with no install:
npx lagune dashboardThat serves the built client and opens the browser on the workspace's .lagune/.
Local development in this repo:
npm run dashboard:dev # Vite dev server with HMR, proxying data to the node server
npm run dashboard:build # build the client into lib/dashboard
npm run typecheckThe server prints its URL. By default it binds port 0, so the OS hands back a free port that never conflicts (set PORT to pin one, where it climbs on conflict). In npm run dashboard:dev, the browser opens on the Vite URL: client edits hot-swap modules in place (state survives), while the node server, pinned on port 3001 behind Vite's proxy, keeps watching .lagune/ and reloads the page on any edit there. Nothing is written to disk in dev, Vite serves the client from memory.
server/): a node:http server, runtime-agnostic across Node, Bun, and Deno.start.ts is the reusable entry: it resolves the paths, listens (port 0 by default, climbing only when PORT pins a busy one), opens the browser, and stays up until SIGINT. The dashboard CLI command and the dev entry (tools/dashboard-serve.ts) both call it.data/ parses the Markdown memories, tracking.json, and manifest.json into one typed DashboardData object, served at GET /api/data. Understanding markdown is deliberately not our code: the markdown/ module asks mdast-util-from-markdown (micromark, the same CommonMark engine behind the website's Docusaurus, bundled at build time so the published package still needs zero runtime installs) which lines are code and which spans are HTML comments. Code of any kind (fenced, indented, diffs, mermaid diagrams) is never structure, and comments are stripped before any parsing without ever touching code or inline code. Only the domain mapping is manual: which heading opens a section, which - **Field:** line is a field, what goes where. An h1 ends any section, and h4 to h6 stay inside the block they annotate, out of the extracted prose. Field lines are read by a staged grammar (fieldValue) whose canonical shape is the template's and whose fallbacks absorb common LLM punctuation drift: any list marker (-, *, +), optional bold (** or __), case-insensitive field name, then a required separator (colon canonically, em or en dash, or a spaced hyphen). The separator is what keeps prose from matching, and the value is never rewritten. Never hand-roll markdown lexing here (fence pairing, comment masking): extend the mapping over the tree instead.live-reload.ts watches .lagune/, streaming a reload over GET /events (SSE).static-files.ts serves the built client, guarded against path traversal..lagune/ from the invoking working directory and the client from the packaged location, never from src/.actions.ts, guards.ts, session.ts): the Settings route runs real commands (Install, Pull, Update, Specialize) through POST /api/actions/*, in-process via the CLI's own pure-fs core. Every change must preserve these invariants:.lagune/ and the agent command dirs, never an arbitrary path or content.Map keyed by pathname, never a lookup on a request value. Any key beyond the action's declared fields is rejected (so __proto__, constructor, prototype never pass), values pass only by exact Set membership against AGENT_SPECS / SKILL_GROUPS, are checked with plain types (no regex), and are rebuilt into a fresh object, never spread or merged.Host first, every route. A request must carry a loopback Host (or a dev host from tools/dashboard-serve.ts), checked before anything else, so a rebound domain reaches nothing.GET /api/session, GET /api/data, and every action reject a Sec-Fetch-Site that is present and not same-origin, so a cross-origin page is never handed the token or data (page script cannot forge that header). No response carries a CORS header and OPTIONS is never answered, so preflights fail closed.0600 file in the OS temp dir (session-<pid>.token) so it is never world-readable at rest. Actions additionally require it in x-lagune-token (compared with timingSafeEqual) and an exact loopback or dev Origin.application/json, ≤16KB, JSON.parsed, and cut off by a 5s read timeout so a slow-loris body cannot pin the single-flight lock. One action runs at a time (409 when busy).nosniff, and HTML adds frame-ancestors 'none' and x-frame-options: DENY against clickjacking. Errors are generic to the browser, detailed only in the terminal with newlines neutralized. Success needs no refetch: the .lagune/ write triggers the SSE reload.0600), deferred until a multi-user need is real.client/): a Preact single-page app.components/ and routes/ are Preact components; main.tsx owns the render root and app.tsx the routing, with signals for state, search, filters, and theme. A route with several parts keeps them under a components/<route>/ folder (see components/settings/). Blocks that display artifact prose render through components/admonition.tsx, the dashboard's equivalent of the website's docs admonitions: note, info, tip, warning, and danger. Each kind sets one accent (--adm) and the admonition utility in styles/index.css derives every internal color from it (surface, border, heading, body, inline code, text selection), the same mechanism as the website's docs.css. Reuse it, picking the kind by what the text means, instead of hand-tinting a card.styles/ is a token-driven design system (light and dark), imported by main.tsx and bundled by the Tailwind Vite plugin. Typography matches the website's docs and loads from Google Fonts in index.html (nothing shipped in the package). The layout must stay responsive down to a minimum resolution of 1024x768px.shared/): runtime metadata both sides import (skill labels, descriptions, and group badges, agent logos and themes, severity ordering). It derives from the core's own data, never duplicates it: the agent list comes from src/providers/specs.ts, the specialization categories from src/hooks/skills/groups.ts, and the skill-to-group mapping from src/hooks/skills/catalog.ts. Those core modules, and everything here, stay import-safe for the browser (pure data, type-only imports): the website imports them through its bridge, so a label, a logo, or a theme is written once for both surfaces.src/types/dashboard/, the single source of truth both sides import.src/dashboard/vite.config.ts): Vite with @preact/preset-vite and @tailwindcss/vite, entered through client/index.html, always emitting to lib/dashboard with hashed bundle names. client/public/assets/ (icons and images, referenced as /assets/...) is copied verbatim. It is the single home of every agent and category logo, and the website serves it as well. There is no dev output directory, vite dev serves everything from memory.Read all, one at a time:
#/ overview · #/findings and #/findings/:id · #/sidequests · #/charter · #/skills · #/settings.
Add ?theme=dark to the URL to force a theme.
© wellwelwel, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .claude/skills/dashboard of wellwelwel/lagune.
Open the folder on GitHubat commit c97ddfc
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 |
|---|---|---|---|---|---|---|
| Dashboard this skillwellwelwel/lagune | 173 | — | ~3k | Automated safety check: Pass | MIT | |
| Dashboardasgeirtj/system_prompts_leaks | 69k | — | ~4.1k | Automated safety check: Pass | CC0-1.0 | |
| DashboardInsForge/InsForge | 13k | — | ~2.3k | Automated safety check: Pass | Apache-2.0 | |
| Live DashboardNousResearch/hermes-agent | 252k | — | ~2.1k | Automated safety check: Pass | MIT | |
| Dashboarddavepoon/buildwithclaude | 3.6k | — | ~930 | Automated safety check: Pass | MIT | |
| Live Dashboardnexu-io/open-design | 100k | — | ~2.1k | Automated safety check: Pass | Apache-2.0 |
asgeirtj/system_prompts_leaks
Use this for a dashboard, metrics page, KPI tracker, scorecard, data visualization or recurring report: a page or scroll story of charts, numbers and tables of data, whatever the data and wherever…
InsForge/InsForge
A skill your agent uses when contributing to InsForge's shared dashboard package.
NousResearch/hermes-agent
Build self-updating dashboards from live sources. An agent skill from NousResearch/hermes-agent.
davepoon/buildwithclaude
View all tracked vulnerabilities and their current status. An agent skill from davepoon/buildwithclaude.
nexu-io/open-design
Notion-style team dashboard rendered as a Live Artifact. An agent skill from nexu-io/open-design.
nexu-io/open-design
GitHub repository analytics dashboard — stars, forks, contributors, issues, pull requests, recent activity, and top contributors.
wellwelwel/lagune
Visual verification of a running page through Chrome's DevTools Protocol, capturing screenshots and measuring the rendered DOM.
wellwelwel/lagune
How to simulate a Lagune command end to end so the user sees both the process and the results in chat.
wellwelwel/lagune
Author a new built-in Lagune sub-skill inside the Lagune source, not a scaffolded .lagune/ target.
wellwelwel/lagune
Design engineering principles for making interfaces feel polished.
wellwelwel/lagune
Authoritative architecture reference for Lagune, covering repository layout, the command/template split, the core/adapter boundary, what it scaffolds, and the tracking-map model.
wellwelwel/lagune
Authoritative engineering reference covering code conventions, comments, TypeScript type rules, testing, and commit messages.
Authoritative reference for the Lagune dashboard, a live view of a project's .lagune/ chain with a locked-down local action surface. Dashboard is an agent skill from wellwelwel/lagune.lagune/ chain with a locked-down local action surface.
Run `npx skills add wellwelwel/lagune --skill dashboard -a claude-code`. Or copy the skill folder (.claude/skills/dashboard in wellwelwel/lagune) into .claude/skills/dashboard in your project. Claude Code loads it when a task matches its description.
Run `npx skills add wellwelwel/lagune --skill dashboard -a codex`. Or copy the skill folder (.claude/skills/dashboard in wellwelwel/lagune) into .agents/skills/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 wellwelwel/lagune --skill 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/dashboard, .gemini/skills/dashboard, .github/skills/dashboard and .opencode/skills/dashboard in your project.
Going by SKILL.md and its folder, Dashboard needs the command-line tools its instructions call (npm and npx). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm and npx, 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 no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
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 3k tokens (SKILL.md is roughly 12k 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 Dashboard: Dashboard (asgeirtj/system_prompts_leaks, 69k stars), Dashboard (InsForge/InsForge, 13k stars), Live Dashboard (NousResearch/hermes-agent, 252k stars) and Dashboard (davepoon/buildwithclaude, 3.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
wellwelwel (a GitHub user) maintains it in wellwelwel/lagune, which has 173 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 8, 2026.
Source: wellwelwel/lagune on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.