llm-hubris
LLM plugin for models hosted by Hubris — an OpenAI-compatible LLM gateway billed in Russian rubles, with 400+ models (OpenAI, Anthropic, Google, DeepSeek, Qwen and more) behind a single API key.
Installation
First, install the LLM command-line utility.
Now install this plugin in the same environment as LLM.
llm install llm-hubris
Configuration
You will need an API key from Hubris. Create one at hubris.pw/keys.
You can set that as an environment variable called HUBRIS_API_KEY, or add it to the llm set of saved keys using:
llm keys set hubris
Enter key: <paste key here>
Usage
The plugin registers every chat model from your Hubris catalog. To list them, run:
llm models list
You should see a list that looks something like this:
Hubris: hubris/anthropic/claude-sonnet-5
Hubris: hubris/openai/gpt-5.6-luna
Hubris: hubris/google/gemini-3.7-flash
Hubris: hubris/deepseek/deepseek-v4-flash-0731
...
Model IDs always use the full vendor/model form shown in the Hubris catalog — there is no alias resolution on the gateway side.
The list is cached for an hour. Force a refresh with:
llm hubris refresh
To run a prompt against a model, pass its full model ID to the -m option:
llm -m hubris/anthropic/claude-sonnet-5 "Five spooky names for a pet tarantula"
You can set a shorter alias for a model using the llm aliases command:
llm aliases set sonnet hubris/anthropic/claude-sonnet-5
Now you can prompt it with:
cat llm_hubris.py | llm -m sonnet -s 'write some pytest tests for this'
Images are supported by vision models:
llm -m hubris/anthropic/claude-sonnet-5 'describe this image' -a https://static.simonwillison.net/static/2024/pelicans.jpg
Reasoning models accept the reasoning_effort option:
llm -m hubris/openai/gpt-5.6-luna -o reasoning_effort high 'Plan a three-day trip to Kazan'
Listing models with prices
llm hubris models
Outputs every chat model with its context window and RUB prices per million tokens. Add --json for the raw catalog entries.
Development
To set up this plugin locally, first checkout the code. Then create a new virtual environment:
cd llm-hubris
python -m venv venv
source venv/bin/activate
Now install the dependencies and test dependencies:
pip install -e '.[test]'
To run the tests:
pytest
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file llm_hubris-0.1.1.tar.gz.
File metadata
- Download URL: llm_hubris-0.1.1.tar.gz
- Upload date:
- Size: 6.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6586bc1f073038f78bc03ac03be2fd635b4cac5d33dbb4dabee55874ca46945c
|
|
| MD5 |
06d72f4fe69d22984bca1f270f57fe22
|
|
| BLAKE2b-256 |
971815791396efd9889d542f54cea49644571de831cbaf81bc95702719202c87
|
Provenance
The following attestation bundles were made for llm_hubris-0.1.1.tar.gz:
Publisher:
publish.yml on Aimagine-life/llm-hubris
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_hubris-0.1.1.tar.gz -
Subject digest:
6586bc1f073038f78bc03ac03be2fd635b4cac5d33dbb4dabee55874ca46945c - Sigstore transparency entry: 2726632525
- Sigstore integration time:
-
Permalink:
Aimagine-life/llm-hubris@61470ede719ee8a3643a02d7f7827ee7a1974d3c -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Aimagine-life
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@61470ede719ee8a3643a02d7f7827ee7a1974d3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file llm_hubris-0.1.1-py3-none-any.whl.
File metadata
- Download URL: llm_hubris-0.1.1-py3-none-any.whl
- Upload date:
- Size: 5.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d3bf25c39124b094afb7576ae739166e32cd1fe1be5c15d65f3981c53ff1d063
|
|
| MD5 |
a27c00126c8503f56ae2356109b184e6
|
|
| BLAKE2b-256 |
2272e2676c9838b0f554b153dcc5f07c0268f03d438a3d81120c039271684bc4
|
Provenance
The following attestation bundles were made for llm_hubris-0.1.1-py3-none-any.whl:
Publisher:
publish.yml on Aimagine-life/llm-hubris
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
llm_hubris-0.1.1-py3-none-any.whl -
Subject digest:
d3bf25c39124b094afb7576ae739166e32cd1fe1be5c15d65f3981c53ff1d063 - Sigstore transparency entry: 2726632645
- Sigstore integration time:
-
Permalink:
Aimagine-life/llm-hubris@61470ede719ee8a3643a02d7f7827ee7a1974d3c -
Branch / Tag:
refs/tags/v0.1.1 - Owner: https://github.com/Aimagine-life
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
publish.yml@61470ede719ee8a3643a02d7f7827ee7a1974d3c -
Trigger Event:
push
-
Statement type: