GOWA is a Go server that exposes WhatsApp through a REST API and supports multiple accounts, webhooks, a user interface, MCP, and Chatwoot integration. It is for applications and automations that need to connect to and manage WhatsApp accounts programmatically. The catalogue entries provide skills and instructions for working with GOWA.
Borrowing it
Nothing to install: this file belongs to aldinokemal/go-whatsapp-web-multidevice. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/aldinokemal/go-whatsapp-web-multidevice/main/.agents/skills/new-release/SKILL.mdgit clone --depth 1 https://github.com/aldinokemal/go-whatsapp-web-multideviceWrote 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/aldinokemal/go-whatsapp-web-multidevice/new-release)<a href="https://agentmods.dev/skills/aldinokemal/go-whatsapp-web-multidevice/new-release"><img src="https://agentmods.dev/badge/skills/aldinokemal/go-whatsapp-web-multidevice/new-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/aldinokemal/go-whatsapp-web-multidevice/new-release"><img src="https://agentmods.dev/badge/skills/aldinokemal/go-whatsapp-web-multidevice/new-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.00053 | $0.01551 |
| Opus 5 | $0.00026 | $0.00776 |
| Sonnet 5 | $0.00011 | $0.00310 |
| Haiku 4.5 | $0.00005 | $0.00155 |
Grade A, and why
new-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 10d 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 — 57 lines — stays where its author put it; the contents beside it link to each section on GitHub.
New Release
Publish a stable release from a clean, current main checkout. After the sole affirmative confirmation, update only AppVersion, test, commit, push main, push the tag, and verify the GitHub release. Do not create release notes or run gh release create.
Argument contract
Accept exactly one argument: a stable version matching ^v[0-9]+\.[0-9]+\.[0-9]+$ (for example, $new-release v9.1.0). Reject missing, extra, malformed, whitespace-padded, or prerelease/build-metadata versions. On rejection, stop before preflight and require a new invocation in the literal form $new-release v9.1.0; do not request an action token or a bare version. Do not normalize input.
Safety rules
- Run every Git and GitHub command from the repository root returned by
git rev-parse --show-toplevel. - Never force, move, overwrite, reuse, or delete a branch, tag, or release.
- Make no mutation before the user replies exactly
yes. - After confirmation, edit only
src/config/settings.go; commit only that file. - Treat only the documented absence statuses as availability. Stop on every command, network, authentication, authorization, parsing, or API error.
Preflight
- Read fetch URLs with
git remote get-url --all originand push URLs withgit remote get-url --push --all origin. Require each command to succeed and return exactly one nonempty URL; call themfetch_urlandpush_url. Normalize each withgh repo view <url> --json nameWithOwner --jq .nameWithOwnerand require both to equalaldinokemal/go-whatsapp-web-multidevice. Requiregh auth statusto succeed. - Run
git fetch origin main --tags --prune. Require branchmain, emptygit status --porcelain=v1, andgit rev-parse HEADexactly equal togit rev-parse origin/main. Record that SHA asbase_shaand its subject. - In
src/config/settings.go, find exactly one declaration matching^\s*AppVersion\s*=. Extract its quoted value ascurrent_version. Require it to be a stable version and not equal the requested version. Do not edit it yet. - Check exact local ref
refs/tags/<version>withgit show-ref --verify --quiet. Continue only on expected absent exit status; stop if present or any other error. Check exact remote ref withgit ls-remote --exit-code --refs --tags <push_url> refs/tags/<version>; continue only on exit status2(absent), stop on0(present) or any other result. - Run
gh api -i repos/aldinokemal/go-whatsapp-web-multidevice/releases/tags/<version>. Continue only after an explicit HTTP404not-found response. Stop if a release is returned or any other API, network, authentication, authorization, or permission error occurs. - Run
go test ./...fromsrc/, require success, then return to the repository root. - Show exact repository, requested version, detected
current_version, fullbase_sha, and subject. Output this confirmation prompt verbatim, replacing only placeholders:Update AppVersion to <version>, commit, push main, and tag the release? [yes/no]
What ships with it
1 file 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.
- 10d ago First seen · 57 lines · 53 tokens per session scan A 178dfdf6659f
new-release is a skill published in the GitHub repository aldinokemal/go-whatsapp-web-multidevice (4,731 stars, last pushed today), licensed MIT. It adds 53 tokens to every session and 1,551 once invoked, about $0.0003 per session on Opus 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
vhs-e2e-gif
Record a test run, a TUI session, or any terminal command as a GIF with VHS and attach it to a GitHub PR as a release-hosted asset, never a repo commit. Use when asked to record an e2e run, demo a fix on a PR, attach a GIF or screen recording to a pull request, show a test passing visually, or produce a terminal…
check-linters-before-commit
Before any commit, run linters, vet, tests, and build verification; do not commit until checks pass.
pyo3-bindings
PyO3 conventions for exposing a Rust core to Python: pyclass/pymethods, PyErr/PyResult error mapping, GIL release, properties, maturin builds, and pytest. Load when generating or reviewing PyO3 Python bindings for a Rust library.
pixiv-cli-mcp-tool
Add or change a pixiv-cli MCP tool with full sync of registration, tests, localized MCP docs, README, and CHANGELOG.
gh-skill
Manage agent skills with gh skill. Use this skill to discover, preview, install, update, and publish Agent Skills so an agent can self-manage the skills available in its environment.
cw-gates
Use before claiming any Codewhale change is done, green, or ready to land: the focused-to-broad verification ladder, the budget checks CI enforces, and the rules for what counts as a passing test.