Cline CLI Release Publisher
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.
A skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…
$ npx skills add jmfederico/pi-web --skill npm-release-via-github-actions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install jmfederico/pi-web npm-release-via-github-actions --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/jmfederico/pi-web.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/npm-release-via-github-actions .claude/skills/npm-release-via-github-actions && 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 "npm-release-via-github-actions" agent skill from https://github.com/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actions into .claude/skills/npm-release-via-github-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "npm-release-via-github-actions", 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/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actionsType 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 jmfederico/pi-web --skill npm-release-via-github-actions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install jmfederico/pi-web npm-release-via-github-actions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/npm-release-via-github-actions .agents/skills/npm-release-via-github-actions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "npm-release-via-github-actions" agent skill from https://github.com/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actions into .agents/skills/npm-release-via-github-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "npm-release-via-github-actions", 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 jmfederico/pi-web --skill npm-release-via-github-actions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install jmfederico/pi-web npm-release-via-github-actions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/npm-release-via-github-actions .cursor/skills/npm-release-via-github-actions && 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 "npm-release-via-github-actions" agent skill from https://github.com/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actions into .cursor/skills/npm-release-via-github-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "npm-release-via-github-actions", 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/jmfederico/pi-web.git --path .agents/skills/npm-release-via-github-actions--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 jmfederico/pi-web --skill npm-release-via-github-actions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install jmfederico/pi-web npm-release-via-github-actions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/npm-release-via-github-actions .gemini/skills/npm-release-via-github-actions && 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 "npm-release-via-github-actions" agent skill from https://github.com/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actions into .gemini/skills/npm-release-via-github-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "npm-release-via-github-actions", 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 jmfederico/pi-web npm-release-via-github-actionsInstalls 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 jmfederico/pi-web --skill npm-release-via-github-actions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/npm-release-via-github-actions .github/skills/npm-release-via-github-actions && 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 "npm-release-via-github-actions" agent skill from https://github.com/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actions into .github/skills/npm-release-via-github-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "npm-release-via-github-actions", 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 jmfederico/pi-web --skill npm-release-via-github-actions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install jmfederico/pi-web npm-release-via-github-actions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/jmfederico/pi-web.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/npm-release-via-github-actions .opencode/skills/npm-release-via-github-actions && 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 "npm-release-via-github-actions" agent skill from https://github.com/jmfederico/pi-web/tree/main/.agents/skills/npm-release-via-github-actions into .opencode/skills/npm-release-via-github-actions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "npm-release-via-github-actions", 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.
npm-release-via-github-actionsA skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…
npm Release Via GitHub Actions is an agent skill from jmfederico/pi-web. Use this skill whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or anything similar. It publishes through GitHub Actions and GitHub Releases, not from the local machine, and uses Changesets to generate CHANGELOG.md/release notes. Trigger even for casual phrasing like "ship a release", "bump npm", "publish the package", or "make a new version".
Its SKILL.md is about 2.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).
It sits in DevOps & Cloud, covering CI/CD and Changelog and release notes. It works with npm, GitHub Actions and GitHub. The repository describes itself as: Web UI for Pi Coding Agent that keeps sessions alive in real workspaces. The licence is MIT.
4 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2961669. 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:
npmghgitpnpmyarnFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use npm, gh, git, pnpm and yarn, 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.
npm Release Via GitHub Actions loads about 2.9k tokens when it runs. Until then it costs about 124 tokens; SKILL.md has 1,497 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 jmfederico/pi-web at commit 2961669, republished under its MIT licence (© jmfederico). 1,497 words, ~2,940 tokens.
.claude/skills/npm-release-via-github-actions/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.The user explicitly does not want local npm publishing. For release requests, route publishing through the repository's GitHub Actions workflow, usually triggered by a published GitHub Release.
This project also uses Changesets for changelog generation. Release prep should consume .changeset/*.md fragments into CHANGELOG.md before the GitHub Release is created.
Do not publish from the local machine.
Avoid these commands unless the user explicitly overrides this skill for an unusual emergency:
npm publishnpm run publish:npmpnpm publish, yarn publish, or equivalent package-manager publish commandsIt is OK to run local safety checks and release-prep commands that do not publish, such as:
npm run verifynpm run buildnpm run pack:drynpm run changelog:statusnpm run release:versionnpm version <version> --no-git-tag-version when an exact custom version needs to be enforcedBefore acting, read:
package.json for package name, current version, scripts, and package manager.package-lock.json, pnpm-lock.yaml, or yarn.lock if present, so version bumps keep lockfiles consistent..changeset/config.json and pending .changeset/*.md files, if present..github/workflows/publish.yml or similarly named release workflow.Confirm the workflow publishes on GitHub, preferably from one of these triggers:
on:
release:
types: [published]
workflow_dispatch:For the pi-web repository, the expected workflow is .github/workflows/publish.yml; it publishes with npm publish --access public --provenance from GitHub Actions. Use the GitHub Release path by default.
If there is no GitHub Actions publish workflow, stop and explain that one must be added or fixed. Do not fall back to local npm publish.
Check repo state
git status --short --branch.main.Review and normalize pending changesets
npm run changelog:status.changeset/*.md files.pi-web, non-breaking changesets must use patch even for new features. The package uses CalVer shaped as semver: MAJOR.YYYYMM.PATCH. The semver minor position is the release month, not feature size.minor for a non-breaking change, edit its frontmatter to patch before versioning. Do not ask the user whether to use a patch increase or date change.major only when the user explicitly requests a breaking/major release.Compute the pi-web CalVer version
pi-web, always compute the version from the release date as MAJOR.YYYYMM.PATCH.YYYYMM (for example, date +%Y%m). Do not ask whether to use a same-month patch increase or a date change.MAJOR unless the user explicitly requests a breaking/major release. Do not infer or perform a major version bump on your own.PATCH deterministically:MAJOR and release-month YYYYMM, use current patch + 1.0 for the first release of that major/month.PATCH until an unpublished version is found.patch, minor, new version, new release, publish, or similar without an exact version, still use this CalVer algorithm. Treat minor as a non-breaking release request, not as permission to let Changesets increment semver minor arbitrarily.Generate changelog and version files
patch:npm run release:version.changeset/*.md fragments, updates CHANGELOG.md, updates package.json, and updates the npm lockfile when applicable.npm version <computed-calver-version> --no-git-tag-versionCHANGELOG.md heading to match the computed CalVer version if Changesets used a different heading. This manual changelog heading edit is acceptable during release prep; normal development should still use changeset fragments instead.CHANGELOG.md section. It should be suitable for GitHub Release notes.npm version <new-version> because it creates a local git tag as a side effect; releases should be controlled via GitHub.npm run release:version (Changesets) updates package.json but does not reliably rewrite package-lock.json, and the CalVer-enforcing npm version --no-git-tag-version only touches the lock when it actually runs. Either path can leave the committed package-lock.json behind at the previous version, which then resurfaces as an unexpected diff after the next npm install. After the version is finalized, always resync the lockfile without touching node_modules:npm install --package-lock-onlypackage.json before continuing:node -e "const v=require('./package.json').version, l=require('./package-lock.json'); if (l.version!==v || l.packages[''].version!==v) { console.error('lockfile version mismatch:', l.version, l.packages[''].version, 'expected', v); process.exit(1); } console.log('lockfile in sync at', v);"package-lock.json version disagrees with package.json.Run checks before creating the release
npm run verify
npm run build
npm run pack:dryCommit and push the release prep
package.jsonpackage-lock.jsonCHANGELOG.md.changeset/*.md fragmentspackage-lock.json is actually in the diff and carries the new version. If git status --short does not show package-lock.json as modified while package.json changed version, the lockfile sync in step 4 was missed — go back and run npm install --package-lock-only. Never commit a release where package.json advanced but package-lock.json did not.git add package.json package-lock.json CHANGELOG.md .changeset
git commit -m "chore(release): v<new-version>"
git push origin mainCreate a GitHub Release to trigger publishing
CHANGELOG.md into a temporary notes file if useful.main as the target:gh release create v<new-version> \
--target main \
--title "v<new-version>" \
--notes-file /tmp/pi-web-release-notes-v<new-version>.md--generate-notes is acceptable, but prefer the Changesets-generated text because it is curated.on: release: types: [published].Monitor GitHub Actions
gh run list --workflow publish.yml --limit 5gh run watch <run-id>gh run view <run-id> --log-failedVerify npm registry publication
npm view <package-name> version
npm view <package-name>@<new-version> dist.tarballgh run rerun <run-id> --failed or rerun the workflow in GitHub.workflow_dispatch, pass the intended ref/tag explicitly where possible:gh workflow run publish.yml --ref v<version>npm publish as a workaround for a GitHub Actions or npm provenance issue.After completing or attempting a release, summarize concisely:
CHANGELOG.md section or other notes used© jmfederico, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in .agents/skills/npm-release-via-github-actions of jmfederico/pi-web.
Open the folder on GitHubat commit 2961669
npm Release Via GitHub Actions 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 |
|---|---|---|---|---|---|---|
| npm Release Via GitHub Actions this skilljmfederico/pi-web | 869 | — | ~2.9k | Automated safety check: Pass | MIT | |
| Cline CLI Release Publishercline/cline | 70k | — | ~3.4k | Automated safety check: Warn | Apache-2.0 | |
| Ccb GitHubSeemSeam/claude_codex_bridge | 3.6k | — | ~4.9k | Automated safety check: Pass | Custom licence | |
| Released-kimuson/claude-code-viewer | 1.3k | — | ~1.2k | Automated safety check: Pass | MIT | |
| Automate npm Releasejd-solanki/slidev-theme-dracula | 161 | — | ~626 | Automated safety check: Pass | None | |
| OpenWork Release Processdifferent-ai/openwork | 24k | — | ~2.3k | Automated safety check: Pass | Custom licence |
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.
SeemSeam/claude_codex_bridge
Maintain this CCB project's GitHub-facing release and npm publication surface.
d-kimuson/claude-code-viewer
Run the claude-code-viewer release flow end-to-end. An agent skill from d-kimuson/claude-code-viewer.
jd-solanki/slidev-theme-dracula
Automate npm package publishing via GitHub Actions for single-package repos and independent monorepo packages, including bumpp version tags, GitHub release notes, trusted publishing, provenance, and…
different-ai/openwork
Cuts an OpenWork desktop release through a tag-driven GitHub Actions workflow that makes no commits, with pre-tag checks on open fix PRs and verification afterward.
eser/stack
Releases and CI for eserstack: the shared version of all packages, the release command, the tag-driven build.yml run, JSR and npm publishing, changelog and breaking changes, release recovery, GitHub…
jmfederico/pi-web
A skill your agent uses whenever the user asks about changelogs, Changesets, release notes, conventional commits, commit messages for release notes, or making user-visible project changes that…
jmfederico/pi-web
Repository-specific testing guide. An agent skill from jmfederico/pi-web.
jmfederico/pi-web
Project code quality and architecture expectations for implementation, refactoring, planning, and code review.
jmfederico/pi-web
Repository documentation placement and writing guidance. An agent skill from jmfederico/pi-web.
jmfederico/pi-web
Carry work across a chain of fresh agent contexts using a shared goal, compact baton, and durable record.
jmfederico/pi-web
Prepare and run Relay legs in Pi: keep the goal, baton, and log durable, then hand off to one fresh session or stop visibly.
Works with
Categories
A skill your agent uses whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or…. npm Release Via GitHub Actions is an agent skill from jmfederico/pi-web. Use this skill whenever the user asks for a new npm version, npm release, package release, new release, version bump, publishing to npm, cutting a GitHub release, tagging a release, or anything similar.
npm Release Via GitHub Actions fits situations like: the user asks for a new npm version; package release; publishing to npm; cutting a GitHub release.
Run `npx skills add jmfederico/pi-web --skill npm-release-via-github-actions -a claude-code`. Or copy the skill folder (.agents/skills/npm-release-via-github-actions in jmfederico/pi-web) into .claude/skills/npm-release-via-github-actions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add jmfederico/pi-web --skill npm-release-via-github-actions -a codex`. Or copy the skill folder (.agents/skills/npm-release-via-github-actions in jmfederico/pi-web) into .agents/skills/npm-release-via-github-actions 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 jmfederico/pi-web --skill npm-release-via-github-actions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/npm-release-via-github-actions, .gemini/skills/npm-release-via-github-actions, .github/skills/npm-release-via-github-actions and .opencode/skills/npm-release-via-github-actions in your project.
Going by SKILL.md and its folder, npm Release Via GitHub Actions needs the command-line tools its instructions call (npm, gh, git, pnpm and yarn). Our summary lists: Node.js.
SKILL.md contains no URLs. Its commands use npm, gh and git, 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.
npm Release Via GitHub Actions is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.9k tokens (SKILL.md is roughly 12k 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 npm Release Via GitHub Actions: Cline CLI Release Publisher (cline/cline, 70k stars), Ccb GitHub (SeemSeam/claude_codex_bridge, 3.6k stars), Release (d-kimuson/claude-code-viewer, 1.3k stars) and Automate npm Release (jd-solanki/slidev-theme-dracula, 161 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
jmfederico (a GitHub user) maintains it in jmfederico/pi-web, which has 869 GitHub stars. The repository holds 7 skills in this directory. The repository was last updated on October 9, 2026.
Source: jmfederico/pi-web on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.