ESP32 CSI Node Provisioning
ruvnet/RuView
Builds, flashes and provisions an ESP32-S3 or C6 CSI node for RuView, with checksum-verified flashing, WiFi settings and boot-log evidence that CSI is flowing.
Manage the full lifecycle of nodes in a Headscale tailnet — generate pre-authenticated keys, register, approve, tag, list, and decommission nodes.
$ npx skills add magnus919/agent-skills --skill headscale-node-lifecycle -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install magnus919/agent-skills headscale-node-lifecycle --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/magnus919/agent-skills.git skills-src && mkdir -p .claude/skills && cp -r skills-src/tailscale/skills/headscale-node-lifecycle .claude/skills/headscale-node-lifecycle && 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 "headscale-node-lifecycle" agent skill from https://github.com/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycle into .claude/skills/headscale-node-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "headscale-node-lifecycle", 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/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycleType 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 magnus919/agent-skills --skill headscale-node-lifecycle -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install magnus919/agent-skills headscale-node-lifecycle --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .agents/skills && cp -r skills-src/tailscale/skills/headscale-node-lifecycle .agents/skills/headscale-node-lifecycle && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "headscale-node-lifecycle" agent skill from https://github.com/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycle into .agents/skills/headscale-node-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "headscale-node-lifecycle", 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 magnus919/agent-skills --skill headscale-node-lifecycle -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install magnus919/agent-skills headscale-node-lifecycle --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/tailscale/skills/headscale-node-lifecycle .cursor/skills/headscale-node-lifecycle && 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 "headscale-node-lifecycle" agent skill from https://github.com/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycle into .cursor/skills/headscale-node-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "headscale-node-lifecycle", 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/magnus919/agent-skills.git --path tailscale/skills/headscale-node-lifecycle--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 magnus919/agent-skills --skill headscale-node-lifecycle -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install magnus919/agent-skills headscale-node-lifecycle --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/tailscale/skills/headscale-node-lifecycle .gemini/skills/headscale-node-lifecycle && 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 "headscale-node-lifecycle" agent skill from https://github.com/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycle into .gemini/skills/headscale-node-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "headscale-node-lifecycle", 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 magnus919/agent-skills headscale-node-lifecycleInstalls 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 magnus919/agent-skills --skill headscale-node-lifecycle -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .github/skills && cp -r skills-src/tailscale/skills/headscale-node-lifecycle .github/skills/headscale-node-lifecycle && 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 "headscale-node-lifecycle" agent skill from https://github.com/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycle into .github/skills/headscale-node-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "headscale-node-lifecycle", 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 magnus919/agent-skills --skill headscale-node-lifecycle -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install magnus919/agent-skills headscale-node-lifecycle --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/magnus919/agent-skills.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/tailscale/skills/headscale-node-lifecycle .opencode/skills/headscale-node-lifecycle && 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 "headscale-node-lifecycle" agent skill from https://github.com/magnus919/agent-skills/tree/main/tailscale/skills/headscale-node-lifecycle into .opencode/skills/headscale-node-lifecycle/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "headscale-node-lifecycle", 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.
headscale-node-lifecycleManage the full lifecycle of nodes in a Headscale tailnet — generate pre-authenticated keys, register, approve, tag, list, and decommission nodes.
Headscale Node Lifecycle is an agent skill from magnus919/agent-skills. Manage the full lifecycle of nodes in a Headscale tailnet — generate pre-authenticated keys, register, approve, tag, list, and decommission nodes. Use when adding new devices, generating auth keys for automation, or managing node inventory.
Its SKILL.md is about 1.3k tokens, which your agent loads only when the skill is triggered. The skill folder holds 8 other files, including scripts (for example `README.md`, `evals/evals.json` and `scripts/hs-approve-nodes.sh`).
The repository describes itself as: Curated collection of AI agent skills for Hermes and other agent frameworks. The licence is MIT.
3 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 96fbe07. 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 4 files in scripts/ (Shell), which the agent can run.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
HEADSCALE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Headscale Node Lifecycle loads about 1.3k tokens when it runs. Until then it costs about 66 tokens; SKILL.md has 555 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); the scripts in this folder are not scanned.
The full file from magnus919/agent-skills at commit 96fbe07, republished under its MIT licence (© magnus919). 555 words, ~1,293 tokens.
.claude/skills/headscale-node-lifecycle/SKILL.md (or your agent's skills folder). This skill also uses 6 other files; get the full folder from GitHub.Headscale manages nodes in a tailnet with two identity models:
yourname@domain). The node key is tied to that user's identity.tagged-devices user (created automatically by Headscale). These nodes are identified by one or more tags (e.g. tag:webserver, tag:monitoring) and are typically used for infrastructure service nodes.Registration happens through:
headscale commands or REST API callsAuth keys streamline automated node registration. Key attributes:
| Parameter | Description |
|---|---|
| Expiration | Default: 1 hour. Use 0 for no expiry (not recommended). |
| Reusable | Single-use by default. Mark reusable for fleet provisioning. |
| Ephemeral | Ephemeral nodes are removed from the tailnet when they disconnect. Perfect for CI runners and ephemeral workloads. |
| Tags | Assign tags to create a tagged node automatically. |
tailscale up --auth-key=<key> on the device → approve in Headscale if registration is open.--tags → run tailscale up --auth-key=<key> → the node is auto-approved and tagged.List nodes filtered by user, tag, or online status. Output includes:
Tags can be added or replaced on existing nodes. Tags always carry the tag: prefix in Headscale. When adding tags, existing tags are preserved unless --replace is specified.
To decommission a node permanently:
headscale nodes delete -i <node-id>Or via the REST API: DELETE /api/v1/node/<node-id>
Decommissioning is irreversible. For ephemeral nodes, disconnection alone is sufficient — the server removes them automatically.
| Variable | Description |
|---|---|
HEADSCALE_URL | Base URL of the Headscale server (e.g. https://headscale.example.com) |
HEADSCALE_API_KEY | API key from headscale apikeys create |
Both env vars are required for API-based operations when the headscale CLI is not available on PATH.
tagged-devices user. Do not try to assign them to a personal user.Connected: true) to test connectivity. Offline nodes do not respond to ping/ICMP within the tailnet.--ephemeral means the node is fully removed on disconnection — there is no record of it in the tailnet afterward.Create pre-authenticated keys via Headscale CLI or REST API.
hs-create-authkey.sh --user <user> --tags <tag> --expiration <duration> --reusable --ephemeral [--json] [--dry-run]List all nodes in the tailnet with status and metadata.
hs-list-nodes.sh [--json] [--user <user>] [--tag <tag>] [--online-only]Approve pending node registrations.
hs-approve-nodes.sh [--all] [--auth-id <id>] [--dry-run] [--json]Update tags on an existing node.
hs-tag-node.sh --node <id/name> --tags <tag1,tag2> [--replace | --add] [--dry-run] [--json]Do not use this skill for installing or configuring the Tailscale client (load tailscale-client instead) or for ACL/policy authoring (load tailnet-policy). It covers node registration, tagging, listing, and decommissioning only.
© magnus919, 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 6 other files (scripts) in tailscale/skills/headscale-node-lifecycle of magnus919/agent-skills.
Open the folder on GitHubat commit 96fbe07
Headscale Node Lifecycle 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 |
|---|---|---|---|---|---|---|
| Headscale Node Lifecycle this skillmagnus919/agent-skills | 111 | — | ~1.3k | Automated safety check: Pass | MIT | |
| ESP32 CSI Node Provisioningruvnet/RuView | 97k | — | ~579 | Automated safety check: Pass | MIT | |
| Gke Node Notreadygoogle/skills | 21k | — | ~2.9k | Automated safety check: Pass | Apache-2.0 | |
| N8n Node Configurationdavila7/claude-code-templates | 32k | 1 repos | ~4k | Automated safety check: Pass | MIT | |
| Handsontable Node Script Conventionshandsontable/handsontable | 22k | — | ~1.1k | Automated safety check: Pass | Custom licence | |
| Brigade Node Connection Diagnosticsspinabot/brigade | 11k | — | ~1.2k | Automated safety check: Pass | MIT |
ruvnet/RuView
Builds, flashes and provisions an ESP32-S3 or C6 CSI node for RuView, with checksum-verified flashing, WiFi settings and boot-log evidence that CSI is flowing.
google/skills
Diagnoses GKE nodes reporting NotReady or Unknown status by inspecting node conditions, events, kubelet/containerd logs, and node metrics, then proposing safe remediations.
davila7/claude-code-templates
Operation-aware node configuration guidance. An agent skill from davila7/claude-code-templates.
handsontable/handsontable
Conventions for .mjs files in the Handsontable monorepo: native node: imports, top-level await, the tasks.json dispatcher and native modules instead of extra dependencies.
spinabot/brigade
Diagnoses why a Brigade companion app can't pair or connect, by first identifying the real node-to-gateway route and then fixing auth.
SeemSeam/claude_codex_bridge
Verify one CCB worker node and reject hidden fallback, degradation, scope shrinkage, or missing evidence.
magnus919/agent-skills
Organize durable agent research outputs as summaries, analysis, and evidence dossiers.
magnus919/agent-skills
Build portable, first-person colored ASCII city engines and small GIS-derived city packs.
magnus919/agent-skills
Manage color workflows with ICC profiles, working spaces, gamut mapping, and color science.
magnus919/agent-skills
A skill your agent uses for PhD-level expertise in data science, statistics, and machine learning: rigorous statistical analysis, experimental design, causal inference, advanced modeling, research…
magnus919/agent-skills
Use Docker Compose to define, run, debug, and harden multi-container applications.
magnus919/agent-skills
Design, review, simulate, and verify FPGA logic using explicit RTL contracts, clock and reset models, CDC analysis, timing constraints, and reproducible implementation evidence.
Manage the full lifecycle of nodes in a Headscale tailnet — generate pre-authenticated keys, register, approve, tag, list, and decommission nodes. Headscale Node Lifecycle is an agent skill from magnus919/agent-skills. Manage the full lifecycle of nodes in a Headscale tailnet — generate pre-authenticated keys, register, approve, tag, list, and decommission nodes.
Headscale Node Lifecycle fits situations like: adding new devices; generating auth keys for automation; managing node inventory.
Run `npx skills add magnus919/agent-skills --skill headscale-node-lifecycle -a claude-code`. Or copy the skill folder (tailscale/skills/headscale-node-lifecycle in magnus919/agent-skills) into .claude/skills/headscale-node-lifecycle in your project. Claude Code loads it when a task matches its description.
Run `npx skills add magnus919/agent-skills --skill headscale-node-lifecycle -a codex`. Or copy the skill folder (tailscale/skills/headscale-node-lifecycle in magnus919/agent-skills) into .agents/skills/headscale-node-lifecycle 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 magnus919/agent-skills --skill headscale-node-lifecycle -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/headscale-node-lifecycle, .gemini/skills/headscale-node-lifecycle, .github/skills/headscale-node-lifecycle and .opencode/skills/headscale-node-lifecycle in your project.
Going by SKILL.md and its folder, Headscale Node Lifecycle needs a shell for the scripts in its folder and credentials named HEADSCALE_API_KEY. Our summary lists: A Bash shell; A credential in HEADSCALE_API_KEY.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. 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. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Headscale Node Lifecycle 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.2k 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 Headscale Node Lifecycle: ESP32 CSI Node Provisioning (ruvnet/RuView, 97k stars), Gke Node Notready (google/skills, 21k stars), N8n Node Configuration (davila7/claude-code-templates, 32k stars) and Handsontable Node Script Conventions (handsontable/handsontable, 22k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
magnus919 (a GitHub user) maintains it in magnus919/agent-skills, which has 111 GitHub stars. The repository holds 129 skills in this directory. The repository was last updated on October 6, 2026.
Source: magnus919/agent-skills on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.