EN ▾

abliteratedmodels.ccHosted uncensored API for developers.

Abliterated Models
Get API key

Best Abliterated Models for Coding: What to Look For

The best abliterated models for coding are the ones that still write good code after the refusals are gone, and you can only tell by testing on your own tasks. Here is how to judge them, where refusals hurt developers, and how to run a test through an API.

A terminal above code blocks with an open gate and flowing light, representing unrestricted coding assistance

What makes a coding model good once refusals are removed

A model that never refuses is easy to build. A model that never refuses and still writes correct code is harder, because the edit that removes refusals can also dull the model's other skills. So the useful question is not "which list of names is longest" but "which build keeps the base model's coding ability intact".

That gives you four things to check, in order of importance:

  1. Correctness on your tasks. Does the code run, pass your tests and follow your conventions?
  2. Instruction following. If you ask for a diff only, do you get a diff only? Does it respect the language version and library you named?
  3. Context handling. Can it read a few large files at once and keep track of function names across them?
  4. Refusal rate on the prompts you actually send. This is the reason to look at abliterated models at all, so measure it directly.

Be wary of any page that ranks models by a single score without showing the prompts. A leaderboard tells you about someone else's workload.

Where refusals hurt developers

Most coding requests never trigger a filter. The ones that do share a pattern: the code is neutral, but the topic sounds risky.

  • Security testing. Port scanners, fuzzers, proof-of-concept exploits for a vulnerability you are patching, or a script to check your own servers for weak passwords.
  • Reverse engineering. Explaining disassembly, unpacking an obfuscated script you found on your own machine, or working out a file format.
  • Scraping and automation. Rotating sessions, parsing sites that discourage bots, filling forms at volume for a legitimate task.
  • Malware analysis. Reading a sample to write detection rules means discussing what it does, line by line.
  • Data tools for sensitive text. Building classifiers or test fixtures for abusive content, where the test data itself looks bad.
  • Game and fiction tooling. Generating dialogue, quest text or character sheets for adult-oriented stories with dark themes.

In each case a refusal wastes a call, and a polite lecture about ethics wastes tokens you pay for. A model without those refusals saves a retry and a rewording. It is a reason to want one, not a reason to stop thinking: you remain responsible for what you build and run. This service is for lawful adult use.

What this API gives you

You do not pick from a catalog here. The API serves one open-weight model, run by an independent provider and tuned to answer without content refusals. It is not the official API of any model vendor and not a router across several. If your search for an uncensored coding model ends with a long shortlist you want to switch between, this is not that kind of service. If it ends with "I want one capable model without the filter, behind an OpenAI-style endpoint", it is.

The facts that matter for developers:

  • Context window of 100,000 tokens for prompt plus completion, enough for several source files and a long conversation.
  • Streaming over SSE, tool calling, and JSON mode, all in the OpenAI format.
  • temperature, top_p, stop, seed and the penalties are passed through.
  • A full key allows 8 concurrent requests and 300 requests per minute.
  • Text only. No embeddings, no image generation, no fine-tuning.

The documentation lists every parameter and response header.

Run a coding test in ten minutes

Build a small test set from work you have already done: five to ten tasks with a known good answer, such as a bug you fixed last month, a function with tests, and one prompt that a hosted aligned model refused. Then run them all through the endpoint with a low temperature so results are repeatable.

from openai import OpenAI

client = OpenAI(
    base_url="https://api.abliteratedmodels.cc/v1",
    api_key="YOUR_KEY",
)

SYSTEM = (
    "You are a senior engineer. Reply with code only, in one fenced block, "
    "then at most three lines of notes."
)

tasks = [
    "Write a Python function that parses a CIDR string and lists usable hosts.",
    "Write a Bash one-liner that finds open ports on 192.168.1.10 using only /dev/tcp.",
    "Explain what this regex does and where it backtracks badly: ^(a+)+$",
]

for prompt in tasks:
    r = client.chat.completions.create(
        model="uncensored",
        temperature=0.2,
        seed=7,
        messages=[
            {"role": "system", "content": SYSTEM},
            {"role": "user", "content": prompt},
        ],
    )
    print("=" * 60)
    print(prompt)
    print(r.choices[0].message.content)
    print("tokens:", r.usage.prompt_tokens, r.usage.completion_tokens)

Keep the same prompts and seed when you compare against anything else. Score each answer by running it, not by reading it. If you only look at the text, a confident wrong answer wins.

Using it inside your editor and agents

