Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add alchemiststudiosDOTai/tunacode --skill pypi-releasegit clone --depth 1 https://github.com/alchemiststudiosDOTai/tunacodeWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/alchemiststudiosdotai/tunacode/pypi-release)<a href="https://agentmods.dev/skills/alchemiststudiosdotai/tunacode/pypi-release"><img src="https://agentmods.dev/badge/skills/alchemiststudiosdotai/tunacode/pypi-release/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/alchemiststudiosdotai/tunacode/pypi-release"><img src="https://agentmods.dev/badge/skills/alchemiststudiosdotai/tunacode/pypi-release.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00052 | $0.02230 |
| Opus 5.5 | $0.00021 | $0.00892 |
| Sonnet 5.5 | $0.00010 | $0.00446 |
| Haiku 4.5 | $0.00005 | $0.00223 |
Grade A, and why
pypi-release scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 1mo ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 320 lines — stays where its author put it; the contents beside it link to each section on GitHub.
PyPI Release Automation
Overview
Keep the existing local release gates for tunacode-cli, then hand the actual PyPI upload to GitHub Actions. This keeps the release checks local while moving the credentialed publish step into the repository workflow.
When to Use This Skill
Trigger this skill when the user requests:
- "Release to PyPI"
- "Publish a new version"
- "Create a release"
- "Bump version and release"
- "Push a new version to PyPI"
Core Release Workflow
The skill provides two approaches: Manual (REQUIRED) and Automated (deprecated - skips critical test step).
Automated Release (NOT RECOMMENDED - Use Manual)
WARNING: The automated script is currently discouraged because it skips the mandatory manual test step.
Use the Manual Release workflow below instead to ensure proper testing before release.
Execute the full release workflow with a single script:
~~```bash uv run python skills/pypi-release/scripts/release.py
~~The script performs these steps automatically:~~
1. ~~Pre-flight checks (git status, branch check, linting, tests)~~
2. ~~Version bump~~
3. ~~Git operations (commit, tag, push)~~
4. ~~GitHub release~~
5. ~~Workflow monitoring~~
**Issue:** The automated script does not include the mandatory manual import test (Step 3) which has caused multiple broken releases. Always use the manual workflow.
### Manual Release (REQUIRED - Step-by-Step)
**This is the ONLY recommended workflow. Follow these steps in order:**
#### Step 1: Pre-flight Checks
Verify the repository is ready for release:
```bash
# Check git status (must be clean)
git status
# Verify on master branch
git branch --show-current
# Run linting
ruff check .
# Run tests
source .venv/bin/activate && pytest tests/ -q
# MANDATORY: Run tmux E2E tool tests (all 6 must pass)
uv run pytest tests/system/cli/test_tmux_tools.py -v -m tmux
HARD GATE: If the tmux tool tests fail, DO NOT proceed with the release. These tests verify all 6 tools (bash, read_file, write_file, update_file, discover, web_fetch) work end-to-end in the real TUI. No exceptions.
Step 2: Bump Version
Use the version bumping script:
uv run python skills/pypi-release/scripts/bump_version.py
The script:
- Reads current version from
pyproject.toml - Increments the patch number (rightmost digit)
- Updates four files:
pyproject.toml:8(project version)pyproject.toml:175(hatch script version)src/tunacode/constants.py:12(APP_VERSION constant)README.md(version header)
Step 2.5: Update CHANGELOG
REQUIRED: Manually update CHANGELOG.md with the new version entry.
-
Check commits since last release:
git log --oneline $(git describe --tags --abbrev=0)..HEAD --no-merges -
Add entry under
## [Unreleased]:## [X.Y.Z.W] - YYYY-MM-DD
What ships with it
5 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 1mo ago First seen · 320 lines · 52 tokens per session scan A 47940f5fd56f
pypi-release is a skill published in the GitHub repository alchemiststudiosDOTai/tunacode (125 stars, last pushed 16d ago), licensed MIT. It adds 52 tokens to every session and 2,230 once invoked, about $0.0002 per session on Opus 5.5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
jupyter-live-kernel
Iterative Python via live Jupyter kernel (hamelnb).
github-repo-management
Clone/create/fork repos; manage remotes, releases.
biopython
Comprehensive molecular biology toolkit. Use for sequence manipulation, file parsing (FASTA/GenBank/PDB), phylogenetics, and programmatic NCBI/PubMed access (Bio.Entrez). Best for batch processing, custom bioinformatics pipelines, BLAST automation. For quick lookups use gget; for multi-service integration use…
python-format
Formats Python files with ruff format and reports which files changed.
plugin-system
Generic plugin system for Python applications. Auto-discovery, validation, fault tolerance. Zero dependencies (Python stdlib only).
diffctx
Use when reviewing or explaining a commit, PR, branch or uncommitted diff — "review my last commit", "review before merge", "review my changes", "what else does this change affect" — the callers and tests the change reaches outside its diff, then the surrounding code.