Claude Skill B2 Cloud Storage — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited Claude Skill B2 Cloud Storage (Plugin) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
A Claude Code skill for managing Backblaze B2 cloud storage directly from your terminal — list files, audit buckets, clean up stale data, and review security posture.
Built on the open Agent Skills specification. Compatible with Claude Code, Codex CLI, Cursor, Gemini CLI, and other skills-compatible agents.
<details> <summary>What each badge means</summary>
| Badge | Meaning |
|---|---|
| CI | GitHub Actions runs lint, tests, frontmatter validation, and pre-commit on every PR across Python 3.10–3.14. |
| License: MIT | Permissive open-source license — free to fork, modify, and ship. |
| Python 3.10–3.14 | Tested on every currently-supported CPython version. Python 3.9 reached EOL in October 2025 and is no longer in the matrix. |
| Ruff | Linted and formatted with Astral's Ruff. Enforced via pre-commit. |
| Checked with mypy | Static type-checked. The audit script's public surface and the B2 JSON inputs are fully annotated. |
| pre-commit | Hooks for whitespace, JSON/YAML validity, ruff, markdownlint, yamllint, cspell, and mypy run on every commit. |
| Spell-checked: cspell | Markdown and Python prose are spell-checked with a project-specific allowlist. |
| Claude Code | First-class compatibility with Claude Code — auto-invoked when you mention B2 in chat. |
| Agent Skills | Conforms to the open Agent Skills SKILL.md specification — works in any compatible agent (Codex CLI, Cursor, Gemini CLI, etc.). |
| Backblaze B2 | Targets the Backblaze B2 Cloud Storage platform via the official b2 CLI v4+. |
| GitHub stars | Community signal — give it a ⭐ if it's useful. |
</details>
contentSha1 (true duplicates, not same-name)--stale-days and --large-mb thresholds--json flag for downstream analysisPick whichever fits your tooling. All methods install the same skill folder; only the delivery differs.
npx skills add — open spec CLI (recommended cross-agent)Works with any Agent Skills-compatible client (Claude Code, Codex CLI, Cursor, Gemini CLI, Goose, OpenCode, etc.).
npx skills add backblaze-labs/claude-skill-b2-cloud-storage -g # global
npx skills add backblaze-labs/claude-skill-b2-cloud-storage # current project onlyThe -g flag installs system-wide (~/.claude/skills/ for Claude Code). Without it, the skill is scoped to the current project.
Inside Claude Code:
/plugin marketplace add backblaze-labs/claude-skill-b2-cloud-storage
/plugin install b2-cloud-storageThis reads the .claude-plugin/marketplace.json in the repo and installs the skill plus any future plugins shipped from the same source.
Latest (always points at the most recent release):
curl -L https://github.com/backblaze-labs/claude-skill-b2-cloud-storage/releases/latest/download/b2-cloud-storage.tar.gz \
| tar xz -C ~/.claude/skills/Pinned to a specific version (deterministic deploys, air-gapped environments):
# Substitute the tag you want — see https://github.com/backblaze-labs/claude-skill-b2-cloud-storage/releases
TAG=vX.Y.Z
curl -L "https://github.com/backblaze-labs/claude-skill-b2-cloud-storage/releases/download/${TAG}/b2-cloud-storage-${TAG}.tar.gz" \
| tar xz -C ~/.claude/skills/Each release ships four artifacts: an unversioned b2-cloud-storage.tar.gz / .zip (used by the latest URL) and a -<tag> versioned pair for pinning.
When you want to edit the skill in place or test changes locally:
git clone https://github.com/backblaze-labs/claude-skill-b2-cloud-storage.git /tmp/b2-skill \
&& cp -r /tmp/b2-skill/b2-cloud-storage ~/.claude/skills/b2-cloud-storage \
&& rm -rf /tmp/b2-skillOr, if you've already cloned the repo, from the repo root:
cp -r b2-cloud-storage ~/.claude/skills/b2-cloud-storageOnce the skill is listed on the respective directory:
npx @skill-hub/cli install b2-cloud-storage # SkillHub
lhm install b2-cloud-storage # LobeHub (lobehub-cli)See RELEASE.md for the full list of directories and their listing status.
ls ~/.claude/skills/b2-cloud-storage/SKILL.mdThen in Claude Code, restart the session and try > audit my-bucket for stale files — the skill is auto-invoked when you mention B2 in natural language.
The skill is auto-invoked when you mention B2 in natural language, or you can call it explicitly with /b2-cloud-storage:
> help me set up B2
> list everything in my-bucket
> audit my-bucket for stale files, duplicates, and unfinished uploads
> clean up files older than 90 days in my-bucket/logs
> run a security review on my public bucketsThe audit script can also be run directly:
python ~/.claude/skills/b2-cloud-storage/scripts/storage_audit.py <bucket>
python ~/.claude/skills/b2-cloud-storage/scripts/storage_audit.py <bucket> --json
python ~/.claude/skills/b2-cloud-storage/scripts/storage_audit.py <bucket> \
--stale-days 180 --large-mb 500 --prefix-depth 2Note: You may need to restart Claude Code after installing the skill for it to be recognized.
The skill handles setup automatically on first use:
pip install b2)listBuckets, listFiles, readFiles for read-only)keyID and applicationKeyb2 account authorize interactively (keys stay in your terminal, never in chat)b2 lsCredentials are stored by the B2 CLI in ~/.b2_account_info. The skill never sees or stores your keys.
Different projects can use different B2 buckets and credentials. On first use in a project, the skill asks which bucket to use and saves a config file at .claude/b2-config.json in your project root:
{
"bucket": "my-project-bucket",
"prefix": "",
"accountInfoPath": "~/.b2_account_info"
}| Field | Purpose |
|---|---|
bucket | Default bucket for this project |
prefix | Scope all operations to a prefix (e.g. data/models/) |
accountInfoPath | Path to B2 credential file — use different keys per project |
To use separate credentials per project, authorize into a project-specific file:
B2_ACCOUNT_INFO=~/.b2_account_info_myproject b2 account authorizeThen set accountInfoPath to ~/.b2_account_info_myproject in your project's config.
An example config file is included at b2-cloud-storage/b2-config.example.json.
Note: This config file stores bucket names and file paths only — never API keys or secrets. Add .claude/b2-config.json to your .gitignore.
b2 account get and b2 key * commands are blocked (credential exposure)--dry-run preview + explicit "yes" confirmationallPublic) require warning + confirmationclaude-skill-b2-cloud-storage/
├── README.md
├── .github/workflows/ci.yml # Lint + tests + frontmatter validation
├── tests/ # Unit tests for the audit script
└── b2-cloud-storage/ # Copy this folder to ~/.claude/skills/
├── SKILL.md # Skill definition and instructions
├── b2-config.example.json # Example per-project config
├── scripts/
│ └── storage_audit.py # Audit: usage, versions, unfinished, cost
└── references/
├── setup.md # First-use setup walk-through
├── cleanup-playbook.md # Safe deletion procedure
├── security-review.md # Per-bucket security checklist
└── b2-cli-reference.md # B2 CLI v4 command referenceMIT
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.