Install the "release-version" agent skill from https://github.com/GOODBOY008/r-shell/tree/main/.github/skills/release-version into .claude/skills/release-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-version", 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.
Type 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.
skills CLI
$ npx skills add GOODBOY008/r-shell --skill release-version -a codex
Project install goes to .agents/skills/; add -g for ~/.codex/skills/.
Install the "release-version" agent skill from https://github.com/GOODBOY008/r-shell/tree/main/.github/skills/release-version into .agents/skills/release-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-version", 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.
skills CLI
$ npx skills add GOODBOY008/r-shell --skill release-version -a cursor
Project install goes to .agents/skills/; add -g for ~/.cursor/skills/.
Install the "release-version" agent skill from https://github.com/GOODBOY008/r-shell/tree/main/.github/skills/release-version into .cursor/skills/release-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-version", 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.
--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
skills CLI
$ npx skills add GOODBOY008/r-shell --skill release-version -a gemini-cli
Project install goes to .agents/skills/; add -g for ~/.gemini/skills/.
Install the "release-version" agent skill from https://github.com/GOODBOY008/r-shell/tree/main/.github/skills/release-version into .gemini/skills/release-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-version", 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.
Installs 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).
skills CLI
$ npx skills add GOODBOY008/r-shell --skill release-version -a github-copilot
Project install goes to .agents/skills/; add -g for ~/.copilot/skills/.
Install the "release-version" agent skill from https://github.com/GOODBOY008/r-shell/tree/main/.github/skills/release-version into .github/skills/release-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-version", 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.
skills CLI
$ npx skills add GOODBOY008/r-shell --skill release-version -a opencode
OpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
Install the "release-version" agent skill from https://github.com/GOODBOY008/r-shell/tree/main/.github/skills/release-version into .opencode/skills/release-version/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "release-version", 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.
Facts
Skill name
release-version
GitHub stars
151
Token cost
~4k tokens
SKILL.md length
1,697 words
Files
1
Skills in repo
1
Repo updated
First seen
Licence
MIT
At a glance
Release a new r-shell version and create a published GitHub release with contributor credits.
Works in 7 steps: Determine Bump Type → Run the Version Bump Script → Update CHANGELOG.md → …
Bumping version
SKILL.md covers When to Use, Procedure, Decision Points and Promotion (current → stable), plus 2 more sections
Calls gh, pnpm and git
What it does
Release Version is an agent skill from GOODBOY008/r-shell. Release a new r-shell version and create a published GitHub release with contributor credits. Supports stable releases (vX.Y.Z), tagged prerelease versions (vX.Y.Z-beta.N / -rc.N), and evolution-line releases (vX.Y.Z-current.N). Use when: releasing, publishing, bumping version, tagging, creating release notes, gh release create, version bump, patch release, minor release, major release, prerelease, beta, rc, tagged release, stable release, current channel, evolution line.
Its SKILL.md is about 4k 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 GitHub, Homebrew, React and Tauri. The repository describes itself as: 🚀 Lightweight open-source SSH/SFTP/FTP client built with Rust & Tauri 2. Only ~34 MB memory. Installer under 10 MB . Split terminals, SFTP, GPU monitoring. macOS/Windows/Linux. The licence is MIT.
When your agent uses it
Bumping version
Creating release notes
Gh release create
Current channel
Example prompts
“/release-version”
Workflow steps
7 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 23d7e8c. 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:
gh
pnpm
git
node
brew
From the folder's file list and the shell code blocks in SKILL.md.
Network
No URLs in SKILL.md. Its commands use gh, pnpm and git, which can reach the network depending on how they are called.
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 Version loads about 4k tokens when it runs. Until then it costs about 123 tokens; SKILL.md has 1,697 words of instructions outside code blocks.
Always· name and description, kept in context so the agent knows when to use it
~123
When it runs· the whole SKILL.md, loaded when a task matches
~4k
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.
Download SKILL.mdSave it as .claude/skills/release-version/SKILL.md (or your agent's skills folder).
name
release-version
description
Release a new r-shell version and create a published GitHub release with contributor credits. Supports stable releases (vX.Y.Z), tagged prerelease versions (vX.Y.Z-beta.N / -rc.N), and evolution-line releases (vX.Y.Z-current.N). Use when: releasing, publishing, bumping version, tagging, creating release notes, gh release create, version bump, patch release, minor release, major release, prerelease, beta, rc, tagged release, stable release, current channel, evolution line.
argument-hint
bump type: patch | minor | major | prerelease [identifier] | stable [--channel current]
Release New Version & Create GitHub Release
Bumps the project version across all config files, updates the CHANGELOG, pushes a tag, and creates a published GitHub release using gh, with release notes that credit the contributors. Two release kinds are supported:
Stable release — vX.Y.Z (e.g. v2.8.0), published as the repo's Latest release. The Release workflow uploads latest.json (the in-app updater manifest) and updates the Homebrew cask, so every stable user sees it.
Tagged (prerelease) release — vX.Y.Z-<id>.<n> (e.g. v2.8.0-beta.1, v2.8.0-rc.1), published as a GitHub prerelease (never Latest). The Release workflow skips latest.json and Homebrew for prerelease tags, so stable users are never offered a prerelease and Homebrew is untouched.
Evolution-line (current channel) release — vX.Y.Z-current.<n> (e.g. v3.0.0-current.1), published as a GitHub prerelease with a reduced build matrix (mac arm64 on macOS 26+, Linux, Windows). The workflow uploads a current.json updater manifest under the rolling current tag and skips latest.json and Homebrew, so the stable channel and the cask never move. See the Homebrew dual-baseline design.
Both trigger the same release.yml build on a pushed v* tag; only the release kind differs. The workflow runs a validate-tag job first that fails fast if the tag is not a valid semver tag or does not match every version file, and it marks tagged prereleases as GitHub prereleases automatically (prerelease: true), so stable releases always stay the repo's "Latest".
When to Use
Releasing a new patch, minor, or major version of r-shell (stable)
Releasing a tagged prerelease of r-shell (-alpha, -beta, -rc) before it goes stable
Creating a GitHub release (published) with changelog notes and contributor credits
Tagging a new version and pushing to origin
Procedure
Start from origin/main: the version bump and tag land on main, so a stale or non-main branch would tag the wrong commit. Before anything else, sync:
bash
git fetch origin
git checkout main
git pull --ff-only origin main
git status # abort if the working tree is dirty
1. Determine Bump Type
Ask (or infer from the argument) which kind of release this is:
For prereleases, an optional identifier selects the prerelease line (alpha, beta, rc, ...) and defaults to beta:
2.8.0-beta.1 → 2.8.0-beta.2 continues the same beta line
2.8.0-beta.3 → 2.8.0-rc.1 switches from beta to the rc line
2.8.0-beta.3 → 2.8.0 (via stable) promotes the prerelease to the stable release
On the current channel (only major/minor/patch bumps allowed):
From a stable version, the bump opens the line's base: 2.9.3 + major --channel current → 3.0.0-current.1
From a -current.<N> version, the base is fixed and the bump type is ignored — the counter continues from the existing v<base>-current.* git tags (+1)
Promotion to a new stable base happens on the stable channel (a normal patch/minor/major bump)
2. Run the Version Bump Script
The script is non-destructive on preview: run --dry-run first to confirm the target version and its CHANGELOG action without writing anything, then run it for real:
bash
# Preview first (optional but recommended):
pnpm exec node scripts/bump-version.mjs <type> --dry-run
# Replace <type> with patch, minor, major, prerelease [identifier], or stable
pnpm run version:<type>
# e.g.:
pnpm run version:patch # 2.7.0 -> 2.7.1 (stable)
pnpm run version:minor # 2.7.0 -> 2.8.0 (stable)
pnpm run version:prerelease # 2.7.0 -> 2.8.0-beta.1 (tagged)
pnpm run version:prerelease rc # 2.8.0-beta.3 -> 2.8.0-rc.1 (tagged)
pnpm run version:stable # 2.8.0-beta.3 -> 2.8.0 (finalize)
pnpm run version:major -- --channel current # 2.9.3 -> 3.0.0-current.1 (evolution line)
The script enforces two preflight guardrails before touching anything (both bypassed with --force if you know what you are doing):
Version drift — package.json, Cargo.toml, Cargo.lock, and tauri.conf.json must all agree on the current version.
Dirty tree — no uncommitted tracked modifications (untracked files are fine), so the bump commit contains exactly the version change.
If the working tree is dirty (e.g. you have uncommitted version-draft edits), the bump will refuse — commit/stash, or run with --force. Use --yes to skip the interactive confirmation (useful when driving the bump from an automated agent).
This updates all four version locations atomically and creates a git commit:
package.json
src-tauri/Cargo.toml
src-tauri/Cargo.lock
src-tauri/tauri.conf.json
CHANGELOG.md (adds a skeleton section — for prerelease/stable/current-channel bumps it renames the existing release-line section instead of adding duplicates)
Read the new version from package.json:
bash
node -p "require('./package.json').version"
3. Update CHANGELOG.md
First, get the actual commits since the previous tag. Find the previous tag and list every commit:
bash
PREV_TAG=$(git tag --sort=-v:refname | sed -n '2p') # second-newest tag
git log "${PREV_TAG}..HEAD" --oneline --no-merges
⚠️ CRITICAL — Do NOT fabricate changelog entries. Every bullet point MUST correspond to a commit in the output above. Do not copy bullets from older versions, do not invent features, and do not summarize the whole project history.
Open CHANGELOG.md and fill in the new version section that the script created. Replace the placeholder lines with actual release notes derived strictly from the commit list, grouped under the GitHub "What's Changed" sections:
Format every entry as type(scope): subject by @username in #PR. Resolve each commit's GitHub username and PR number:
bash
# GitHub username for a commit SHA (author.login is the account that authored it):
gh api "repos/GOODBOY008/r-shell/commits/<sha>" --jq .author.login
# PR number — r-shell subjects usually carry "(#NN)"; fall back to the API:
gh api "repos/GOODBOY008/r-shell/commits/<sha>/pulls" --jq '.[0].number // empty'
If a commit's PR number can't be resolved, omit in #PR; if the author has no GitHub account, use the plain author name. Example:
markdown
### New Features 🎉
- feat(connections): add password visibility toggles by @sunxiaobin89 in #77
### Bug Fixes 🐛
- fix(terminal): wire Edit menu to active terminal by @htazq in #57
Add a release headline as the first paragraph after the version header (see existing entries for the pattern: ### 🔖 R-Shell X.Y — Codename).
The **Full Changelog** line must use the actual previous tag → new tag (for a prerelease, PREV_TAG is the previous tag and NEW_TAG is v${VERSION}, e.g. v2.8.0-beta.1):
For a prerelease, the CHANGELOG section header is the exact prerelease version (## [2.8.0-beta.1]); it is renamed to ## [2.8.0] when the prerelease is finalized. Evolution-line releases keep the full suffix as the header (## [3.0.0-current.1]), renamed on each current bump. Keep the notes under whichever header matches the version you are releasing.
After editing, amend the commit to include the updated CHANGELOG:
bash
git add CHANGELOG.md
git commit --amend --no-edit
4. Create and Push the Git Tag
Before tagging, verify the tag would match every version file — this is exactly what the Release workflow's validate-tag job enforces, so catching it here saves a failed build:
VERSION=$(node -p "require('./package.json').version")
git tag "v${VERSION}"
git push origin main
git push origin "v${VERSION}"
5. Extract Release Notes from CHANGELOG
Parse the new version's section from CHANGELOG.md and write it to a temp file (shell variable interpolation silently truncates multiline content, so always use a file):
cat "${NOTES_FILE}"
# If empty, the awk pattern didn't match — check CHANGELOG.md header format is exactly ## [X.Y.Z]
wc -l "${NOTES_FILE}"
If the file is empty, do NOT continue — fix the CHANGELOG header format first.
Show full SKILL.md (662 more words)Show less
6. Create the GitHub Release (Published)
The release is created in a published state — visible immediately to users and triggering any release notifications/webhooks. Use --notes-file (not --notes) to pass multiline content reliably.
Stable release (v2.8.0) — mark it --latest so it drives the in-app updater and becomes the repo's "Latest":
Tagged (prerelease) release (v2.8.0-beta.1, v2.8.0-rc.1, v3.0.0-current.1) — use --prereleaseinstead of--latest. Do not mark a prerelease as latest: the Release workflow's upload-updater-json and update-homebrew jobs skip prerelease tags, so leaving --latest off keeps the stable updater channel and Homebrew pointing at the last stable version.
Check the output includes the release body text (not just "See the assets…"). If the body is empty, the notes file was empty or the awk pattern didn't match — re-run step 5 to debug, then use gh release edit "v${VERSION}" --notes-file <file> --repo GOODBOY008/r-shell to fix it.
For a stable release, also confirm it is marked "Latest" (gh release view shows the tag without a prerelease: line), so releases/latest/download/latest.json serves this version to the in-app updater.
For a tagged (prerelease) release, confirm:
gh release view shows it as Pre-release (prerelease: true in the API: gh api repos/GOODBOY008/r-shell/releases/tags/v${VERSION} --jq .prerelease).
latest.json was not attached to this release (check the assets list), and the stable releases/latest endpoint still points at the last stable release — stable users must not be offered a prerelease.
Decision Points
Changelog already accurate? Skip step 3's changelog edits (but still add the ### Contributors section) and the amend.
Want to keep the release hidden until you publish it manually? Add --draft to the gh release create command in step 6.
Attaching build artifacts? Add file paths after the tag in gh release create: gh release create "v${VERSION}" ./dist/*.dmg ./dist/*.exe --latest ...
Stable vs tagged (prerelease)? A stable release uses --latest and updates the in-app updater + Homebrew. A tagged prerelease (-alpha/-beta/-rc) uses --prerelease instead of --latest; the Release workflow skips latest.json and Homebrew for prerelease tags, so stable users and Homebrew are never switched to a prerelease. Finalize a prerelease with pnpm run version:stable before tagging it as vX.Y.Z.
Stable vs evolution line (current channel)? A current-channel release (vX.Y.Z-current.<N>, bumped with --channel current) is also published with --prerelease, but it ships the reduced evolution-line build matrix and gets its own current.json manifest under the rolling current tag — latest.json and Homebrew stay on the stable line. Open the line from a stable version (major --channel current), continue it with any stable bump type (the base and bump type are ignored, only <N> advances), and promote back to stable with a normal bump on the stable channel.
Promotion (current → stable)
Every 4–6 weeks the current line is frozen and promoted to a stable release:
pnpm run version:minor on main — a plain stable bump automatically strips the -current.N suffix (3.0.0-current.3 → 3.1.0).
Fill the new CHANGELOG section — the current line's unreleased features roll up into this stable entry.
Tag vX.Y.0 and release as usual (--latest): full compat matrix (mac arm64 + Intel, Linux, Windows msi+nsis), latest.json refreshes and the Homebrew tap follows.
Stable-release QA checklist
macOS 27 (latest major) manual QA — no GitHub runner exists yet, and "works on the latest major macOS" is a hard requirement for any future Homebrew-official cask: launch the app, connect over SSH, type in a terminal, transfer a file over SFTP.
releases/latest points at the new stable tag and latest.json reports the new version on all four platforms (stable channel intact).
The Homebrew tap dispatch succeeded (update-homebrew job) and brew info shows the new version.
Homebrew-official cask bump automation is shelved until notarization is in place — see the dual-baseline design §3.5.
Prerequisites
gh CLI authenticated (gh auth status)
pnpm installed
Git remote origin points to GOODBOY008/r-shell
On the main branch, synced with origin/main (fetch + fast-forward pull — see the note at the top of the Procedure)
Release Version 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.
A skill your agent uses when releasing AgentBro from this repository: merging dev/main, bumping versions, updating release notes, tagging, pushing, monitoring GitHub Actions, Homebrew cask…
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.
Release a new r-shell version and create a published GitHub release with contributor credits. Release Version is an agent skill from GOODBOY008/r-shell. Release a new r-shell version and create a published GitHub release with contributor credits.
When should I use Release Version?
Release Version fits situations like: bumping version; creating release notes; gh release create; current channel.
How do I install Release Version in Claude Code?
Run `npx skills add GOODBOY008/r-shell --skill release-version -a claude-code`. Or copy the skill folder (.github/skills/release-version in GOODBOY008/r-shell) into .claude/skills/release-version in your project. Claude Code loads it when a task matches its description.
How do I install Release Version in Codex?
Run `npx skills add GOODBOY008/r-shell --skill release-version -a codex`. Or copy the skill folder (.github/skills/release-version in GOODBOY008/r-shell) into .agents/skills/release-version in your project. Codex loads it when a task matches its description.
Can I use Release Version 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 GOODBOY008/r-shell --skill release-version -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-version, .gemini/skills/release-version, .github/skills/release-version and .opencode/skills/release-version in your project.
What does Release Version need to run?
Going by SKILL.md and its folder, Release Version needs the command-line tools its instructions call (gh, pnpm, git, node and brew).
Does Release Version access the network?
SKILL.md contains no URLs. Its commands use gh and git, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Is Release Version 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 Version use?
Release Version is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
How many tokens does Release Version use?
About 4k tokens (SKILL.md is roughly 16k 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 Version?
Skills that share tags, products or a category with Release Version: Agentbro Release (shirenchuang/agentbro, 203 stars), Cut Release (delexw/claude-code-trace, 376 stars), Create Release Checklist (software-mansion/smelter, 732 stars) and Git Workflow (bkywksj/knowledge-base, 330 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Who maintains Release Version?
GOODBOY008 (a GitHub user) maintains it in GOODBOY008/r-shell, which has 151 GitHub stars. The repository was last updated on October 6, 2026.
Source: GOODBOY008/r-shell on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.