Edit 2: So I think the list got updated (official list from crush says 3.2 now), which includes the 128k context length. So you probably don’t need to do all that anymore.
However it’s still good to know how you can add providers of your own or change model settings in case it happens in the future.
Still a problem with the software not summarizing automatically.
Edit: okay, I think I fixed it. As expected it wasn’t too difficult. I recommend you do this if you use Deepseek on crush.
-
You will need to create a crush.json file either in ~/.config/crush/crush.json or on Windows %APPDATA%/crush/crush.json.
-
As per the documentation on the official repo, you can copy the provided deepseek config:
{
"$schema": "https://charm.land/crush.json",
"providers": {
"deepseek-3.2-USER": {
"type": "openai-compat",
"base_url": "https://api.deepseek.com/",
"api_key": "**$DEEPSEEK_API_KEY**",
"models": [
{
"id": "deepseek-reasoner",
"name": "Deepseek V3.2 (Thinking)",
"cost_per_1m_in": 0.28,
"cost_per_1m_out": 0.42,
"cost_per_1m_in_cached": 0.028,
"context_window": 128000,
"default_max_tokens": 32000
}
]
}
}
}
(This config above is already updated to latest Deepseek API info as of writing, whereas crush’s deepseek info is outdated).
And paste in that crush.json file. You can find the latest pricing and connection info from Deepseek here, in case they update again: https://api-docs.deepseek.com/quick_start/pricing
You will then need to replace the $API_KEY variable with your actual API key. Obviously don’t share it elsewhere.
Then save the file and try running crush, see if it loads. If it doesn’t start it probably means you’ve made a mistake in your json syntax, you can try to debug it here: https://jsonlint.com/ (I would recommend deleting the API key before pasting your file there). Usually it’s just a missing comma or extra }.
- Once in crush, hit Ctrl+P then select “Switch Model”. Type ‘USER’ (without the ') in that box to find the one we just added:

-
Select it and type ‘hello’ to see if it responds. You can then hit the Esc key to stop the generation once it starts, the point is to see if you can reach the API endpoint and get a response back.
-
Done! You now have updated deepseek stats.
Crush users seem more interested in Claude, Gemini and GPT and Deepseek hasn’t received updates on Crush in forever.
One newly introduced bug I noticed was that since they added the to-do list, the context doesn’t seem to auto-restart. This means you can saturate context window and then the session is lost forever because there’s no tokens left for it.
A more longstanding problem is the config still uses the old deepseek config including the smaller context window. So normally at 80% full context, crush restarts the context - you need the overhead for it. But they think deepseek still has a 64k context window when you can actually push it up to 150%. This means many more restarts than should be happening!
And a small problem that is purely visual but can be confusing to new users is it also still uses the old prices which were 10x higher. So you see in crush you’ve spent like 5$ with deepseek when in reality it’s barely been 25-50 cents.
I’ll look into a fix (might be as easy as updating your crush.json file, we’ll see) and update when I find one. Their readme’s documentation is not the best but you actually don’t need to have the crush.json file anywhere specific, the program will just look for the closest crush.json file to read from (in the folder structure) when you start it.
I came back to this thread to see if you’d find a solution, and if not point you towards the providers as a potential pathway, but looks like you sorted it out! Thanks for this.
I still have issues with the context not summarizing and regenerating automatically which can break your entire session if you let it run, but I trust they’ll get around to it soon. It might even be a problem with my computer, but I hope not lol.
For now the workaround is to keep an eye on what it’s doing and when context is reaching 80% fullness, hit escape, ctrl+p, Summarize. Then once it’s done summarizing just prompt “continue” and it should pick up where it left off.
Yeah I keep periodically getting a “provider error” with the message “unexpected end of JSON input”, and I’m not sure what the deal is with that.
Oh yeah I get that one too sometimes after the first tool call. I think it’s a problem on deepseek’s end. I ran into the issue earlier today and trying both my custom deepseek config and the crush provided one (same API endpoint of course so not much of a difference) and it seems to work fine. Seems it has some problems with Glob on my end… if push comes to shove you can disable that tool in the crush.json file.
Remember to update crush, they make almost daily updates but they fixed some unexpected end of JSON input errors when you used to cancel a prompt.

