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 agentmods add skills/forgeyclap/claude-forge/forge-botsnpx skills add ForgeyClap/claude-forge --skill forge-botsgit clone --depth 1 https://github.com/ForgeyClap/claude-forgeWrote 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/forgeyclap/claude-forge/forge-bots)<a href="https://agentmods.dev/skills/forgeyclap/claude-forge/forge-bots"><img src="https://agentmods.dev/badge/skills/forgeyclap/claude-forge/forge-bots.svg" alt="Measured on agentmods" height="20"></a>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 | $0.00041 | $0.01634 |
| Opus 5 | $0.00020 | $0.00817 |
| Sonnet 5 | $0.00008 | $0.00327 |
| Haiku 4.5 | $0.00004 | $0.00163 |
Grade A, and why
forge-bots 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 3d 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 — 47 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Forge playbook — Chat / messaging bots (Discord · Slack · Telegram)
A bot is an inbound-webhook + auth + secrets domain — it lives at the intersection of forge-integration (OAuth, secret hygiene, webhook auth, reader-side capability-split for untrusted inbound content) and event-driven delivery. Lead the auth/secret backbone through forge-integration; this file adds the platform-specific verification, ack, and anti-spam rules. Each platform has a different verification mechanism — never assume one algorithm carries to another. Never claim a bot is "live"/"verified" unless a signed event was actually accepted and a forged one rejected.
Hard rules (non-negotiable)
- Verify every inbound event — per platform, on the raw body, before acting.
- Discord (Interactions endpoint): verify the Ed25519 signature from
X-Signature-Ed25519+X-Signature-Timestampagainst the raw body using your app's public key; reply to thePING(type 1) withPONG. Discord rejects an endpoint that fails this — verification is not optional. - Slack: verify
X-Slack-Signature(HMAC-SHA256 overv0:{timestamp}:{raw_body}) with the signing secret, and reject requests whose timestamp is older than ~5 minutes (replay window). Answer theurl_verificationchallenge. - Telegram: Telegram does not sign payloads — set a
secret_tokenonsetWebhookand verify theX-Telegram-Bot-Api-Secret-Tokenheader on every update (and/or a hard-to-guess webhook path). Treat an unverified update as hostile.
- Discord (Interactions endpoint): verify the Ed25519 signature from
- Fast ack, background work. Ack inside the platform deadline (Slack ~3s, Discord interactions ~3s — use a deferred response for longer work) and do heavy processing in a background/idempotent path. A slow handler drops events and gets your endpoint disabled.
- Idempotent handling — dedupe on the platform id. Redelivered events are normal. Dedupe on
interaction.id(Discord) /event_id(Slack) /update_id(Telegram) with a uniqueness guarantee so a retry never double-acts. - Minimal scopes / intents / permissions. Request only what the bot uses: Slack minimal bot-token scopes (no broad
admin/user scopes); Discord minimal permission integer and no privileged intents (MESSAGE_CONTENT,GUILD_MEMBERS,PRESENCE) unless truly needed and owner-approved; Telegram narrowallowed_updates. - Retries + dead-letter on the send side. Outbound API calls respect rate limits (honor 429 +
Retry-Afteron Discord/Telegram; Slack tiered limits), retry with bounded backoff, and route permanent failures to a dead-letter store — never a silent drop (dropped deliveries look like clean success). - Safe logging — no token/PII leak. Never log the bot token, signing/secret token, or user PII/message content beyond what the task needs. Redact secrets in errors. Secrets live in env +
.env.exampleplaceholders, never in code, logs, or git. - Outreach drafted only. No unsolicited DMs, mass-mentions, or channel broadcasts without explicit owner approval — anti-spam is a platform ToS gate, not a nicety (shared with
forge-integration/forge-scraping).
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.
- 3d ago First seen · 47 lines · 41 tokens per session scan A e95582b927c9
forge-bots is a skill published in the GitHub repository ForgeyClap/claude-forge (2 stars, last pushed 1mo ago), licensed MIT. It adds 41 tokens to every session and 1,634 once invoked, about $0.0002 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-31.
Other skills, from other repositories
loop
Create a loop that runs a prompt now and follows up either on a fixed schedule or through self-paced wakeups. Usage - /loop check the build, /loop 5m check the build, /loop check the PR every 30m. /loop list to show jobs, /loop clear to cancel all.
discord
Use when you need to control Discord from Otto via the discord tool: send messages, react, post or upload stickers, upload emojis, run polls, manage threads/pins/search, create/edit/delete channels and categories, fetch permissions or member/role/channel info, set bot presence/activity, or handle moderation actions in…
tmux
Remote-control tmux sessions for interactive CLIs by sending keystrokes, capturing pane output, and managing terminal multiplexer windows. Enables parallel coding-agent orchestration, background process management, and REPL interaction via sockets. Use when the agent needs to launch, monitor, or coordinate…
things-mac
Manage Things 3 via the things CLI on macOS (add/update projects+todos via URL scheme; read/search/list from the local Things database). Use when a user asks Otto to add a task to Things, list inbox/today/upcoming, search tasks, or inspect projects/areas/tags.
apple-reminders
Manage Apple Reminders via the remindctl CLI on macOS (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output. Use when the user asks about reminders, todos, tasks, to-do lists, "remind me", scheduling tasks, checking what is due today, completing or deleting reminders, or managing…
apple-notes
Manage Apple Notes via the memo CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Otto to add a note, list notes, search notes, or manage note folders.