Metadata-Version: 2.5
Name: uncensoredllm
Version: 0.1.0
Summary: Abliterated and uncensored models on one prepaid key, through the OpenAI and Anthropic SDKs. Priced per token, no subscription.
Project-URL: Homepage, https://uncensoredllm.ai
Project-URL: Models, https://uncensoredllm.ai/models
Author-email: Uplink Switch LLC <hello@uncensoredllm.ai>
License-Expression: MIT
License-File: LICENSE
Keywords: abliterated,anthropic,llm,llm api,openai compatible,uncensored llm,uncensored llm api
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Programming Language :: Python :: 3
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
Classifier: Topic :: Software Development :: Libraries
Requires-Python: >=3.9
Provides-Extra: all
Requires-Dist: anthropic>=0.34; extra == 'all'
Requires-Dist: openai>=1.40; extra == 'all'
Provides-Extra: anthropic
Requires-Dist: anthropic>=0.34; extra == 'anthropic'
Provides-Extra: openai
Requires-Dist: openai>=1.40; extra == 'openai'
Description-Content-Type: text/markdown

# uncensoredllm

Python client for [UncensoredLLM](https://uncensoredllm.ai): abliterated and uncensored models on one prepaid key, priced per token. Every model answers on the OpenAI Chat Completions, OpenAI Responses and Anthropic Messages endpoints, so you keep the official SDKs.

```bash
pip install "uncensoredllm[openai]"      # or [anthropic], or [all]
export UNCENSOREDLLM_API_KEY="..."
```

Get a key at [app.uncensoredllm.ai/console](https://app.uncensoredllm.ai/console). Credit is prepaid from $10, with no subscription.

## OpenAI SDK

```python
import uncensoredllm

client = uncensoredllm.openai_client()
reply = client.chat.completions.create(
    model="glm-5.3-uncensored",
    messages=[{"role": "user", "content": "Say hi in five words."}],
)
print(reply.choices[0].message.content)
```

## Anthropic SDK

```python
import uncensoredllm

client = uncensoredllm.anthropic_client()
msg = client.messages.create(
    model="glm-5.3-uncensored",
    max_tokens=200,
    messages=[{"role": "user", "content": "Say hi in five words."}],
)
print(msg.content[0].text)
```

## Prices, no key needed

```python
import uncensoredllm

for m in uncensoredllm.models():
    p = m["pricing"]
    print(f'{m["id"]:<40} ${p["input"]}/${p["output"]} per 1M tokens')
```

## Without this package

Set `OPENAI_BASE_URL` or `ANTHROPIC_BASE_URL` to `https://api.uncensoredllm.ai/v1` and use your key.

- Models and prices: [uncensoredllm.ai/models](https://uncensoredllm.ai/models)
- Daily real-model check: [uncensoredllm.ai/proof](https://uncensoredllm.ai/proof)
- Setup guides: [uncensoredllm.ai/guides](https://uncensoredllm.ai/guides)

Run by Uplink Switch LLC.
