Skip to main content

ovh-claude

CI Python License Status

Let Claude Code manage OVHcloud resources safely — API credentials stay local and never enter the LLM context.

  • Credentials stay on your machine
  • Simple API calls via ovh-api
  • Claude Code skill installs in one command

Why this exists

When an AI agent (Claude Code, an autonomous SRE bot, a multi-agent pipeline) needs to act on cloud infrastructure, the naive solution is to give it your API keys — pasted into the prompt, exported as env vars, or baked into the agent's context. Any of these leaks the secret into the model's input.

ovh-claude solves this by installing a local CLI (ovh-api) that reads your OVHcloud credentials from ~/.config/ovh/credentials and returns only the JSON the agent needs. The agent calls the CLI; the credentials never appear in any prompt.

Quickstart

# 1. Install from PyPI (under 1 min)
pipx install ovh-claude

# 2. Register the Claude Code skill
ovh-claude install-skill

# 3. Verify everything works end-to-end (incl. live API call)
ovh-claude doctor

# 4. First real call
ovh-api GET /me

If doctor passes, you're done. Total: under 5 minutes including token creation.

Prerequisites

Install pipx

pipx lets you install Python CLI tools in isolated environments.

Platform Command
macOS (Homebrew) brew install pipx && pipx ensurepath
Debian / Ubuntu sudo apt install pipx && pipx ensurepath
Fedora sudo dnf install pipx && pipx ensurepath
Arch / Manjaro sudo pacman -S python-pipx && pipx ensurepath
Windows (Scoop) scoop install pipx && pipx ensurepath
Any platform (fallback) python -m pip install --user pipx && python -m pipx ensurepath

After install, open a new shell (or run source ~/.zshrc / source ~/.bashrc) so the PATH is refreshed.

Create the OVH credentials file

Create ~/.config/ovh/credentials (Windows: %USERPROFILE%\.config\ovh\credentials):

[default]
endpoint=ovh-eu
application_key=YOUR_APP_KEY
application_secret=YOUR_APP_SECRET
consumer_key=YOUR_CONSUMER_KEY

Generate tokens at https://api.ovh.com/createToken/ with the rights you need.

Platform support

Platform Status Notes
macOS ✅ Supported (tested) Tested with pipx
Linux ✅ Supported (tested via CI on Ubuntu) Verified on Python 3.10/3.11/3.12 in CI
WSL (Ubuntu/Debian) 🟢 Should work, not yet tested Recommended path for Claude Code on Windows
Windows (PowerShell native) ⚠️ Best-effort, untested Credentials path: %USERPROFILE%\.config\ovh\credentials. JSON body in PowerShell: use single-quote outside, double-quote inside, or read from file. PRs welcome.

Usage

ovh-api GET /vps
ovh-api GET /vps/vps-xxx.ovh.net
ovh-api POST /domain/zone/example.com/record '{"fieldType":"A","subDomain":"@","target":"1.2.3.4","ttl":300}'
ovh-api DELETE /domain/zone/example.com/record/12345

Claude Code skill

After ovh-claude install-skill, the skill ovh-api is registered in ~/.claude/skills/. Claude agents automatically use it for OVH-related tasks. The bundled skill enforces operational defaults: GET before POST/DELETE, human confirmation before destructive actions, no secrets in stdout.

Security model

What ovh-claude protects:

  • OVH credentials are read from ~/.config/ovh/credentials, never passed via CLI arguments (no --api-secret … flag → no shell history leak)
  • Credentials never appear on stdout (only the API JSON response is printed)
  • Errors go to stderr with sanitized messages (no secret values)
  • The agent's LLM context never sees credentials, only API responses

What ovh-claude does NOT protect:

  • The agent's decisions — if the agent decides to delete a record, ovh-api DELETE … will delete it. Keep a human in the loop for destructive actions (the bundled skill enforces this convention but cannot prevent a misuse-prompted call).
  • OVH-side authorization — if your consumer key has permission to drop a domain, the proxy will let the agent drop it.
  • Local file system access — anyone with read access to ~/.config/ovh/credentials can use the proxy.

Best practices:

  • Generate a separate consumer key per environment (dev / staging / prod) at https://api.ovh.com/createToken/
  • Scope each token to the minimum API rights needed (e.g. GET /vps/* only, no DELETE)
  • Set expiry on tokens, rotate periodically
  • Never commit the credentials file — ~/.config/ovh/credentials is outside any repo by design

Contributing

Issues and PRs welcome — especially platform validation for Linux, WSL, and Windows.

License

MIT

Metadata

Release files for ovh-claude 0.1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for ovh-claude 0.1.3
File Size Uploaded
ovh_claude-0.1.3.tar.gz 11.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ovh-claude 0.1.3
File Interpreter ABI Platform
ovh_claude-0.1.3-py3-none-any.whl Python 3 none any Details

Total release size: 19.8 kB

Release files / ovh_claude-0.1.3.tar.gz

Download URL ovh_claude-0.1.3.tar.gz
Size 11.5 kB
Tags Source
SHA-256 checksum
How to use checksums
27702da91da0c840fd010ea5b988f4218a84e007bee51b3db8565a6035620cb0
BLAKE2b-256 checksum
How to use checksums
fe514c6b7d5a24cd8cab44918e072c6253eca8dc65e6ea95a172c6f0d1dd06f1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 15, 2026.

Transparency log

Release files / ovh_claude-0.1.3-py3-none-any.whl

Download URL ovh_claude-0.1.3-py3-none-any.whl
Size 8.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0e5012468d440ce2075fb2f60069d85666bf244280129b973a1ca1ffa81c5324
BLAKE2b-256 checksum
How to use checksums
495b6ed691489d2860fa9b487275565165730b9285240478d74fcebd43793311
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on May 15, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.3 This release

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page