llm-obscurify
LLM plugin for Obscurify.ai, a private AI service with an OpenAI-compatible API and 200+ models.
Obscurify.ai doesn't store prompts or responses, scrambles identities before requests reach model providers, and sends text requests only over zero-data-retention routes. Accounts are a random account number: no email, username or phone.
Installation
llm install llm-obscurify
Configuration
- Create an account at obscurify.ai and add a balance. The API works on every plan with a positive balance. New accounts get $1 of starter credit (limits apply; see https://obscurify.ai/pricing).
- Open https://obscurify.ai/account and click Show API Key. Keys look like
sk-obs1_.... - Give the key to LLM:
llm keys set obscurify
# Paste key here
Or set the OBSCURIFY_API_KEY environment variable.
Models show up in llm models once a key is set.
Usage
llm -m obscurify/deepseek/deepseek-v4-flash "Five names for a privacy-minded pet hedgehog"
Chat:
llm chat -m obscurify/meta-llama/llama-3.3-70b-instruct
Set a default:
llm models default obscurify/deepseek/deepseek-v4-flash
Reasoning
Every model accepts the reasoning_effort option (none, minimal, low, medium, high, xhigh, max; which levels a model honours depends on the model). Reasoning text is shown as it streams; hide it with -R.
llm -m obscurify/z-ai/glm-5.3-flash -o reasoning_effort low "Is 221 prime?"
Tools and schemas
Models that support tool calling work with --tool/--functions and --schema:
llm -m obscurify/deepseek/deepseek-v4-flash --functions '
def multiply(x: int, y: int) -> int:
"""Multiply two numbers."""
return x * y
' "What is 34234 * 213345?" --td
llm -m obscurify/deepseek/deepseek-v4-flash --schema 'name, age int, bio' "Invent a dog"
Python
import llm
model = llm.get_model("obscurify/deepseek/deepseek-v4-flash")
print(model.prompt("Write a haiku about privacy.").text())
Models
List the models, with context length, tool support and price per million tokens:
llm obscurify models
llm obscurify models -q qwen # filter
llm obscurify models --json
The list is cached for an hour. Refresh it with llm obscurify refresh. Frontier models need the Casual plan and uncensored models need Pro; per-model prices are at https://obscurify.ai/model_cards.
Development
git clone https://github.com/Obscurify-ai/llm-obscurify
cd llm-obscurify
uv run --group test pytest # live tests, needs OBSCURIFY_API_KEY
Links
- API docs: https://obscurify.ai/api-docs
- Privacy policy: https://obscurify.ai/privacy
- Contact: https://obscurify.ai/contact
MIT licensed.
Metadata
Release files for llm-obscurify 0.1.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | |
|---|---|---|---|---|
| llm_obscurify-0.1.0.tar.gz | 7.8 kB | With provenance | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| llm_obscurify-0.1.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 14.8 kB
Release files / llm_obscurify-0.1.0.tar.gz
| Download URL | llm_obscurify-0.1.0.tar.gz |
|---|---|
| Size | 7.8 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ac233f00769ee4029209b8a94555c437c294c16e687a6541d03bc28cdaa184ee
|
|
BLAKE2b-256 checksum How to use checksums |
e16cc16f14faf92567e4dbfba3fe08a40d1fabd47a02b65ba0c0bff8672819bc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 28, 2026.
Transparency logRelease files / llm_obscurify-0.1.0-py3-none-any.whl
| Download URL | llm_obscurify-0.1.0-py3-none-any.whl |
|---|---|
| Size | 7.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
8462c45f5e2156cb6707e9dd2700588939646e6ba3abc3bfa7f3e2abd4c03580
|
|
BLAKE2b-256 checksum How to use checksums |
aeb92b9c7899824193726091f8bf6fb1942d8ceec32b3af5e8eaea5be76d300b
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.16
|
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 Oct 28, 2026.
Transparency logSecurity for llm-obscurify 0.1.0
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.
Full provenance
All 2 files in this release have been uploaded with provenance metadata.
Attestation for llm_obscurify-0.1.0.tar.gz
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 Oct 28, 2026.
Transparency logA note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.