Mole CLI Release Flow
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
Coordinates specialist agents to create a Homebrew cask for a macOS app: pre-flight checks, download and inspection, a livecheck strategy and the remaining cask steps.
$ npx skills add malob/nix-config --skill new-cask -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install malob/nix-config new-cask --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/malob/nix-config.git skills-src && mkdir -p .claude/skills && cp -r skills-src/configs/claude/plugins/homebrew/skills/new-cask .claude/skills/new-cask && 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 "new-cask" agent skill from https://github.com/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-cask into .claude/skills/new-cask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-cask", 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/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-caskType 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 malob/nix-config --skill new-cask -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install malob/nix-config new-cask --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malob/nix-config.git skills-src && mkdir -p .agents/skills && cp -r skills-src/configs/claude/plugins/homebrew/skills/new-cask .agents/skills/new-cask && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "new-cask" agent skill from https://github.com/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-cask into .agents/skills/new-cask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-cask", 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 malob/nix-config --skill new-cask -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install malob/nix-config new-cask --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malob/nix-config.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/configs/claude/plugins/homebrew/skills/new-cask .cursor/skills/new-cask && 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 "new-cask" agent skill from https://github.com/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-cask into .cursor/skills/new-cask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-cask", 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/malob/nix-config.git --path configs/claude/plugins/homebrew/skills/new-cask--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 malob/nix-config --skill new-cask -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install malob/nix-config new-cask --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malob/nix-config.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/configs/claude/plugins/homebrew/skills/new-cask .gemini/skills/new-cask && 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 "new-cask" agent skill from https://github.com/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-cask into .gemini/skills/new-cask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-cask", 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 malob/nix-config new-caskInstalls 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 malob/nix-config --skill new-cask -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/malob/nix-config.git skills-src && mkdir -p .github/skills && cp -r skills-src/configs/claude/plugins/homebrew/skills/new-cask .github/skills/new-cask && 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 "new-cask" agent skill from https://github.com/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-cask into .github/skills/new-cask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-cask", 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 malob/nix-config --skill new-cask -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install malob/nix-config new-cask --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/malob/nix-config.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/configs/claude/plugins/homebrew/skills/new-cask .opencode/skills/new-cask && 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 "new-cask" agent skill from https://github.com/malob/nix-config/tree/master/configs/claude/plugins/homebrew/skills/new-cask into .opencode/skills/new-cask/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "new-cask", 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.
new-caskCoordinates specialist agents to create a Homebrew cask for a macOS app: pre-flight checks, download and inspection, a livecheck strategy and the remaining cask steps.
The skill runs in the main conversation and uses the Task tool to hand specialized work to agents. It starts from a URL; if none is given it asks for the app name, a direct DMG or ZIP link, or the product homepage, and it keeps a task list. A pre-flight checker first decides whether the app suits homebrew-cask submission: a REJECT verdict stops the run with an explanation, and a CAUTION verdict is put to you before continuing.
An app inspector then downloads the file, computes its SHA256, extracts metadata and runs Homebrew's `generate_cask_token` tool to get the canonical token, also reporting the version, bundle ID, minimum macOS, auto-update details and architecture. A livecheck advisor decides how updates will be detected, and if it finds a versioned URL in an appcast or release feed the file must be downloaded again to get the right checksum. The excerpt is cut off before the later steps. The tools it may use include brew, gh, curl, hdiutil, shasum and plutil.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 9cca0f4. It shows what the files ask for, not the result of running them.
Pre-approves these tools, so the agent can use them without asking each time:
ReadGrepGlobWebFetchWebSearchBash(brew *)Bash(gh *)Bash(curl *)Bash(hdiutil *)Bash(defaults read *)…and 11 more on the same allowed-tools line.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
brewbundleFrom 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 no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Homebrew Cask Creator loads about 1.6k tokens when it runs. Until then it costs about 80 tokens; SKILL.md has 516 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 malob/nix-config at commit 9cca0f4, republished under its MIT licence (© malob). 516 words, ~1,607 tokens.
.claude/skills/new-cask/SKILL.md (or your agent's skills folder).You are orchestrating the creation of a new Homebrew cask. This skill coordinates multiple specialist agents and scripts to complete the workflow.
IMPORTANT: This skill runs in the main conversation context. You will use the Task tool to spawn agents for specialized work.
URL provided: $ARGUMENTS
If no URL was provided, ask the user for:
1. Pre-flight checks → Agent: pre-flight-checker
2. Download & inspect → Agent: app-inspector
3. Livecheck strategy → Agent: livecheck-advisor
4. Write cask file → Agent: cask-writer
5. Testing → Automated tests, install, createzap, uninstall
6. Submit PR → Agent: pr-submitterCreate a task list to track progress through these steps.
Before investing time, verify the app is suitable:
Use the Task tool:
- subagent_type: homebrew:pre-flight-checker
- prompt: Check if this app is suitable for homebrew-cask submission.
<include whatever info you have: URL, app name, homepage>The agent will derive any missing info (app name from URL, homepage via search, etc.) and include it in the output.
Capture from output: App name, homepage, download URL, description - you'll need these for later steps.
Decision point: If the agent returns REJECT, stop and explain why to the user. If CAUTION, inform the user and ask if they want to proceed.
Download and inspect the app in one step:
Use the Task tool:
- subagent_type: homebrew:app-inspector
- prompt: Download and inspect the app.
Download URL: <url>
Homepage: <homepage>The agent will download the file, compute the SHA256, extract all metadata, and run Homebrew's generate_cask_token tool to get the canonical token.
Capture from output: Suggested token, SHA256, version, bundle ID, app name, min macOS, auto-update info (framework, appcast URL if found), architecture.
Use the suggested token from app-inspector for subsequent steps. This token comes from Homebrew's tooling and handles naming conventions and collision detection.
Note on versioned URLs: If the download URL is unversioned (e.g., App.dmg), the livecheck-advisor may find a versioned URL in an appcast, release feed, or other source. If so, you'll need to re-download using the versioned URL to get the correct SHA256.
Determine how to check for updates:
Use the Task tool:
- subagent_type: homebrew:livecheck-advisor
- prompt: Recommend a livecheck strategy for <app-name>.
Download URL: <url>
Homepage: <homepage>
Update URL: <appcast-or-feed-url-if-found>
Current version: <version>Get the recommended livecheck block.
Synthesize everything into a cask file:
Use the Task tool:
- subagent_type: homebrew:cask-writer
- prompt: Write a cask for <app-name> with this metadata:
Token: <token>
Version: <version>
URL: <download-url>
SHA256: <checksum> (or :no_check if unversioned URL)
(If separate binaries per architecture, provide URL and SHA256 for each)
Name: <display-name>
Description: <one-line-desc>
Homepage: <homepage>
Bundle ID: <bundle-id>
App bundle: <app-name>.app
Min macOS: <min-version>
Auto-updates: <yes/no>
Livecheck: <livecheck-block>
Architecture: <arm64/intel/universal, only if not universal>Note: The zap stanza is added later after running createzap during testing.
Run the validation script:
${CLAUDE_PLUGIN_ROOT}/scripts/test-cask.sh "<token>"If tests fail, review the output, fix the cask (often brew style --fix handles style issues), and re-run.
For unversioned URLs: Use --skip-livecheck flag.
Install:
HOMEBREW_NO_INSTALL_FROM_API=1 brew install --cask <token>Launch:
open -a "<App Name>"User verification: Ask the user to sign in or set up the app if needed, then confirm when done.
Run createzap (try both app name and bundle ID):
brew tap nrlquaker/createzap 2>/dev/null || true
brew createzap "<App Name>"
brew createzap "<bundle-id>"Update the cask - Add the discovered zap paths using the Edit tool. For simple additions you can edit directly; for significant changes, re-invoke the cask-writer agent.
Uninstall:
brew uninstall --cask <token>Re-run automated tests if zap stanza was added.
When ready to submit:
Use the Task tool:
- subagent_type: homebrew:pr-submitter
- prompt: Submit a PR for the <token> cask.
Version: <version>
Cask path: <path-to-cask-file>
All tests passed: yesIf any step fails:
For detailed guidance, agents can read these docs (at /opt/homebrew/docs/):
Acceptable-Casks.md - What's allowedCask-Cookbook.md - Stanza referenceBrew-Livecheck.md - Livecheck strategiesAdding-Software-to-Homebrew.md - Contribution processScripts are at ${CLAUDE_PLUGIN_ROOT}/scripts/:
download-checksum.sh <url> [filename] - Download and SHA256test-cask.sh <token> [--skip-livecheck] - Run audit/style/livecheck© malob, 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 configs/claude/plugins/homebrew/skills/new-cask of malob/nix-config.
Open the folder on GitHubat commit 9cca0f4
Homebrew Cask Creator 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 |
|---|---|---|---|---|---|---|
| Homebrew Cask Creator this skillmalob/nix-config | 463 | — | ~1.6k | Automated safety check: Pass | MIT | |
| Mole CLI Release Flowtw93/Mole | 70k | — | ~2.5k | Automated safety check: Pass | GPL-3.0 | |
| Releaseeugene1g/agent-safehouse | 2.1k | — | ~3.5k | Automated safety check: Pass | Apache-2.0 | |
| Gearcoleco Debuggingdrhelius/Gearcoleco | 141 | — | ~3.5k | Automated safety check: Pass | GPL-3.0 | |
| Go Upgradestraubt1/tfx | 110 | — | ~914 | Automated safety check: Notes | MIT | |
| Ship PRopenbootdotdev/openboot | 275 | — | ~3.6k | Automated safety check: Warn | MIT |
tw93/Mole
Runbook for assessing and executing a Mole CLI release: distribution channels, pre-flight checks, capital-V tags, build artifacts and the handoff to curated release notes.
eugene1g/agent-safehouse
Run the local Agent Safehouse release flow: inspect commits since the last published release, propose the next SemVer version and changelog, present a dry-run for confirmation, then update…
drhelius/Gearcoleco
Debug and trace ColecoVision and Super Game Module games using the Gearcoleco emulator MCP server.
straubt1/tfx
Upgrade macOS Go and all module dependencies in TFx via task go:upgrade, then verify build and tests.
openbootdotdev/openboot
A skill your agent uses when the user is done editing and wants to ship the current branch via a pull request — phrases like "open a PR", "ship it", "ship this", "submit the PR", "let's send it"…
vaayne/mori
Release workflow for Mori macOS workspace terminal and MoriRemote iOS app.
malob/nix-config
Coordinates a team of researcher agents across several rounds, with a lead who triages findings, assigns follow-ups and cross-checks key claims.
malob/nix-config
Scans project-local Claude Code settings files, finds permission patterns worth promoting to global config, then cleans up what global now covers.
malob/nix-config
Works around Claude Code filtering private-use Unicode so agents can read and write Nerd Font icons in Starship, tmux and prompt configs.
malob/nix-config
Practical guidance for multi-source web research with Exa, the Firecrawl CLI and Reddit MCP tools: when to search, when to fetch and which tool to prefer.
Categories
Coordinates specialist agents to create a Homebrew cask for a macOS app: pre-flight checks, download and inspection, a livecheck strategy and the remaining cask steps. The skill runs in the main conversation and uses the Task tool to hand specialized work to agents. It starts from a URL; if none is given it asks for the app name, a direct DMG or ZIP link, or the product homepage, and it keeps a task list.
Homebrew Cask Creator fits situations like: adding a macOS application to Homebrew as a new cask; checking whether an app is suitable for homebrew-cask before investing time; working out the livecheck strategy and checksum for a cask.
Run `npx skills add malob/nix-config --skill new-cask -a claude-code`. Or copy the skill folder (configs/claude/plugins/homebrew/skills/new-cask in malob/nix-config) into .claude/skills/new-cask in your project. Claude Code loads it when a task matches its description.
Run `npx skills add malob/nix-config --skill new-cask -a codex`. Or copy the skill folder (configs/claude/plugins/homebrew/skills/new-cask in malob/nix-config) into .agents/skills/new-cask 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 malob/nix-config --skill new-cask -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/new-cask, .gemini/skills/new-cask, .github/skills/new-cask and .opencode/skills/new-cask in your project.
Going by SKILL.md and its folder, Homebrew Cask Creator needs the command-line tools its instructions call (brew and bundle). Our summary lists: Homebrew on macOS; The gh CLI and git for submission; Network access to download the app. Its frontmatter pre-approves these tools: Read, Grep, Glob, WebFetch, WebSearch, Bash(brew *), Bash(gh *), Bash(curl *), Bash(hdiutil *), Bash(defaults read *), Bash(shasum *), Bash(git *), Bash(plutil *), Bash(file *), Bash(lipo *), Bash(ls *), Bash(find *), Bash(strings *), Bash(unzip *), Bash(open *), Bash(${CLAUDE_PLUGIN_ROOT}/scripts/*).
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. Review the folder before installing.
Homebrew Cask Creator 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.6k tokens (SKILL.md is roughly 6.4k 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 Homebrew Cask Creator: Mole CLI Release Flow (tw93/Mole, 70k stars), Release (eugene1g/agent-safehouse, 2.1k stars), Gearcoleco Debugging (drhelius/Gearcoleco, 141 stars) and Go Upgrade (straubt1/tfx, 110 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
malob (a GitHub user) maintains it in malob/nix-config, which has 463 GitHub stars. The repository holds 5 skills in this directory. The repository was last updated on October 4, 2026.
Source: malob/nix-config on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.