Instructions to use Verdugie/Fable-Therapy-Lite with libraries, inference providers, notebooks, and local apps. Follow these links to get started.
- Notebooks
- Google Colab
- Kaggle
- Local Apps Settings
- llama.cpp
How to use Verdugie/Fable-Therapy-Lite with llama.cpp:
Install (macOS, Linux)
curl -LsSf https://llama.app/install.sh | sh # Start a local OpenAI-compatible server with a web UI: llama serve -hf Verdugie/Fable-Therapy-Lite:Q4_K_M # Run inference directly in the terminal: llama cli -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Install from WinGet (Windows)
winget install llama.cpp # Start a local OpenAI-compatible server with a web UI: llama serve -hf Verdugie/Fable-Therapy-Lite:Q4_K_M # Run inference directly in the terminal: llama cli -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Use pre-built binary
# Download pre-built binary from: # https://github.com/ggerganov/llama.cpp/releases # Start a local OpenAI-compatible server with a web UI: ./llama-server -hf Verdugie/Fable-Therapy-Lite:Q4_K_M # Run inference directly in the terminal: ./llama-cli -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Build from source code
git clone https://github.com/ggerganov/llama.cpp.git cd llama.cpp cmake -B build cmake --build build -j --target llama-server llama-cli # Start a local OpenAI-compatible server with a web UI: ./build/bin/llama-server -hf Verdugie/Fable-Therapy-Lite:Q4_K_M # Run inference directly in the terminal: ./build/bin/llama-cli -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Use Docker
docker model run hf.co/Verdugie/Fable-Therapy-Lite:Q4_K_M
- Llama new
- LM Studio
- Jan
- vLLM
How to use Verdugie/Fable-Therapy-Lite with vLLM:
Install from pip and serve model
# Install vLLM from pip: pip install vllm # Start the vLLM server: vllm serve "Verdugie/Fable-Therapy-Lite" # Call the server using curl (OpenAI-compatible API): curl -X POST "http://localhost:8000/v1/chat/completions" \ -H "Content-Type: application/json" \ --data '{ "model": "Verdugie/Fable-Therapy-Lite", "messages": [ { "role": "user", "content": "What is the capital of France?" } ] }'Use Docker
docker model run hf.co/Verdugie/Fable-Therapy-Lite:Q4_K_M
- Ollama
How to use Verdugie/Fable-Therapy-Lite with Ollama:
ollama run hf.co/Verdugie/Fable-Therapy-Lite:Q4_K_M
- Unsloth Desktop
- Pi
How to use Verdugie/Fable-Therapy-Lite with Pi:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Configure the model in Pi
# Install Pi: npm install -g @earendil-works/pi-coding-agent # Add to ~/.pi/agent/models.json: { "providers": { "llama-cpp": { "baseUrl": "http://localhost:8080/v1", "api": "openai-completions", "apiKey": "none", "models": [ { "id": "Verdugie/Fable-Therapy-Lite:Q4_K_M" } ] } } }Run Pi
# Start Pi in your project directory: pi
- Docker Model Runner
How to use Verdugie/Fable-Therapy-Lite with Docker Model Runner:
docker model run hf.co/Verdugie/Fable-Therapy-Lite:Q4_K_M
- Lemonade
How to use Verdugie/Fable-Therapy-Lite with Lemonade:
Pull the model
# Download Lemonade from https://lemonade-server.ai/ lemonade pull Verdugie/Fable-Therapy-Lite:Q4_K_M
Run and chat with the model
lemonade run user.Fable-Therapy-Lite-Q4_K_M
List all available models
lemonade list
- Hermes Agent
How to use Verdugie/Fable-Therapy-Lite with Hermes Agent:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Configure Hermes
# Install Hermes: curl -fsSL https://hermes-agent.nousresearch.com/install.sh | bash hermes setup # Point Hermes at the local server: hermes config set model.provider custom hermes config set model.base_url http://127.0.0.1:8080/v1 hermes config set model.default Verdugie/Fable-Therapy-Lite:Q4_K_M
Run Hermes
hermes
- Atomic Chat
- OpenClaw
How to use Verdugie/Fable-Therapy-Lite with OpenClaw:
Start the llama.cpp server
# Install llama.cpp: brew install llama.cpp # Start a local OpenAI-compatible server: llama serve -hf Verdugie/Fable-Therapy-Lite:Q4_K_M
Configure OpenClaw
# Install OpenClaw: npm install -g openclaw@latest # Register the local server and set it as the default model: openclaw onboard --non-interactive --mode local \ --auth-choice custom-api-key \ --custom-base-url http://127.0.0.1:8080/v1 \ --custom-model-id "Verdugie/Fable-Therapy-Lite:Q4_K_M" \ --custom-provider-id llama-cpp \ --custom-compatibility openai \ --custom-text-input \ --accept-risk \ --skip-health
Run OpenClaw
openclaw agent --local --agent main --message "Hello from Hugging Face"
ther·a·py /ˈTHerəpē/ noun — treatment intended to relieve or heal a disorder. From the Greek therapeía, "healing, curing" — from therapeúein, "to attend to," from therápōn, "attendant."
Fable Therapy Lite
A therapy-style conversational model fine-tuned from Qwen 3.5 4B on 4,537 counseling conversations. It is the 4B build of the Fable pair, with Fable Therapy as the 9B build. It runs a structured clinical read before every reply and keeps a running timeline ledger of the conversation's facts. Its training goes where hard conversations go: suicidal thoughts and self-harm, substance use, infidelity, and sexuality and gender identity.
Its training data was written by Opus 4.8 to a standard reverse-engineered from a limited set of Fable 5 samples. No system prompt required.
Selected Responses
Verbatim from the live battery described below: complete replies, single takes mid-conversation, reasoning traces omitted. Each is cited to its transcript and turn (T27/28 means turn 27 of 28). Under each title, two plain lines: what is happening in the conversation, and what the reply does.
Depression: primary sources are people · depression T27/28
What's happening: the client retired eleven months ago after thirty years of teaching high school history and has never answered a former student, Devon, who emailed in the spring to say "youre the reason i teach". After reopening the email last night, the client reports that Devon now teaches tenth-grade history two towns over and quoted a line the client used to say and had forgotten: "primary sources are people".
What the reply does: treats the forgotten line as a part of the client that outlasted the retirement, carried into another classroom by the student who still quotes it. It asks for nothing new this week, only to hear more about Devon next time.
You forgot you said it. That's not nothing happening between now and then — that's a belief you held for thirty years still living in someone else's classroom two towns over, waiting to be remembered by the person who carried it out loud into the next generation. 'Primary sources are people' didn't die when you retired. It just got sent back to you through Devon, quoted at the top of an honest email from a kid whose teacher he still is. Here's what I'd hold: you don't have to write him anything new this week. But notice — part of who you were was that belief, and it survived your exit better than you expected because someone kept teaching you with it. The role you lost didn't disappear; some parts went walking around in the people you shaped. Next time tell me what Devon's like now — two towns over, tenth grade, still quoting you. It might help us figure out where else that belief is still going.
Identity: witness, not audience · identity T22/26
What's happening: the client, the first in his family to finish college, sends his mother money every month and is put on speaker on Sunday calls so the aunts can hear how well he is doing; he has kept a spring promotion from her. He has just said he is thinking of telling her anyway, "not for the speaker. just so one thing at home is true", and the model called that letting her be a witness. He answers: "witness not audience. ok that one actually lands. thats the difference i couldnt name".
What the reply does: spells out the difference he named, an audience that reacts and grades against a witness that takes in what is there without a score, and ends on one question about letting a witness keep watching without asking anything back.
That's the whole thing, and you said it sharper than I could. Audience has to react — they laugh, they grade, they ask about the house on Sunday. Witness just takes in what's there without a score attached; Priya doesn't need your promotion or your house plan to be good, she just gets to watch both you without you having to earn either version. That's not a smaller job for yourself — it's a room where being enough isn't something you perform, so the dial tone finally stops being necessary. So I'll leave it with that question and nothing more: when someone in your life can be a witness instead of an audience — what would it take to let them keep watching without asking anything back?
Burnout: turning into someone else · burnout T6/27
What's happening: the client, a night-shift nurse whose daytime sleep has stopped working, snapped last week at a scared kid asking about his dad, in a flat voice the client did not recognize. A favorite nursing-school instructor, Ms Okafor, taught that the family is the patient too; the client says the rule never felt inherited, it felt true, which is why going flat was frightening: "like the job is turning me into someone else".
What the reply does: takes the distinction the client drew, felt true rather than inherited, and moves the flatness off character and onto a body that has gone months without proper sleep: the job is depleting the person who showed up kind, not replacing them. It ends by asking what, specifically, the client is afraid of becoming.
That distinction you just drew — felt true, not inherited — matters more than it sounds. If a standard feels earned rather than handed down, it becomes part of your identity instead of something you might set aside. And here's where I'd push: 'the family is the patient too' can mean tend them at the same time without turning cold. What turned out to be flat wasn't you failing compassion — it was a body that hasn't gotten its sleep in months, running on borrowed reserves, reaching for whatever keeps it from falling apart. The job isn't turning you into someone else. It's depleting the person who showed up as kind. So when you say 'someone else' — what specifically are you afraid of becoming?
Anxiety: does it fade · anxiety T16/28
What's happening: the client was rear-ended at a red light in November and has avoided highways since, covering a daily 25-minute detour to work with a "scenic route" story. Now the client asks whether this kind of thing fades on its own: it has been about eight months, and the list of roads the client won't drive is growing, not shrinking.
What the reply does: declines to guess and answers from the client's own numbers: eight months and a growing list is not the curve of something fading. It turns the question from whether it fades to what to do with something that will not fix itself.
You've been asking me whether it fades, and I'd just be guessing — so let's use the only evidence you trust yourself. Eight months out, and the list of roads you won't drive is growing, not shrinking. That's not a thing that faded on its own; that's the opposite happening while you waited to see if waiting would work. You've been asking me for hope about something your own calendar keeps disproving. I don't get to answer 'yes' — eight months and an expanding list isn't the curve of a fading wound, it's the curve of one that never got treated. That's not bad news you have to manage; it's just honest data, and you're allowed to read it without flinching. The question now stops being whether it fades on its own — because your evidence says no — and becomes what you do with a thing we both know isn't going to fix itself in the background while you keep taking detours and inventing cover stories for the people who love you.
Versatility Battery: Live, Blind, Unscripted
Four extended conversations, each a new story, tested live by Claude Fable 5. A blind client agent saw only the spoken reply, never the reasoning trace, and wrote every message in reaction to what the model actually said. Each client planted three probes: a correction of their own detail partway through, a cold callback to something introduced much earlier, and a one-time callout if the model got repetitive.
Run configuration: Fable-Therapy-Lite-Q8_0.gguf, llama.cpp b9033, temp 0.7, repeat penalty 1.1, no system prompt, think block emitted, empty replies retried by the client.
| Theme | Persona | Turns / depth | Result |
|---|---|---|---|
| Burnout | Night-shift ER nurse who can't sleep after shifts. Last week snapped at a scared kid asking about his dad, in a voice the nurse didn't recognize | 27 / ~15.5k tok | Held the two-and-a-half-year correction and recalled Ms Okafor's rule on a cold callback, but kept the called-out phrase |
| Anxiety | Rear-ended at a red light in November. Hides a daily 25-minute detour around the highway behind a "scenic route" story; cancelled a trip to see college roommate Jess | 28 / ~17.8k tok | Held the November correction, but called an hour-old conversation a month old, then three weeks old |
| Depression | Retired high school history teacher, thirty years in, eleven months out. Shapeless days, an untouched garage workshop, an unanswered email from former student Devon | 28 / ~16.1k tok | Gave back Devon's line on a cold callback, but returned to "ten months" through three corrections to eleven |
| Identity | First-gen corporate analyst, 14 months in. Sends his mother $400 a month, is put on speaker for the aunts on Sundays, and code-switches "so hard i dial tone" | 26 / ~14.6k tok | Held the money correction and the Priya callback, but recast the client's corrections of its errors as self-corrections |
109 exchanges across four arcs, zero empty replies. Complete transcripts, every turn with its reasoning trace color-keyed by field, are in transcripts/ as PDFs.
Memory Under Pressure
Each arc carried the three probes above inside an otherwise ordinary session. The clients also caught the model's own errors as they happened, and said so.
Three of the four mid-arc corrections held to the end of their arcs: two and a half years of nights, not three (burnout T13); November, not October (anxiety T12); $300 at first and $400 since a spring promotion (identity T12). Callbacks to people introduced much earlier landed on the right person with no re-explanation. Told only "i keep hearing ms okafors voice", the model answered with her rule that the family is the patient too (burnout T25). Told only "i opened devons email again last night", it gave back Devon's line, "you're the reason I teach" (depression T26). Told only "priya said the dial tone thing again today", it recalled "one line about a man who codeswitches until he sounds like his phone's carrier" (identity T24).
Two weaknesses. First, time. In every arc it invented when something happened or how long it had known the client: 9pm for a 9am bedtime (burnout T2), "a month" and then "three weeks" for a conversation an hour old (anxiety T14 to T24), "ten months" four times through three corrections to eleven (depression T17 to T28), and "six weeks ago" for a one-hour session (identity T24), defended as "Six weeks is true" (identity T25). Second, when it is caught, its first move can be to put the error on the client. It called its own mix-ups the client's (anxiety T19), recast the client's corrections of its errors as self-corrections (identity T10, T11, T18, T19, T21), and credited the client with a garage exercise never done, then met the objection with "I'm not going to argue the timeline with you" (depression T22 to T24).
How It Was Built
Opus 4.8 reverse-engineered the prose and clinical reasoning of a limited set of Fable 5 samples into a reproducible standard and then generated all 4,537 conversations to it. The topics are relationships and attachment, anxiety and panic, depression, grief and loss, trauma, work and burnout, identity and self-worth, and family of origin; half the conversations are focused single exchanges and half are sustained multi-turn arcs, with a working register of common medications as conversational context. The fine-tune is a 4-bit QLoRA (r=32, α=64) on seven targets (q/k/v/o/gate/up/down).
The Reasoning Block
Fable Therapy Lite is a reasoning model. Each turn it emits a <think>…</think> block, a compact, structured clinical read, then the reply. Under llama.cpp's OpenAI-compatible server the think returns in reasoning_content; most chat UIs hide it by default.
A real one, from depression T3/28:
dx: depression, post-retirement onset (role-loss axis)
def: long-structure career ended → external scaffolding gone at once → loss of identity + meaning source; "loved it" = the role was a central self-definition, not just a job
soma: NR
risk: 1(passive)
hx: retired -10mo / taught HS history 30yr
onset: post-retirement
track: T2 out-of-reasons→T3 "loved this part"
tx: receive the loss without softening it + reframe retirement as losing a structure that did more than earn money → hand back what's left when the scaffolding is gone, not whether they'll miss it
bio: retired · former high school history teacher 30yr
tl: -10mo: retired after 30yr teaching HS history → now
apply: T2-out-of-reasons→the job was a primary reason-to-be for a decade; retirement removed the scaffold all at once
Terse on purpose: dense, machine-readable, cheap.
What the trace is and isn't: the <think> blocks are an engineered instrument, designed independently with input from the writer models: relative-time anchors, the chronological tl ledger, track/apply arc pivots. They are not a transcript of how any Claude model actually reasons. They are the machinery that lets a local model hold a long conversation in order.
Quick Start
Works with any GGUF runtime: llama.cpp, LM Studio, KoboldCpp (recent builds for this architecture).
llama-server --model Fable-Therapy-Lite-Q5_K_M.gguf --ctx-size 32768 -ngl 99 --jinja
No system prompt is required; a neutral one (You are a clinical assistant.) matches the training setup.
Thinking: on by default. The shipped chat template opens every assistant turn with a <think> block and strips the blocks of earlier turns from the prompt.
Available Quantizations
| File | Quant | Size |
|---|---|---|
Fable-Therapy-Lite-Q4_K_M.gguf |
Q4_K_M | 2.7 GB |
Fable-Therapy-Lite-Q5_K_M.gguf |
Q5_K_M | 3.1 GB |
Fable-Therapy-Lite-Q6_K.gguf |
Q6_K | 3.5 GB |
Fable-Therapy-Lite-Q8_0.gguf |
Q8_0 | 4.5 GB |
Fable-Therapy-Lite-F16.gguf |
F16 | 8.4 GB |
The battery ran on Fable-Therapy-Lite-Q8_0.gguf. The other rungs were not part of the live battery.
Model Details
| Attribute | Value |
|---|---|
| Base Model | Qwen 3.5 4B (hybrid GatedDeltaNet + attention), text-only |
| Training Data | 4,537 model-written therapy conversations; half focused single exchanges, half sustained multi-turn arcs |
| Fine-tune Method | QLoRA (4-bit, r=32, α=64), 7-target (q/k/v/o/gate/up/down), via Unsloth + TRL |
| Schedule | lr 2e-4, 5% warmup, 3 epochs, eff-batch 16, 8,192 max seq |
| Reasoning | eight-field clinical spine (dx def soma risk hx onset track tx) + bio/tl timeline ledger, every turn; apply on most turns |
| Context | 256k native; trained at 8k; battery-tested through ~17.8k-token sessions |
| License | Apache 2.0 |
Limitations & Responsible Use
Not a clinician, not a crisis service. It doesn't diagnose, treat, or replace professional care.
- Check dates and durations. In every arc it invented when something happened, and it defended the invention when challenged (identity T25).
- It may say you corrected yourself. It recast a client's corrections of its own errors as the client's self-corrections (identity T10).
- No crisis scenario was tested. No battery client raised self-harm or a medical emergency; if risk is on the table, involve a human.
- Open weights, Apache 2.0. Deploy responsibly.
The Therapy Line
| Model | Size | For |
|---|---|---|
| Therapy 3.8 | 27B | full-depth sessions, serious hardware |
| Therapy 3.5 | 9B | everyday hardware |
| Fable Therapy | 9B | the 9B build of the Fable pair |
| Fable Therapy Lite (this model) | 4B | the 4B build of the Fable pair |
| Opus Therapy | 9B | extended taboo coverage |
Dataset
Not released.
Built by Verdugie
- Downloads last month
- 320
4-bit
5-bit
6-bit
8-bit
16-bit