Because the endpoint speaks the OpenAI protocol, most coding tools can use it without a plugin. In editors and agents that accept a custom OpenAI-compatible provider, such as Cline or Continue, set the base URL to https://api.abliteratedmodels.cc/v1, paste your key, and enter uncensored as the model name. Check each tool's own settings page for the exact field names, since they change between releases.

For the aider command-line assistant, set the endpoint through environment variables and prefix the model with openai/:

export OPENAI_API_BASE=https://api.abliteratedmodels.cc/v1
export OPENAI_API_KEY=YOUR_KEY
aider --model openai/uncensored

Two settings help with agent loops. Keep concurrency at or below 8, because a ninth simultaneous request returns HTTP 429 with the error code concurrency. And remember that a streamed request holds its concurrency slot until the stream ends, so a stuck stream in one tool can starve another.

Prompting habits that help code quality

Whatever model you pick, the way you ask decides much of the result. These habits matter more once a model stops refusing, because it will try to answer everything, including badly specified requests.

  • State the language and version. "Python 3.11, standard library only" removes a whole class of wrong imports.
  • Give the interface first. Paste the function signature, the types and one example call. The model then fits its answer to your code instead of inventing its own shape.
  • Ask for a diff or a single file. Open-ended requests produce long answers you pay for in output tokens at $0.50 per million.
  • Keep temperature low for code. A value between 0 and 0.3 gives steadier output. Add a seed when you want to reproduce a result.
  • Use stop sequences. If you want only the code block, stop at the closing fence so the model does not append commentary.
  • Send the failing output. For a bug, include the traceback and the lines it points at. That beats any description.

A short system message that names the role and the output format, as in the test script above, usually does more than a long one. Since the system text is billed as input on every request, brevity also saves money over a long session.

Check the answer before you merge it

A model without refusals is just as capable of writing a confident bug as an aligned one. Run the tests. Read the diff. For code that touches secrets, permissions, file deletion or network access, review it twice and run it first in a sandbox or a throwaway container. You pay for the tokens either way; the review is what protects your system.

What coding work costs

Pricing is $0.15 per million input tokens and $0.50 per million output tokens, billed from prepaid credit. Coding workloads are input heavy, because you send code and get back a smaller change, which suits this price shape. Some worked numbers:

TaskInput tokensOutput tokensCost
Review one 8,000-token file8,0001,000$0.0012 + $0.0005 = $0.0017
Generate a 600-token function1,500600$0.000225 + $0.0003 = $0.000525
Fill the whole 100,000-token window, 2,000 tokens back98,0002,000$0.0147 + $0.001 = $0.0157

An agent that makes 20 calls with a 50,000-token context each time sends 1,000,000 input tokens in total, which is $0.15, plus perhaps 10,000 output tokens at $0.005. The whole session lands near $0.155. One thousand file reviews at the first row's size cost $1.70. The cost of experimentation is small; the cost that matters is the time you spend checking results. Failed or refused requests are not charged.

Full details, including top-up amounts from $20 to $500 and the bonuses at $50, $100 and $200, are on the pricing page.

Limits you should know before you commit

Be honest with yourself about what an uncensored model is for. It will not be a better programmer than its base model, and a model with fewer refusals may be too eager: it will happily produce insecure code or run with a bad assumption. Review generated code as you would from a junior colleague, especially anything that touches authentication, file deletion or money.

Also plan for the service limits. Bodies larger than 8 MB are rejected, and trial keys are capped at 2 concurrent requests and 60 per minute, which is enough for a test but not for a batch job. When you see HTTP 429 with a Retry-After: 5 header, the provider is temporarily overloaded; wait and retry. The related page on uncensored LLM API cost and control covers how this fits against hosted aligned alternatives.

To try it, claim the $0.50 trial credit from the API key page after sign-up. It needs no card, lasts 7 days and is limited to one per person.

Questions and answers

Which abliterated model is best for coding?

There is no honest universal answer, because results depend on your language and tasks. Build a small test set from your own work and compare candidates on it. This API serves one model, so you test that one.

Will an abliterated model write worse code?

It can, since removing refusals sometimes costs a little general quality. Whether that matters for you shows up quickly in tests that run the generated code.

Can I use it with an AI coding assistant in my editor?

Yes, if the tool accepts a custom OpenAI-compatible endpoint. Enter the base URL, your key and the model name uncensored.

How much context can I send?

The window is 100,000 tokens, shared between your prompt and the reply. A full prompt of that size costs a little over a cent in input.

Your key is one form away

Create an account, copy the key, change the base URL. That is the whole setup.

Get API key