Agent skill

Release

by mqtt-viewer in mqtt-viewer/mqtt-viewer

Publish a MQTT Viewer release end to end. An agent skill from mqtt-viewer/mqtt-viewer.

GPL-3.0Auto-check passedDevelopment

Install Release

skills CLI
$ npx skills add mqtt-viewer/mqtt-viewer --skill release -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install mqtt-viewer/mqtt-viewer release --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/mqtt-viewer/mqtt-viewer.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/release .claude/skills/release && rm -rf skills-src

Use ~/.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/

Facts

Skill name
release
GitHub stars
133
Token cost
~1.8k tokens
SKILL.md length
955 words
Files
1
Skills in repo
6
Repo updated
First seen
Licence
GPL-3.0

At a glance

Publish a MQTT Viewer release end to end. An agent skill from mqtt-viewer/mqtt-viewer.

  • Works in 7 steps: Draft the changelog and get it approved… → Pre-flight → Promote the changelog (this is what the… → …
  • The user says release
  • SKILL.md covers Inputs, 1. Draft the changelog and get…, 2. Pre-flight and 3. Promote the changelog (this…, plus 5 more sections
  • Calls just, git and gh

What it does

Release is an agent skill from mqtt-viewer/mqtt-viewer. Publish a MQTT Viewer release end to end. Use when the user says "release", "cut a release", "publish vX.Y.Z", "ship it", or "do a release". First drafts the changelog for user approval, then promotes it, creates the GitHub release that triggers the mac/windows/linux build+sign+portal workflows, watches them, hands off the final go-live step, and triggers the website rebuild.

Its SKILL.md is about 1.8k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.

It sits in Development, covering Changelog and release notes. It works with Linux and GitHub. The repository describes itself as: The modern and open-source MQTT debugging and visualisation tool for Windows, Mac and Linux. The licence is GPL-3.0.

When your agent uses it

  • The user says release
  • The mac/windows/linux build+sign+portal workflows
  • Hands off the final go-live step
  • Triggers the website rebuild

Example prompts

  • “release”
  • “cut a release”
  • “publish vX.Y.Z”
  • “/release”

Workflow steps

7 steps, taken from the step headings in SKILL.md.

  1. Draft the changelog and get it approved (always first)
  2. Pre-flight
  3. Promote the changelog (this is what the release notes ARE)
  4. Dry run (recommended for risky releases)
  5. The real release (confirm first)
  6. Go live (manual, human gate)
  7. Rebuild the website

What it can do on your machine

Read from SKILL.md and the folder at commit 5a43d7c. It shows what the files ask for, not the result of running them.

  • Tool permissions

    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.

  • Runs code

    Shell commands in SKILL.md call:

    • just
    • git
    • gh
    • pnpm

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • cloud.mqttviewer.app
    • mqttviewer.app

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Release loads about 1.8k tokens when it runs. Until then it costs about 97 tokens; SKILL.md has 955 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~97
When it runs · the whole SKILL.md, loaded when a task matches
~1.8k

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.

Safety

Auto-check passed

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.

SKILL.md

The full file from mqtt-viewer/mqtt-viewer at commit 5a43d7c, republished under its GPL-3.0 licence (© mqtt-viewer). 955 words, ~1,789 tokens.

Download SKILL.mdSave it as .claude/skills/release/SKILL.md (or your agent's skills folder).
name
release
description
Publish a MQTT Viewer release end to end. Use when the user says "release", "cut a release", "publish vX.Y.Z", "ship it", or "do a release". First drafts the changelog for user approval, then promotes it, creates the GitHub release that triggers the mac/windows/linux build+sign+portal workflows, watches them, hands off the final go-live step, and triggers the website rebuild.

Release MQTT Viewer

Drives the runbook in docs/RELEASING.md. One release is one annotated GitHub release on main; publishing it fires three workflows (mac / windows / linux) that build, sign, upload assets, and register the version with the portal. Nothing reaches users until the released toggle is flipped in the portal.

Creating a GitHub release is outward-facing and hard to undo. Confirm the version with the user and get an explicit go-ahead before step 5.

Inputs

  • VERSION: the tag, vX.Y.Z (or vX.Y.Z-beta1 for a dry run). If the user didn't give one, ask. Decide the bump (patch vs minor vs major) now, from what actually landed since the last release. Do not pre-empt it earlier.
  • PREV: the previous release tag. It is only the compare base for the "Full changelog" link at the bottom of the notes; the notes themselves come from the changelog entry. Get it with gh release list --limit 5 or git tag --sort=-v:refname | head.

1. Draft the changelog and get it approved (always first)

Before any release mechanics, show the user what the release will say. This is the gate that lets them see, and shape, what's going into the upcoming release.

  • Gather what shipped since PREV: git log PREV..origin/develop --oneline plus the merged PRs (gh pr list --state merged --base develop). Keep only user-visible changes, per the changelog skill's rules (.claude/skills/changelog/SKILL.md).
  • Build the draft from the staging entry in frontend/src/changelog.ts if one exists, folding in anything that landed since it was last updated. If there's no staging entry, draft one from scratch using the changelog skill. Follow docs/WRITING_STYLE.md.
  • Present the full draft in chat: headline, intro, every section, outro. Also list anything you judged NOT worth mentioning, so the user can veto that judgement.
  • Wait for the user to approve or request edits. Apply edits and re-present until they explicitly approve. Do not start pre-flight, and do not touch main, until the draft is approved.
  • Once approved, write the result back to the staging entry in frontend/src/changelog.ts (still released: false); step 3 promotes it.

2. Pre-flight

  • git fetch --all --tags.
  • Confirm develop is the integration branch and is green (latest CI passing).
  • Confirm main can fast-forward from origin/develop (git merge-base --is-ancestor origin/main origin/develop). If it can't, stop and tell the user: main has diverged and just release will fail its --ff-only merge.
  • Working tree clean, and HEAD on the commit that is about to become main (just release aborts on either count). gh auth status OK.

3. Promote the changelog (this is what the release notes ARE)

Two things depend on this entry. The shipped binary carries its own changelog and matches it to its version at runtime, so it becomes "What's new" after the update. And just release renders the same entry into the GitHub release body, which the workflows post to the portal and the update dialog shows under "What's changed" before the update.

So the entry must be promoted and pushed before step 5. If it isn't, just release fails at the first command with "No released changelog entry for X.Y.Z" and nothing is tagged. So:

  • In frontend/src/changelog.ts, take the approved staging entry from step 1 and promote it: set released: true, version to the bare semver ("X.Y.Z", no v, must match VERSION), and date to "Month YYYY".
  • Give it a real headline if it still has the placeholder.
  • The content itself was approved in step 1; don't rewrite it here beyond the promotion fields.

Then validate and land it on develop:

sh
cd frontend && pnpm test:run changelog && pnpm check
git add -A && git commit -m "chore(changelog): notes for VERSION"
git push origin develop

The commit must be on develop and pushed before step 5, because just release fast-forwards main from origin/develop.

Then read back exactly what the release will say:

sh
just release-notes VERSION PREV
Show full SKILL.md (350 more words)Show less
sh
just release vX.Y.Z-beta1 PREV --prerelease
just release-status   # watch the three workflows

Fix any CI issues and use just release-retry (delete + recreate the tag, so workflows run from the fixed commit) rather than a plain re-run.

A -beta1 tag uses the changelog entry for the version it rehearses, so the dry run shows the real notes.

5. The real release (confirm first)

sh
just release VERSION PREV

This runs scripts/release.sh, which checks the working tree is clean and that HEAD is origin/develop (the notes have to render from the tree that becomes main), renders the notes from the changelog entry, merges develop into main, pushes, and runs gh release create --notes-file with them. Any of those steps failing stops the release before the tag exists. PREV is only the compare base for the "Full changelog" link at the bottom. Then watch:

sh
just release-status
gh run list --limit 6

Expected assets (see docs/RELEASING.md for the full list): darwin arm64/amd64 zips, windows arm64/amd64 zips + installer.exe, linux zip/AppImage/deb/rpm, each with a .sha256.

6. Go live (manual, human gate)

The workflows POST each artifact to the portal, creating one release_v3 record with released=false. It reaches users only when someone flips released=true.

  • Tell the user to open the PocketBase admin at https://cloud.mqttviewer.app/_/, find the new release_v3 record, confirm all platform artifacts merged into it, and flip released when happy. The in-app updater (POST /api/cv1/updates/v3/check) only serves released=true.
  • This step is the user's to do. Do not attempt to flip it yourself.

7. Rebuild the website

The download pages on mqttviewer.app read the latest complete GitHub release at build time, but the site only rebuilds on a push. Once the user has flipped released, fire the site's rebuild workflow so the new version shows up:

sh
gh api repos/mqtt-viewer/mqttviewer.app/dispatches \
  -f event_type=app-release -f "client_payload[version]=VERSION"

It commits a marker file to the site's main, which Cloudflare builds and deploys. Check https://mqttviewer.app/download shows VERSION a few minutes later. Run it after step 6, not before: the site would otherwise advertise a version the in-app updater does not serve yet.

Notes

  • Signing (Apple gon/notarytool, Azure Trusted Signing) and portal auth all run from CI secrets; see the table in docs/RELEASING.md for where each breaks.
  • After go-live, verify an update check picks up the new version.

© mqtt-viewer, GPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .claude/skills/release of mqtt-viewer/mqtt-viewer.

Open the folder on GitHubat commit 5a43d7c

Compare with similar skills

Release 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.

Release compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Release this skillmqtt-viewer/mqtt-viewer133—~1.8kAutomated safety check: PassGPL-3.0
Cut Releasejfernandez/bpftop2.7k—~2kAutomated safety check: PassApache-2.0
Prepare Releaseneetly/figma-agent-linux395—~833Automated safety check: PassMIT
Release NotesMikalaiBarysevich/CleverSwitch116—~975Automated safety check: PassGPL-3.0
Kernel Watch Triageantoinecellerier/speaker-tuning-to-easyeffects142—~2.6kAutomated safety check: PassMIT
Releasing MarchatCod-e-Codes/marchat137—~801Automated safety check: PassMIT

Similar skills

  • Cut Release

    jfernandez/bpftop

    Cut a new versioned release of bpftop — pick the version, open a version-bump PR, sign-tag the merge commit on main, and draft GitHub release notes in the project's established format.

    2.7k GitHub stars~2k tokensUpdated 1 mo ago
    DevelopmentAuto-check passed
  • Prepare Release

    neetly/figma-agent-linux

    Prepare a new figma-agent-linux release by updating the package version, changelog, and release links, then validating the changes.

    395 GitHub stars~833 tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Release Notes

    MikalaiBarysevich/CleverSwitch

    Generate GitHub release notes for unreleased CleverSwitch tags in the established repo format.

    116 GitHub stars~975 tokensUpdated 2 days ago
    DevelopmentAuto-check passed
  • Kernel Watch Triage

    antoinecellerier/speaker-tuning-to-easyeffects

    Guides triaging a kernel-sound-watch hit comment on the "Kernel sound-tree watch" issue (40) — the weekly workflow's per-tag report of .github/kernel-watchlist.txt grep hits against a new…

    142 GitHub stars~2.6k tokensUpdated yesterday
    DevelopmentAuto-check passed
  • Releasing Marchat

    Cod-e-Codes/marchat

    Prepares marchat releases: version bumps, CHANGELOG, packaging checksums, GitHub Actions release workflow, and Docker tags.

    137 GitHub stars~801 tokensUpdated 5 days ago
    DevOps & CloudAuto-check passed
  • Cutting A Release

    TriliumNext/Trilium

    A skill your agent uses when cutting, preparing, or debugging a Trilium release — bumping the monorepo version, tagging, or diagnosing a failed "Release" workflow run.

    38k GitHub stars~3.2k tokensUpdated today
    DevelopmentAuto-check passed

More from mqtt-viewer/mqtt-viewer

  • Changelog

    mqtt-viewer/mqtt-viewer

    Add or update the in-app "What's new" changelog for MQTT Viewer.

    133 GitHub stars~1.1k tokensUpdated today
    Auto-check passed
  • Ds Figma Handover

    mqtt-viewer/mqtt-viewer

    Diff the Figma component library against the MQTT Viewer frontend and produce a handover doc listing exactly what code needs to change.

    133 GitHub stars~990 tokensUpdated today
    Auto-check passed
  • Perf Check

    mqtt-viewer/mqtt-viewer

    Verify MQTT Viewer stays smooth under heavy broker load using the local flood harness.

    133 GitHub stars~1.6k tokensUpdated today
    Auto-check passed
  • Ds Add Component

    mqtt-viewer/mqtt-viewer

    Add a new component to the design-system library, or formalize an existing one — scaffold its colocated .spec.json, classify its tier, author a Storybook story, and link it to Figma.

    133 GitHub stars~936 tokensUpdated today
    Auto-check passed
  • Ds Implement Handover

    mqtt-viewer/mqtt-viewer

    Implement a Figma→code handover doc — apply the listed changes to Svelte components, update their colocated .spec.json and stories, and get pnpm ds:validate green.

    133 GitHub stars~853 tokensUpdated today
    Auto-check passed

Works with

Categories

Questions about Release

What does Release do?

Publish a MQTT Viewer release end to end. An agent skill from mqtt-viewer/mqtt-viewer. Release is an agent skill from mqtt-viewer/mqtt-viewer. Publish a MQTT Viewer release end to end.

When should I use Release?

Release fits situations like: the user says release; the mac/windows/linux build+sign+portal workflows; hands off the final go-live step; triggers the website rebuild.

How do I install Release in Claude Code?

Run `npx skills add mqtt-viewer/mqtt-viewer --skill release -a claude-code`. Or copy the skill folder (.claude/skills/release in mqtt-viewer/mqtt-viewer) into .claude/skills/release in your project. Claude Code loads it when a task matches its description.

How do I install Release in Codex?

Run `npx skills add mqtt-viewer/mqtt-viewer --skill release -a codex`. Or copy the skill folder (.claude/skills/release in mqtt-viewer/mqtt-viewer) into .agents/skills/release in your project. Codex loads it when a task matches its description.

Can I use Release in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add mqtt-viewer/mqtt-viewer --skill release -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/release, .gemini/skills/release, .github/skills/release and .opencode/skills/release in your project.

What does Release need to run?

Going by SKILL.md and its folder, Release needs the command-line tools its instructions call (just, git, gh and pnpm).

Does Release access the network?

SKILL.md names 2 domains. As links in the text: cloud.mqttviewer.app and mqttviewer.app. This is read from the text; nothing was executed.

Is Release safe to install?

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.

What licence does Release use?

Release is published under the GPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Release use?

About 1.8k tokens (SKILL.md is roughly 7.2k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Release?

Skills that share tags, products or a category with Release: Cut Release (jfernandez/bpftop, 2.7k stars), Prepare Release (neetly/figma-agent-linux, 395 stars), Release Notes (MikalaiBarysevich/CleverSwitch, 116 stars) and Kernel Watch Triage (antoinecellerier/speaker-tuning-to-easyeffects, 142 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Release?

mqtt-viewer (a GitHub organization) maintains it in mqtt-viewer/mqtt-viewer, which has 133 GitHub stars. The repository holds 6 skills in this directory. The repository was last updated on October 8, 2026.

Source: mqtt-viewer/mqtt-viewer on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.