---
name: b2
description: >-
  Manage Arizona Computer Guru's (ACG) Backblaze B2 storage account via the B2
  Native API v3. Talks to the LIVE production B2 account (accountId 46f69bc61163,
  region us-west-001) that holds the per-client MSP360/CloudBerry backup
  destinations. List buckets and application keys, list files / file versions,
  compute per-bucket stored size, and produce the headline storage-cost report
  (the mspbackups storage-cost calc). Provision buckets and scoped backup keys
  and delete buckets/keys (all destructive ops are gated behind --confirm).
  Read-only by default. Invoke for: "backblaze", "b2", "b2 storage", "bucket",
  "storage cost", "backup storage", "mspbackups storage", "list buckets b2".
---

**Grok skill.** This maps to the shared skill in `.claude/skills/b2/SKILL.md`.

Read `.claude/skills/b2/SKILL.md` (first use GrepAI via `search_tool` + `use_tool` (grepai__grepai_search etc.) for semantic context lookup per the GrepAI-first rule in CLAUDE.md, .grok/README.md, and .grok/skills/context/SKILL.md; only fall back to `read_file` if full verbatim content is needed for editing/review) and follow it exactly, adapting for Grok's tools:

- Use `run_terminal_command` (with Git Bash mapping via .grok/skills/windows-bash/SKILL.md or full "C:\\Program Files\\Git\\bin\\bash.exe" + PATH export as per harness and .grok/hooks/) to run the Python CLI in `.claude/skills/b2/scripts/b2.py` (use `py` per identity.json, with CLAUDETOOLS_ROOT or derived from identity).
- Use `spawn_subagent` for any delegation.
- For searches/context: always prefer `search_tool` + `use_tool` for MCP tools (grepai__* primary for code/wiki/session logs).
- Destructive subcommands remain gated behind `--confirm` exactly as in the source.
- Obey CLAUDE.md (Grok loads it as always-in project rules), .grok/README.md, use GrepAI-first before any direct file tools.

The full details — running the CLI, credentials (always via vault.sh or 1password skill, never hardcoded), cache model, safety gating, common commands (status, buckets, files, usage/cost, create/delete with --confirm), prefix purge/lifecycle mechanism, storage cost calc ($0.00695/GB decimal, mspbackups), account structure (12 buckets, keys), and references — are in the source `.claude/skills/b2/SKILL.md` (and its scripts/ and references/).

Invoke via the documented commands (e.g. py .../b2.py status, $B2 usage --json, gated deletes/purges), using the Grok terminal tool. The skill talks to the live B2 account — treat writes conservatively.

**For MSP backups machine removal (e.g. "remove SBS from mspbackups" for glaztech):**
- First, context load via GrepAI + .grok/skills/context/SKILL.md (wiki/clients/glaztech.md, clients/glaztech/, RMM mspbackups, .claude/memory/ mspbackups refs, account structure in source).
- List buckets/keys/files for the machine (often per-client MSP360 prefix like MBS-<guid>/CBB_SBS/ or in MSPBackups20200311 / ACG-GLAZTECH).
- Use gated delete-key (for the machine's backup key), delete-prefix (for the SBS/ machine prefix to schedule lifecycle purge), or delete-bucket if decommissioning the whole destination --confirm.
- Follow prefix purge/lifecycle exactly (dry-run without --confirm, commit with, wait ~24-48h for B2 lifecycle, verify with bucket-size, cleanup rule with lifecycle-remove).
- Update client docs, session log, memory as needed after.

See also: .grok/skills/1password/SKILL.md for secrets if needed, the mspbackups context in memory/wiki, .grok/agents/backup.md , .grok/skills/context/SKILL.md (has explicit MSP + glaztech + SBS example).
