heinzel: Skill for Claude Code

.claude/skills/heinzel-email/SKILL.md

heinzel-email is a skill for Claude Code from wintermeyer/heinzel. It costs 155 tokens per session (6,670 once invoked), scanned D, original, MIT.

A tool for emailing text reports or files about a managed server. It can send the message from the server or from the local computer, depending on the saved preference.

In plain words
What is it for?
It helps email ad-hoc reports, server information, and attachments such as log files.
Why use it?
It removes the need to copy server details or log files manually into an email and applies the server's existing delivery rules.

Skill for Claude Code

Written for Claude Code: argument-hint in frontmatter. Also seen: mentions CLAUDE.md; mentions Claude Code.

This is wintermeyer/heinzel's own configuration. It tells Claude Code how to work on heinzel itself, so it is not a mod to install elsewhere. Copy it as a starting point and replace the rules that are about this project. Everything heinzel configures →

Reuse

Borrowing it

Nothing to install: this file belongs to wintermeyer/heinzel. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.

Copy the file
curl -O https://raw.githubusercontent.com/wintermeyer/heinzel/main/.claude/skills/heinzel-email/SKILL.md
Clone the repo
git clone --depth 1 https://github.com/wintermeyer/heinzel

Made for: Claude Code.

Wrote this? Show the measurements

A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.

agentmods badge for heinzel-email

README.md
[![agentmods](https://agentmods.dev/badge/skills/wintermeyer/heinzel/heinzel-email.svg)](https://agentmods.dev/skills/wintermeyer/heinzel/heinzel-email)
Your own site
<a href="https://agentmods.dev/skills/wintermeyer/heinzel/heinzel-email"><img src="https://agentmods.dev/badge/skills/wintermeyer/heinzel/heinzel-email.svg" alt="Measured on agentmods" height="20"></a>
Per session 155 Skills are progressive disclosure: only the name and description are preloaded; the body loads when the skill is used.
When invoked 6,670 The whole file, excluding the scripts and references it only reads on demand.
Security scan D 2 findings. A grade says what 26 rules found in the file — not that it is safe.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5.1 $0.00155 $0.06670
Opus 5 $0.00077 $0.03335
Sonnet 5 $0.00031 $0.01334
Haiku 4.5 $0.00015 $0.00667

Measured 7d ago against content hash 4aa809abda1c, method: parsed. Prices are Anthropic first-party input rates as of 2026-09-07, from the pricing page.

Security

Grade D, and why

heinzel-email scanned grade D with 2 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 7d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Asks for rootmediumPrivilege escalation

A mod that escalates privileges can change anything on the machine, not only the project.

The install step (5R.3) still requires root/sudo — that is

Reaches for credential fileshighPrivilege escalation

SSH keys, cloud credentials, git-credentials, .npmrc, /etc/shadow: reading these is how a config file becomes a credential leak.

material, `shadow`, `msmtprc`, `.netrc`, cloud
.claude/skills/heinzel-email/SKILL.md · 609 lines

How it starts

The opening of the file, as written. The whole thing — 609 lines — stays where its author put it; the contents beside it link to each section on GitHub.

heinzel-email

Send ad-hoc text and file attachments by email about a managed server. The report content is about the server; whether the mail leaves from the server or from your workstation is a per-host preference that's asked once and remembered.

The full heinzel first-connection onboarding pipeline still applies before any of this runs.

Workflow

  1. Onboarding pipeline. Run rules/first-connection.md in full. No "quick question" exception — even a one-line email still goes through blacklist/read-only check, DNS alias detection, SSH user lookup, OS detection, server memory load, and activity check.

  2. Load overrides. Apply the heinzel rule-override chain (later wins):

    • memory/custom-rules/heinzel-email.md if present.
    • memory/servers/<host>/memory.md (recipient, source, transport, policies — see "Per-server memory" below).
    • memory/servers/<host>/rules.md if present. memory/custom-rules/all.md is already loaded by the session-start preflight — do not re-read it.
  3. Resolve recipient. In order of precedence:

    1. User said an explicit address ("send to alice@…", "mail it to [email protected]") → use that. Don't override it with stored values.
    2. Per-server memorymemory/servers/<host>/memory.md has an Alert email: line (the established pattern) → use that.
    3. "Send me" shorthand ("email me", "send me", "mail it to me") and the user's default email is recorded in Claude Code's auto-memory (the MEMORY.md index will show a "Default email" entry under User → load that file and use the address) → use it without prompting. Still write the address back to the per-server memory.md as - Alert email: <addr> on first use so the skill stays self-contained for future runs.
    4. Otherwise, ask once via the picker, then persist to memory.md as in (3).
    • Never guess or invent a recipient.
  4. Consent gate 0 — sender side (local vs remote). Check memory.md for Email source: local | remote:

    • local → jump to step 5L.
    • remote → continue with step 5R.
    • Missing → ask the user with four options:

      "First-time email for <host>. Send from where?"

      • Remote — once: send from the server this time, ask again next time.
      • Remote — always for this host: write Email source: remote into memory.md, then continue to 5R.
      • Local — once: send from this workstation this time, ask again next time.
      • Local — always for this host: write Email source: local into memory.md, then jump to 5L.

Read the full file on GitHub · 609 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 7d ago First seen · 609 lines · 155 tokens per session scan D 4aa809abda1c

Subscribe to this mod's changes

heinzel-email is a skill published in the GitHub repository wintermeyer/heinzel (90 stars, last pushed 19d ago), licensed MIT. It adds 155 tokens to every session and 6,670 once invoked, about $0.0008 per session on Opus 5. A static security scan graded it D with 2 findings (asks for root, reaches for credential files). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.

Related

Other skills, from other repositories

warpctrl

Control and inspect the currently running local Warp application with the warpctrl CLI. Use this skill whenever the user asks the agent to manipulate Warp's own windows, tabs, panes, sessions, input buffer, themes, or UI surfaces; open a file in Warp; inspect local Warp state; or explain how to invoke Warp Control…

warpdotdev/warp · 69 tokens

change-keybinding

Customize Warp keyboard shortcuts (keybindings, keymappings) by editing the user's keybindings.yaml file. Use when the user asks to remap a key combination, rebind an action, change a shortcut, or remove a default keybinding (e.g. "change ctrl+space to ctrl+s", "rebind the command palette to cmd+p", "remove the…

warpdotdev/warp · 82 tokens

create-tab-config

Create new Warp tab config TOML files from natural-language requests. Use when the user wants a new tab config, a new tab layout, or asks for a slash command to generate a tab config.

warpdotdev/warp · 44 tokens

google

Google Workspace integration — Gmail, Drive, Calendar, Contacts, Tasks, and Sheets via gogcli.

thewolffish/wolffish-app · 21 tokens

notion

Read, create, update, and manage Notion pages, databases, and blocks.

thewolffish/wolffish-app · 19 tokens

automations

YOU OWN THIS. Wolffish's scheduled automations (the heartbeat) — list, create, edit, delete, check status, and run jobs that fire on a schedule and run autonomously. Reach for it by INTENT whenever a need or issue touches a schedule, a recurring job, or the heartbeat — even when the user never says "automation".

thewolffish/wolffish-app · 75 tokens