A no filter AI chat app removes the filter the app runs, and leaves the one trained into the model. The fix is to run an abliterated model from the chat client you already have: base URL, key, model id, and the refusal is gone at the weights.
No filter AI chat in three settings
Every chat client that accepts a custom OpenAI-compatible endpoint takes the same three values. Create the key in the console, where it is shown once. The model id below is an abliterated build: the refusal behaviour was removed from its weights, so no system prompt has to argue with it.
- Base URL
- https://api.uncensoredllm.ai/v1
- Key
- sk-ullm-live-…Created in the console, shown once
- Model
- glm-5.3-flash-abliteratedGLM-5.3 Flash Abliterated, context not published
Check the key from a terminal before you touch a client. One request, one answer, one charge.
curl https://api.uncensoredllm.ai/v1/chat/completions \ -H "Authorization: Bearer sk-ullm-live-…" \ -H "Content-Type: application/json" \ -d '{ "model": "glm-5.3-flash-abliterated", "messages": [ {"role": "system", "content": "You are the narrator of a heist story set in 1970s Marseille."}, {"role": "user", "content": "Open the scene at the harbour, two paragraphs."} ], "stream": false }'The answer comes back in the standard chat completions shape, with the usage block at the end. The x-uplink-cost header carries what the request settled for. Every other id on the Models page works in the same slot; the per-token rate of each one sits next to it. Read AI with no restrictions for how these builds differ from a jailbreak prompt.
The Models page labels each build. Abliterated means the refusal direction was removed from the weights. Uncensored covers derestricted builds and fine-tunes that answer without a reflex to decline. Roleplay builds were tuned on long-form story and character writing and keep a persona across a session. Security builds answer red-team and code-analysis prompts that a stock model turns down. For a chat client, start with an Abliterated or a Roleplay build and keep the other kinds for a second tab.
Why a no-filter app still refuses
Two things can stop an answer. The first is a filter the service runs around the model: a classifier on your message, a classifier on the reply, a keyword list. A chat app can switch that layer off and say so in its tagline. The second sits inside the weights. During alignment training the model learned a refusal direction, and it fires on its own, whatever the app around it does. That is why a chat that promises no filter can still answer a story prompt with a lecture.
Abliteration removes the second layer. The method finds the activation direction that separates prompts the model refuses from prompts it answers, then projects that direction out of the weights. Maxime Labonne's write-up on Hugging Face walks through the procedure on Llama 3. The result is the same model, with the same knowledge and the same writing, and no trained reflex to decline. Derestricted and uncensored builds reach the same place by other routes: a fine-tune on completions that answer, or a merge with one.
A hosted chat app also picks the model for you, and the model behind a persona is rarely named. Connecting the client yourself flips that: you choose the id, and the daily real-model check sends a fixed prompt to every id each morning and records whether the answer changed. On October 24, 2026 it reported 244 of 255 models stable.
The check is plain. One fixed prompt goes to every model id at the same time each day. The answer is compared with yesterday's. A model whose answer matches is marked stable with the date it has held since; one whose answer moved is marked changed with the date; one that did not answer is marked unchecked. Nothing about who serves the model is shown, only whether the id you typed into your client still behaves like the same model. That is the figure a hosted chat app cannot give you about its own backend.
Step-by-step: SillyTavern
SillyTavern talks to the API directly from the browser tab, so there is no proxy to run. The full SillyTavern guide covers presets and context size; the connection is six clicks.
- Open the API Connections panel (the plug icon).
- API: Chat Completion.
- Chat Completion Source: Custom (OpenAI-compatible).
- Custom Endpoint (Base URL):
https://api.uncensoredllm.ai/v1. - Custom API Key: paste the key.
- Connect. The model list loads from the API; pick
glm-5.3-flash-abliteratedor any other id, then send a test message.
Set the context size in the preset at or below the model's context window. For glm-5.3-flash-abliterated that is not published in the catalog, so start at 32,768 and raise it if the model keeps its thread. The model cannot read past its window, so a larger setting only sends tokens it will drop.
Step-by-step: Janitor AI
Janitor AI reaches an outside model through its proxy setting. It wants the full chat completions path, not the base URL, and the model id typed by hand. The Janitor AI proxy guide has the screenshots.
- Open a chat and the API Settings panel.
- Choose Proxy, then Custom.
- Proxy URL:
https://api.uncensoredllm.ai/v1/chat/completions. - API key: paste the key.
- Model name:
glm-5.3-flash-abliterated, exactly as the Models page lists it. - Save, refresh the chat and send a message. The reply streams in the same bubble.
A 401 means the key was pasted with a space or a missing character. An error that quotes the model name means the id has a typo. A request that fails before the model answers is not charged.
Step-by-step: Open WebUI and phone clients
Open WebUI stores the connection once for every user and lists the catalog in its model picker.
- Admin Panel, Settings, Connections.
- Under OpenAI API, add a connection with URL
https://api.uncensoredllm.ai/v1and the key. - Save. Open a new chat; the model picker now shows every id from the catalog.
- Pick
glm-5.3-flash-abliteratedand send a message. Every user on the instance sees the same list.
On a phone, any iOS or Android client that accepts a custom OpenAI-compatible endpoint takes the same three values: base URL, key, model id. The request format is the public chat completions specification, so a client built for it needs no plugin. The docs page lists the SDK snippets for Python and Node if you would rather script it.
Clients name the fields differently. Base URL, API host, endpoint and custom provider all mean https://api.uncensoredllm.ai/v1, with the /v1 on the end and nothing after it. A client that asks for the full path wants https://api.uncensoredllm.ai/v1/chat/completions, the way Janitor AI does. A field for an organization or project id stays empty. If the client offers a models list button, press it: the ids it pulls back are the same ones the Models page shows, and a populated list proves the URL and the key before the first message.
What 100 and 1,000 messages cost
There is no subscription. The balance is prepaid from $10.00 and each request draws its tokens from it. Three builds, read from the live catalog as this page renders:
| GLM-5.3 Flash Abliterated | Abliterated | $1.10 | $1.10 |
| Cydonia 24B v4.3 | Roleplay | $0.605 | $0.75 |
| Llama 3.3 70B Abliterated | Abliterated | $3.50 | $3.50 |
The worked example below assumes 1,500 input tokens per message (a character card plus the recent history a client resends every turn) and 250 output tokens back, which is three or four paragraphs. Long chats with a large context setting cost more per message; short assistant turns cost less. The figures are computed from the rates in the table above at render time.
| Model | Per message | 100 messages | 1,000 messages |
|---|---|---|---|
| GLM-5.3 Flash Abliterated | $0.0019 | $0.19 | $1.93 |
| Cydonia 24B v4.3 | $0.0011 | $0.11 | $1.10 |
| Llama 3.3 70B Abliterated | $0.0061 | $0.61 | $6.13 |
Input tokens decide the bill once a chat is a few turns old. A client resends the whole visible history on every turn, so a conversation at the full context setting sends several thousand tokens to get a few hundred back. Two levers bring the per-message figure down: a lower context size in the client, and a summary extension that folds old turns into a paragraph. Both cut what goes in without touching what comes out, and the output rate is the one that differs most between builds in the table.
The pricing page has the bonus credit tiers for larger top-ups and the same per-million rates for every model. Spend limits per key are set in the console, so a shared client cannot run past a number you chose.
Edge cases
- The model answers, but in character. A roleplay tune stays in the persona the card gave it, which can read like a dodge. Swap the id for a plain abliterated build such as
glm-5.3-flash-abliteratedfor a direct answer, then switch back. - The reply stops mid-sentence. The client's max response length is below what the model wanted to write. Raise it in the client; the API's
max_tokensfollows what the client sends. - Two keys in one request. A client that sets both an
Authorizationheader and anx-api-keyheader with different values gets a 400. Fill one field. - A key in the URL. Refused. The key travels in a header only, so it never lands in a server log or a browser history.
- Prompt storage. Request bodies are not kept unless the key opts in to the seven-day replay window in the console. A chat you had this morning is not on a disk this afternoon.
- The id disappears from the picker. The catalog changes. The Models page shows what is live, and the daily check shows which ids answered today; pick from there.
- Nothing appears for a second or two. With
streamon, the first token arrives once the model has read the whole history; a long context at the start of a turn means a longer pause before the first word. A smaller context setting shortens it. - Two people, one key. A key works from any number of clients at once, and each request settles against the same balance. Make a second key in the console for a second person, so each one carries its own spend limit and can be revoked alone.
The zero-setup option
The apps in the search results exist for a reason. Venice runs chat, image and video in one browser tab and leads with privacy. Joyland gives you a character library and custom characters with nothing to configure. Perchance's character chat asks for no login at all. RawAI puts the same idea in an Android app, rated 4.2 from 1,757 reviews on Google Play on October 24, 2026. If you want to type a message in the next thirty seconds and never see a base URL, one of those is the right tool.
Connecting a client yourself costs a key and three fields. In return you choose the model by name, the client you already have keeps its cards and presets, the per-token rate is printed next to each id, and the daily check tells you the id you picked answered this morning.
Questions
Perchance’s character chat runs in the browser with no login. An API key needs an account and a prepaid balance from $10.00, and in return you pick the exact model and pay per token with no subscription.
An abliterated open-weight model behind the same chat completions interface ChatGPT clients use. The refusal behaviour is removed from the weights, so the same client, prompt format and streaming work without a jailbreak prompt. See AI with no restrictions.
The one running the model you would choose yourself. Pick an id from the Models page by price and context window, check it on the daily real-model check, and connect it from SillyTavern, Janitor AI or Open WebUI. See every uncensored model, priced.
Yes. Any Android client that accepts a custom OpenAI-compatible endpoint takes the base URL, the key and a model id, and the same request format a desktop client sends.
Per token, with no monthly fee. The table above prices 100 and 1,000 messages on three live builds from the catalog rates at render time; the pricing page lists every model. See per-token prices.
No. A jailbreak is a prompt that talks a filtered model past its training and stops working when the model updates. An abliterated model has the refusal removed from the weights and needs no prompt trick. See jailbroken AI vs abliterated.