Installation¶
The base runvault package is small. LLM provider and framework support are opt-in via pip extras, so your environment never grows beyond what you actually use.
Requirements¶
- Python 3.9 or newer (tested on 3.9 – 3.13).
- A RunVault project API key (
rv_live_…) issued from your dashboard. - (Recommended for production)
RV_CA_PUBLIC_KEYenvironment variable set to your deployment's RunVault CA public key. When present, the SDK verifies the CA signature on every certificate it receives.
The production backend URL (https://api.runvault.to) is baked into the SDK — no configuration required for normal use.
Install the SDK¶
Core only — enough to call the proxy from raw httpx:
pip install runvault
Add the extras that match your stack:
pip install "runvault[langchain-openai]" # LangChain ChatOpenAI
pip install "runvault[langchain-anthropic]" # LangChain ChatAnthropic
pip install "runvault[langchain-google]" # LangChain ChatGoogleGenerativeAI
pip install "runvault[langgraph]" # LangGraph runtime
pip install "runvault[crewai]" # CrewAI BaseLLM subclass
pip install "runvault[openai]" # bare openai SDK
pip install "runvault[anthropic]" # bare anthropic SDK
pip install "runvault[all]" # everything above
Multiple extras can be combined in one install:
pip install "runvault[langgraph,langchain-openai]"
Verify the install¶
python -c "from runvault import RunVault; print(RunVault)"
Expected output:
<class 'runvault.client.RunVault'>
Environment variables¶
The SDK reads RUNVAULT_BE_URL automatically when no be_url argument is passed. All other variables are conventions — you pass the value to RunVault(...) explicitly.
| Variable | Required | Purpose |
|---|---|---|
RUNVAULT_API_KEY |
recommended | Your project API key (rv_live_…). Pass to RunVault(api_key=…). |
RUNVAULT_BE_URL |
no | Override the baked-in production backend URL. Read automatically when set; useful for staging or self-hosted deployments. |
RV_CA_PUBLIC_KEY |
recommended in production | Base64-encoded Ed25519 RunVault CA public key. When set, the SDK verifies every certificate's CA signature. Absent ⇒ the SDK logs a warning and proceeds. |
import os
from runvault import RunVault
rv = RunVault(api_key=os.environ["RUNVAULT_API_KEY"])
Construct a RunVault client¶
Construction performs no I/O — credentials are stored and an internal HTTP client is built. The first network call happens on rv.register_agent(...).
from runvault import RunVault
rv = RunVault(
api_key="rv_live_...",
timeout=10, # optional, seconds — applies to connect / write / pool
)
The read timeout is intentionally unbounded so legitimate slow responses are never classified as a timeout.
Next¶
Continue to the Quickstart to register an agent and route your first LLM call through the proxy.