Skip to main content

StorageOps — S3-compatible object storage diagnostic toolkit. A Pi Coding Agent extension + skill pack.

Project description

StorageOps

StorageOps is a Pi Coding Agent extension and skill pack for diagnosing S3-compatible object storage problems.

It is designed for cases like AccessDenied, SlowDown, SignatureDoesNotMatch, checksum mismatches, stale reads, broken lifecycle rules, failed notifications, and migration surprises. You provide logs, errors, configs, or a short description; Pi loads the StorageOps skills and tools to produce an evidence-based diagnosis.

What You Get

  • 16 diagnostic skills covering security, protocol compatibility, CLI/SDK behavior, performance, network access, lifecycle cost, replication, mount/workspace usage, migration, data consistency, access logs, big-data pipelines, notifications, reporting, and triage, plus 1 eval skill pack.
  • 3 Pi extension tools:
    • scan_secrets redacts credentials and tokens.
    • detect_domain ranks likely diagnostic domains from evidence text.
    • search_memory searches prior Pi sessions for related diagnoses.
  • Deterministic helper scripts for access logs, policy analysis, throttling, ETags, small-object cost, migration estimates, SigV4 parsing, endpoint reachability, and golden-case eval.
  • A regression suite with 33 compact golden cases and size gates to keep the repository lean.

Quick Start

Prerequisites: Node.js 18+, Python 3.11+, and a model provider key.

# 1. Install Pi Coding Agent (the runtime engine)
#    storageops install does this automatically, but you can also install manually:
npm install -g @earendil-works/pi-coding-agent

# 2. Install StorageOps
pip install storageops
storageops install

# 3. Configure a model key (pick one)
export ANTHROPIC_API_KEY=sk-...
export DEEPSEEK_API_KEY=sk-...
export OPENAI_API_KEY=sk-...

# 4. Run a diagnosis
storageops --print 's5cmd sync reports 429 SlowDown; diagnose likely cause'

Ubuntu / Debian: If pip install storageops fails with "externally-managed-environment", use pip install storageops --break-system-packages or create a virtualenv first.

storageops install automatically installs Pi Coding Agent via npm if it is not already present. It warns (but does not auto-upgrade) when an older Pi version is detected, to avoid disrupting existing Pi configurations.

Configure a Model Key

Use any one of these patterns:

export DEEPSEEK_API_KEY=sk-...
export ANTHROPIC_API_KEY=sk-...
export OPENAI_API_KEY=sk-...

Or store a local key for the selected StorageOps/Pi agent directory:

echo sk-... > ~/.storageops/agent/api-key
chmod 600 ~/.storageops/agent/api-key

You can also pass Pi-native options through storageops, for example --provider, --model, --api-key, --print, --resume, or @file inputs.

Install Modes

Independent mode is the default:

storageops install

It writes:

~/.storageops/
├── agent/
│   ├── settings.json
│   ├── api-key
│   ├── extensions/storageops.ts
│   └── sessions/
└── skills/

Merge mode installs into an existing Pi setup:

storageops install --merge

It writes the extension to ~/.pi/agent/extensions/, skills to ~/.pi/skills/, and backs up settings.json before merging StorageOps settings.

Typical Workflows

Single-shot diagnosis:

storageops --print @rclone-debug.log 'Explain the checksum mismatch and safe next steps'

Interactive diagnosis:

storageops

Refresh an install after upgrade:

pip install --upgrade storageops
storageops install --force

Run quality gates from a checkout:

python3 scripts/skill_integrity_check.py
python3 skills/storageops-eval-golden-cases/scripts/golden_case_validator.py \
  skills/storageops-eval-golden-cases/cases
make validate

Documentation Map

Repository Note

The source tree keeps canonical skills at repository root and exposes them through storageops_cli/skills -> ../skills for packaging. The installer expects packaged skills to be available next to storageops_cli; review distribution changes carefully.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

storageops-0.4.14.tar.gz (234.7 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

storageops-0.4.14-py3-none-any.whl (337.0 kB view details)

Uploaded Python 3

File details

Details for the file storageops-0.4.14.tar.gz.

File metadata

  • Download URL: storageops-0.4.14.tar.gz
  • Upload date:
  • Size: 234.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for storageops-0.4.14.tar.gz
Algorithm Hash digest
SHA256 de10a54664eba281fe45f324533ecaa358151bd2eb17a872984368e32449d224
MD5 488fba36c1f23a618e26115b8f5f1893
BLAKE2b-256 b01d50d45a737da405b7b60104d10381fc2b6c9208b0151fb86ee663a336397b

See more details on using hashes here.

Provenance

The following attestation bundles were made for storageops-0.4.14.tar.gz:

Publisher: publish.yml on hxddh/storageops

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file storageops-0.4.14-py3-none-any.whl.

File metadata

  • Download URL: storageops-0.4.14-py3-none-any.whl
  • Upload date:
  • Size: 337.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for storageops-0.4.14-py3-none-any.whl
Algorithm Hash digest
SHA256 c24c51d95dceadbdfecb8e99d7fd92ba3151a3f974aa36888ef6899620eeec4a
MD5 677680af166b5f5c44cf98176fa6959e
BLAKE2b-256 4d0efbdf37eb5764662f982bee2a1f17fc47372578d3b6d2bd5ec0d7bbe008f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for storageops-0.4.14-py3-none-any.whl:

Publisher: publish.yml on hxddh/storageops

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page