EverOS Release Workflow
EverMind-AI/EverOS
Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.
A skill your agent uses when shipping a release of Agent Sessions — bumping version, updating CHANGELOG, building, signing, notarizing, publishing appcast, and creating a GitHub release.
$ npx skills add jazzyalex/agent-sessions --skill deploy -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jazzyalex/agent-sessions deploy --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/jazzyalex/agent-sessions.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.claude/skills/deploy .claude/skills/deploy && 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 "deploy" agent skill from https://github.com/jazzyalex/agent-sessions/tree/main/.claude/skills/deploy into .claude/skills/deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deploy", 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/jazzyalex/agent-sessions/tree/main/.claude/skills/deployType 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 jazzyalex/agent-sessions --skill deploy -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jazzyalex/agent-sessions deploy --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jazzyalex/agent-sessions.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.claude/skills/deploy .agents/skills/deploy && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "deploy" agent skill from https://github.com/jazzyalex/agent-sessions/tree/main/.claude/skills/deploy into .agents/skills/deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deploy", 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 jazzyalex/agent-sessions --skill deploy -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jazzyalex/agent-sessions deploy --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jazzyalex/agent-sessions.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.claude/skills/deploy .cursor/skills/deploy && 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 "deploy" agent skill from https://github.com/jazzyalex/agent-sessions/tree/main/.claude/skills/deploy into .cursor/skills/deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deploy", 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/jazzyalex/agent-sessions.git --path .claude/skills/deploy--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 jazzyalex/agent-sessions --skill deploy -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jazzyalex/agent-sessions deploy --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jazzyalex/agent-sessions.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.claude/skills/deploy .gemini/skills/deploy && 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 "deploy" agent skill from https://github.com/jazzyalex/agent-sessions/tree/main/.claude/skills/deploy into .gemini/skills/deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deploy", 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 jazzyalex/agent-sessions deployInstalls 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 jazzyalex/agent-sessions --skill deploy -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jazzyalex/agent-sessions.git skills-src && mkdir -p .github/skills && cp -r skills-src/.claude/skills/deploy .github/skills/deploy && 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 "deploy" agent skill from https://github.com/jazzyalex/agent-sessions/tree/main/.claude/skills/deploy into .github/skills/deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deploy", 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 jazzyalex/agent-sessions --skill deploy -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jazzyalex/agent-sessions deploy --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jazzyalex/agent-sessions.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.claude/skills/deploy .opencode/skills/deploy && 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 "deploy" agent skill from https://github.com/jazzyalex/agent-sessions/tree/main/.claude/skills/deploy into .opencode/skills/deploy/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "deploy", 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.
deployA skill your agent uses when shipping a release of Agent Sessions — bumping version, updating CHANGELOG, building, signing, notarizing, publishing appcast, and creating a GitHub release.
Deploy is an agent skill from jazzyalex/agent-sessions. Use when shipping a release of Agent Sessions — bumping version, updating CHANGELOG, building, signing, notarizing, publishing appcast, and creating a GitHub release.
Its SKILL.md is about 3.3k 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 Deployment and Changelog and release notes. It works with GitHub. The repository describes itself as: Local-first macOS app to browse, search, analyze, and resume supported AI coding-agent session history across Codex, Claude Code, OpenCode, Cursor Agent, Antigravity, Hermes… The licence is MIT.
6 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 6fa9a73. 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.
Shell commands in SKILL.md call:
gitghxcodebuildpython3From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use git and gh, which can reach the network depending on how they are called.
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.
Deploy loads about 3.3k tokens when it runs. Until then it costs about 43 tokens; SKILL.md has 1,784 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 jazzyalex/agent-sessions at commit 6fa9a73, republished under its MIT licence (© jazzyalex). 1,784 words, ~3,260 tokens.
.claude/skills/deploy/SKILL.md (or your agent's skills folder).This skill is an agent-facing entrypoint that avoids duplicating the deployment runbook.
docs/deployment.mdtools/release/deploy (see tools/release/deploy --help)docs/release/pre-release-qa.mdIf anything here disagrees with the runbook, follow docs/deployment.md.
git log --oneline --decorate -n 30 and git diff --name-only <LAST_TAG>..HEAD; identify high-risk areas.xcodebuild -project AgentSessions.xcodeproj -scheme AgentSessions -configuration Debug build./scripts/xcode_test_stable.shdocs/release/pre-release-qa.md §3–4 and ask the user to confirm GO/NO-GO after completing them.Test count. QA reads the authoritative pass count from the .xcresult bundle (stdout
reports per-bundle totals and this scheme has two — it under-reports) and compares it to
tools/release/test-count-baseline.txt. A drop warns and continues, deliberately: it
does not block a release. So the warning has to actually be read — a deleted suite still
exits 0 from xcodebuild, and this line is the only thing that says so. When the count
changes for a real reason, update the baseline file in the same release.
X.Y for major/minor releases, X.Y.Z only for patch releases; never ship X.Y.0)docs/CHANGELOG.mdDo NOT ask about QA status — QA always runs automatically as part of pre-deploy (see QA Gate above).
README.md download link: v{VERSION}/AgentSessions-{VERSION}.dmg and label Download Agent Sessions {VERSION} (DMG)README.md Option A download link (second occurrence under Install section)docs/index.html download button URL and labeldocs/index.html version meta-line (Version {VERSION} · Free & open source · No telemetry)docs/index.html's description, og:description and twitter:description are
deliberately version-agnostic as of the 2026-08-29 SEO work. This checklist used to
demand "mention current version + key change" there, which is how the homepage description
reached 541 chars reading "Version 5.0 makes every agent a plug-in adapter…" — past the
~155-char SERP budget, and stale the day after every release.
Leave them alone. If the product's positioning genuinely changes, rewrite them on their own
merits and keep the budget: title ≤60, description ≤155. Adding a version string is the
one edit that is always wrong. See the reference-docs-site-seo-conventions memory.
README.md "What's New in X.Y" section: update heading to new version, rewrite TL;DR and Highlights to reflect this release's key changes (do not keep old version's copy)docs/index.html hero/feature copy if features were renamed or new agents addeddocs/index.htmldocs/CHANGELOG.md)A fix to a feature that ships in this same release is not a Bug Fix. It is development.
When a feature is new in X.Y, every defect found and fixed in it before X.Y shipped was never in anyone's hands. Listing those under "Bug Fixes" invents a history of breakage users never experienced, and buries the actual feature under a list of things that sound broken. Ship the feature; the fixes are part of it.
Before writing any Bug Fix entry, ask: which released version had this bug? If the answer is "none — the code is new in this release", the entry does not exist. Fold anything user-visible into the feature's own Highlight instead.
Worked example (4.8, Grok CLI's first release):
Mixed entries need splitting, not deleting: a fix spanning shipped and new sources is real for the shipped ones. Describe it in terms of those, and drop the new source from the list. In 4.8 the CLI PATH-masking fix covered Cursor, Kimi and Pi (all shipped) plus Grok (new) — it stayed, naming only the three.
This applies identically to docs/CHANGELOG.md, the Sparkle notes, the GitHub release
body, and the README "What's New". The changelog is the source all of them derive from, so
fix it there first.
docs/index.html (check the download button and version meta-line; the meta descriptions should read the same as before the release)docs/CHANGELOG.md [Unreleased] section has full, accurate content for this release (this is the only changelog — root CHANGELOG.md is a pointer to it, not a copy to sync)AgentSessions/Onboarding/Models/WhatsNewCatalog.swift — both a teasers line and a bundled array. hasContent goes true on the auto-generated new-provider row alone, so a forgotten release still shows the card, just with one generic line and no teaser. Do not author a row for a new source by hand: providerHighlights(for:) generates it from versionIntroduced, and authoring it again shows it twice.docs/index.html download button URL, label, and version meta-line updateddocs/index.html meta descriptions left unchanged — they are version-agnostic on purpose (see "Do NOT version-pin the site meta descriptions")deploy bump (or bump will overwrite)Sparkle notes appear in a small update window. Nobody reads prose there. The 5.0 notes shipped as full changelog paragraphs and had to be republished after the fact — don't repeat that.
docs/CHANGELOG.md; the notes may compress it freely.
If an entry can't be compressed without losing the point, the changelog entry is
overweight — tighten it there first (changelog entries also don't need to be essays).docs/CHANGELOG.md, then
python3 tools/release/sparkle_release_notes.py --version <V> --changelog docs/CHANGELOG.md --appcast docs/appcast.xml --github-url <release-url> --lint --out-text /tmp/notes.txt,
then gh release edit v<V> --notes-file /tmp/notes.txt, commit and push the appcast.docs/CHANGELOG.md:A.B)tools/release/deploy release <VERSION>, the deploy script prints a Sparkle release notes preview after build/sign/notarization and appcast validation.docs/CHANGELOG.md before publishing.SKIP_CONFIRM is not 1, it will pause and ask for approval before publishing (pushing appcast, updating Homebrew, updating the GitHub release).SKIP_CONFIRM=1 requires RELEASE_NOTES_REVIEWED=1 at the appcast publish gate; set it only after manually inspecting the Sparkle preview or for a rerun whose notes were already reviewed.Small bug fixes and stability improvements.tools/release/deploy changelog [FROM_TAG]
tools/release/deploy bump [patch|minor|major]
git push origin main
tools/release/deploy release <VERSION> [--dry-run]
tools/release/deploy verify <VERSION>docs/deployment.md → Troubleshooting, logs, and rollback guidance.tools/release/rollback-release.sh <VERSION>.Two traps, both hit during 5.1.1:
Do not wrap the release in ; echo "EXIT: $?". The wrapper's own status is what the
caller sees, so a pipeline that correctly exited 4 was reported as 0 and briefly looked
like a tooling bug. Run tools/release/deploy release <V> on its own and read its status.
A completed run is not a published release. Confirm against the world, not the log:
gh release view v<VERSION> --json tagName,isDraft,assets
git ls-remote --tags origin v<VERSION>
grep -n "sparkle:shortVersionString" docs/appcast.xmlThen tools/release/deploy verify <VERSION> for the full check. A failure before the
publish steps leaves nothing public — no release, no tag, appcast unchanged — which is
the state to expect after an aborted build.
The release log embeds the entire QA test output, so a bare keyword grep matches test
names, not events — "Aborted", "Homebrew" and "rollback" all produced false alarms during
5.1.1. Anchor on the script's own line markers (^==> , ^✅ , ^ERROR: ) and run the
pattern against the live log before trusting it. Note also that ERROR: Release QA stamp is not valid is expected and self-heals whenever HEAD moved after deploy qa — it re-runs QA
rather than failing. When matching newest-file-by-glob (/tmp/notarization-<V>-*.log),
guard on mtime or you will read the previous run's artifacts.
© jazzyalex, 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 .claude/skills/deploy of jazzyalex/agent-sessions.
Open the folder on GitHubat commit 6fa9a73
Deploy 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 |
|---|---|---|---|---|---|---|
| Deploy this skilljazzyalex/agent-sessions | 892 | — | ~3.3k | Automated safety check: Pass | MIT | |
| EverOS Release WorkflowEverMind-AI/EverOS | 13k | — | ~1.3k | Automated safety check: Pass | Apache-2.0 | |
| Remotion Bits Releaseav/remotion-bits | 486 | — | ~1.2k | Automated safety check: Pass | None | |
| Cline CLI Release Publishercline/cline | 70k | — | ~3.4k | Automated safety check: Warn | Apache-2.0 | |
| ClawRouter Release ChecklistBlockRunAI/ClawRouter | 6.6k | — | ~1.4k | Automated safety check: Pass | MIT | |
| AnyDrag Release RoutineXueshiQiao/AnyDrag | 227 | — | ~2.6k | Automated safety check: Pass | GPL-3.0 |
EverMind-AI/EverOS
Walks through cutting a versioned everos release: bump the version, update the changelog, tag it, and review the drafted GitHub Release page before publishing.
av/remotion-bits
Runs the full release of the remotion-bits package: version bump, changelog, registry build, release commit, GitHub release, docs deploy and npm publish.
cline/cline
Walks through releasing the Cline CLI package to npm: release notes, version bump, matching git tag, and either the GitHub workflow or a local publish.
BlockRunAI/ClawRouter
Walks the agent through every ClawRouter release step in order, from the version bump and changelog entry to build, tests, npm publish, git tag and GitHub release.
XueshiQiao/AnyDrag
Runs the full AnyDrag release process end to end, from cumulative bilingual release notes through version bumping to watching CI and the Homebrew cask update.
GoogleCloudPlatform/genai-factory
Guide for cutting a new release of the GenAI Factory repository.
jazzyalex/agent-sessions
Capture deterministic macOS screenshots for testing, docs, release notes, and marketing assets.
jazzyalex/agent-sessions
Create and ship AgentSessions support for a new or changed local AI agent/provider.
jazzyalex/agent-sessions
Release/deploy workflow for Agent Sessions (Sparkle appcast + GitHub release).
jazzyalex/agent-sessions
A skill your agent uses when writing or curating the user-facing release copy for an Agent Sessions release — README "What's New", GitHub release notes, Sparkle release notes, or website/launch copy.
jazzyalex/agent-sessions
Maintain Agent Sessions agent support matrix and JSON/JSONL parsing compatibility.
jazzyalex/agent-sessions
Verify agent session format compatibility for Agent Sessions.
Works with
Categories
A skill your agent uses when shipping a release of Agent Sessions — bumping version, updating CHANGELOG, building, signing, notarizing, publishing appcast, and creating a GitHub release. Deploy is an agent skill from jazzyalex/agent-sessions. Use when shipping a release of Agent Sessions — bumping version, updating CHANGELOG, building, signing, notarizing, publishing appcast, and creating a GitHub release.
Deploy fits situations like: shipping a release of Agent Sessions — bumping version; updating CHANGELOG; publishing appcast; creating a GitHub release.
Run `npx skills add jazzyalex/agent-sessions --skill deploy -a claude-code`. Or copy the skill folder (.claude/skills/deploy in jazzyalex/agent-sessions) into .claude/skills/deploy in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jazzyalex/agent-sessions --skill deploy -a codex`. Or copy the skill folder (.claude/skills/deploy in jazzyalex/agent-sessions) into .agents/skills/deploy 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 jazzyalex/agent-sessions --skill deploy -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/deploy, .gemini/skills/deploy, .github/skills/deploy and .opencode/skills/deploy in your project.
Going by SKILL.md and its folder, Deploy needs the command-line tools its instructions call (git, gh, xcodebuild and python3). Our summary lists: Python 3.
SKILL.md contains no URLs. Its commands use git and gh, which can reach the network depending on how they are called. 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.
Deploy is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.3k tokens (SKILL.md is roughly 13k 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 Deploy: EverOS Release Workflow (EverMind-AI/EverOS, 13k stars), Remotion Bits Release (av/remotion-bits, 486 stars), Cline CLI Release Publisher (cline/cline, 70k stars) and ClawRouter Release Checklist (BlockRunAI/ClawRouter, 6.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jazzyalex (a GitHub user) maintains it in jazzyalex/agent-sessions, which has 892 GitHub stars. The repository holds 8 skills in this directory. The repository was last updated on October 6, 2026.
Source: jazzyalex/agent-sessions on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.