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 bendrucker/claude --skill attachgit clone --depth 1 https://github.com/bendrucker/claudeWrote 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/bendrucker/claude/attach)<a href="https://agentmods.dev/skills/bendrucker/claude/attach"><img src="https://agentmods.dev/badge/skills/bendrucker/claude/attach/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/bendrucker/claude/attach"><img src="https://agentmods.dev/badge/skills/bendrucker/claude/attach.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.00045 | $0.01026 |
| Opus 5.5 | $0.00018 | $0.00410 |
| Sonnet 5.5 | $0.00009 | $0.00205 |
| Haiku 4.5 | $0.00005 | $0.00103 |
Grade A, and why
github:attach 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 — 76 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Attachments
Images and video in issues and pull requests are served from a user-attachments store. gh 2.99.0 added a repeatable --attach flag that uploads to it from gh issue create, gh issue edit, gh issue comment, gh pr create, gh pr edit, and gh pr comment. Everything else uploads through the endpoint the flag wraps: review comments and pending reviews, discussions, releases, gists, and any gh older than 2.99.0. Both paths exist on GitHub.com and Enterprise Cloud only. Enterprise Server has no attachment store.
--attach on this build: !gh issue comment --help 2>/dev/null | grep -q -- '--attach' && echo present || echo absent
Absent means this gh predates 2.99.0. Upgrade it or use the endpoint.
The Flag
Write the body with the local path in the markdown, then name each file on the command. gh uploads it and rewrites the reference in place. The image lands where the prose put it. The alt text written in the body wins.
gh pr create --title "..." --body-file tmp/pr-body.md --attach ./picker.png --attach ./walkthrough.mp4
- A path is absolute or relative to the directory
ghruns in. - A file the body never references is appended to the end, in flag order, with the filename as alt text. Alt text follows the path after
#:--attach './picker.png#The wide layout'. gh pr editandgh issue editwithout a body flag keep the existing body and append.- Up to 50 files per command.
- When some uploads fail, the issue, pull request, or comment still lands with the ones that succeeded. Its URL prints, and the exit status is non-zero. Read the output before retrying. A blind retry duplicates the assets that already uploaded.
- The token needs write access to the repository.
The Endpoint
POST https://uploads.github.com/user-attachments/assets has no REST route and no documentation. gh api reaches it by full URL instead. A data-residency Enterprise Cloud tenant has its own upload host in place of uploads.github.com. repository_id takes the numeric REST id. gh repo view --json id returns the GraphQL node id, which fails here.
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 Changed · +3 lines · -27 tokens per session cabecf83e5c0
- 1mo ago First seen · 73 lines · 72 tokens per session scan A 73d8d5cc1a8e
github:attach is a skill published in the GitHub repository bendrucker/claude (18 stars, last pushed today), licensed MIT. It adds 45 tokens to every session and 1,026 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
update-pr
Update an existing pull request with new changes. Use when the user wants to update a PR, push follow-up changes to a PR, refresh a PR description, or sync a PR with latest commits. Triggers on: update pr, update-pr, update the pr, push to pr, refresh pr, sync pr, update pull request.
update
Safe cc10x upgrade through the Claude Code plugin CLI. Lists every installed scope, refreshes the marketplace, updates each scope, and optionally carries local patches over to the new install. Use this skill when: updating cc10x, upgrading, pulling latest cc10x, syncing plugin, refreshing cache, or checking for new…
smart-rebase
Smart partial rebase for squash-merge repositories. Auto-detect which commits to keep/drop when base branch was squash-merged into target. Use when: user says 'rebase', 'partial rebase', 'base already merged', 'smart rebase', or /smart-rebase. Not for: simple git rebase (the developer runs it — no skill executes…
resolving-merge-conflicts
Use when a git merge or rebase reports conflicts and the operation is in progress.
next-step
Change-aware next step advisor. Use when: user asks what to do next, workflow progression is unclear, session just started with dirty worktree. Not for: executing the suggested command (user decides), auto-loop decisions (hooks handle that). Output: findings-based suggestions or session summary with commit seed.
pr-comment
Post friendly review comments to a GitHub PR — prepare locally, preview, then submit as atomic review. Use when: posting code review comments, giving PR feedback, sending inline suggestions. Not for: reading existing reviews (use load-pr-review), creating PRs (use create-pr), PR status (use pr-summary).