Top
Best
New

Posted by Alifatisk 6 hours ago

DeepSeek reasonix, DeepSeek native coding agent with high caching and low cost(esengine.github.io)
240 points | 135 comments
embedding-shape 5 hours ago|
I'm not sure you need a "DeepSeek native coding agent" to take advantage of DeepSeeks cache, yesterday as the Codex quota usage issue still wasn't solved for me, I wrote a tiny little bridge so I could use DeepSeek V4 Pro via Codex, and seems most of everything I did was basically cached as far as I can tell: https://i.imgur.com/7eKn6wN.png (2026-05-23 Input (Cache hit): 39,123,200 tokens, Input (Cache miss) 1,692,286), and the bridge is doing not special, just massage the DeepSeek API shape into what Codex expects, nothing particular about caching at all.

Besides being even better at the caching, I'm not sure what benefits you'd get compared to just firing up OpenCode with the DeepSeek API yourself, it'll similarly do caching for sure and also "talks directly to api.deepseek.com" if that matters, and you'll get a much more mature harness.

3uler 4 hours ago||
Opencode has really bad cache stability issues that they seem uninterested in fixing at the moment.
dathery 2 hours ago|||
The OpenCode devs talk about this on Twitter a lot, e.g. https://xcancel.com/thdxr/status/2048268697790300343

> tool call pruning breaks cache and people will tell you this is horrible and expensive

> except i looked at some anthropic data and real user behavior ends up with better cache hits and 30% less spend

> even this is needs to be analyzed further, it's just not simple

> for openai data it's inverted! cache hit ratio is actually better [sic: I think he meant worse based on the screenshot] with tool call pruning turned on

> but the net $ saved is only 5%

> kimi is a funny one - it has better cache hits with pruning on...but is also more expensive!

There was also another thread recently where he discussed that pruning improves user experience (models are smarter with less context) but I can't find it.

This can also be disabled in the config: https://opencode.ai/docs/config/#compaction

hirako2000 18 minutes ago||
They are. Empirical evidence on my side. Because attention is sparse across the context. It's not truly treating a million token the way it treats a fraction of that count. For performance.
huqedato 3 hours ago||||
I can't confirm this. Having utilized Opencode for a large project over the past 10 months, with multiple models and agents, we've never run into such 'cache stability issues'."
embedding-shape 3 hours ago||||
That'd be really easy to spot and also fix, most likely. Any open issue you could point us to, must surely been reported already?
nolok 3 hours ago|||
> That'd be really easy to spot and also fix, most likely

Ah, reminds me of good old "There are only 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors."

criemen 3 hours ago||
> Ah, reminds me of good old "There are only 2 hard problems in computer science: cache invalidation, naming things, and off-by-1 errors."

You quip, but LLM KV caching (from the harness side) is quite easy: You get a cache hit on stable prompt prefixes, period. That means you want to keep the prefix stable, and only append at the end of the conversation. Made up example: Don't put the git branch name into the system prompt part (that comes first), as whenever the branch name changes, that'd trigger a cache invalidation of the entire prompt.

Getting this right requires some care to not by accident modify the prefix, basically, and some design on communicating the things that can change (user configuration, working dir, git information, ...).

franknord23 1 hour ago|||
That sounds like the experience of writing Containerfiles; since steps are cached you want to pull the thing you are iterating on as far down as possible.
gopher_space 2 minutes ago||
All of this work has been done before in different contexts. Memory management with bigger blocks and weaker definitions that change whenever some grad student gets a bright idea.
xcjsam 2 hours ago|||
[dead]
krzyk 3 hours ago|||
Opencode (and other coding agents) have hundreds of open issues reported. It is quite discouraging when they are not being closed/fixed.
jsjsjsuduiwkw 2 hours ago||
[dead]
metalspot 48 minutes ago||||
I am getting 98.6% cache hit ratio on deepseek-v4-flash with opencode
bobkb 12 minutes ago||
That’s impressive!

On the sheer performance it’s comparable to Opus ?

Bombthecat 3 hours ago|||
[flagged]
tontinton 1 hour ago|||
Yep exactly my thoughts, went and looked at the code for the deepseek provider in my coding agent. and basically all of what the author wrote there is implemented... http://github.com/tontinton/maki for the curios
kiproping 2 hours ago|||
This would be a better page to link to https://github.com/esengine/DeepSeek-Reasonix/blob/main/docs...

They explain some of the the reasons why they have a better solution and why they are very opinionated

>Automatic prefix caching activates only when the exact byte prefix of the previous request matches. Most agent loops reorder, rewrite, or inject fresh timestamps each turn — cache hit rate in practice: <20%.

So they optimize on this plus other techniques to improve cache hits, making it cheaper.

bwfan123 4 hours ago|||
> I wrote a tiny little bridge so I could use DeepSeek V4 Pro via Codex

Can you share the bridge. DeepSeek v4 is awesome paired with claude-code or opencode. I found that claude code costs me less than opencode and I am presuming this is due to a better engineered harness.

embedding-shape 4 hours ago|||
Sure, keep in mind it's a steaming pile of hacked together hacks, probably won't work in every case, doesn't support every feature that should be supported (like parallel tool calling, both Codex + DeepSeek API support it), and it might make your computer catch on fire: https://gist.github.com/embedding-shapes/eab3e63e5a95d3d78a2...

I only used it for a few hours to play around with stuff before the quota issue was fixed and I could resume using GPT models, and the bridge was coded by DeepSeek-V4-Flash-IQ2XXS + DwarfStar4 locally, I take no responsibility for what might happen with your computer or you, during usage or just reading the code.

Edit: heh, like don't look at line 117 for example where seemingly it likes to handle misspellings in the .env file which totally wasn't my fault for typo'ing the API key in that file... I'm sure there are tons of sharp edges and dumb stuff in there.

bayesianbot 2 hours ago||||
LiteLLM can serve OpenAI API endpoint IIRC and proxy that to other providers like DeepSeek, should work with Codex
Den_VR 4 hours ago|||
I’m feeling more a novice every day, but how isn’t this just handing over your code to team deepseek for whatever they might want
embedding-shape 3 hours ago|||
Not everyone is working with state secrets or user personal data (or even more closely guarded, company secrets) on a daily basis, most of what I hack on is either FOSS already, or will be, not much to keep secret here.

Obviously, if you do deal with any sort of secrets, then using local LLMs over OpenAI, Anthropic, DeepSeek or whoever is obviously preferred, and in the case of personal data of users, probably a requirement.

jack_pp 2 hours ago||
either this or you work on software that even if copied won't get you far since the business relies on network effects or pure networking.

Getting the source code of facebook or instagram doesn't mean you could compete with them.

I work for a company that has built relationship with event organizers over the past 10 years. The code I maintain could be written from scratch in maybe 2-3 months even though it was built over the past 10 years but besides that you have frontend / DB / hardware / logistics etc

Demiurge 35 minutes ago||
I actually agree with you, for the most part. The code I work with actually does contain some valuable algorithms, but Im pretty sure the effort of integrating them into a larger system is pointless without the data. It’s almost like stealing half-life 2 source code without any assets.

Still, “Getting the source code of facebook or instagram doesn't mean you could compete with them.” I think to giants like that, having access to their source code could open up some very interesting loop holes for manipulating the ranking algorithms, or even security vulnerabilities.

jack_pp 29 minutes ago||
True, haven't thought of that. However very few actual projects / companies are in a situation where the chinese GOVT would be interested to spend resources to hack your platform. For the ones that are afraid of that there's always self hosting of course
oldmanhorton 3 hours ago||||
You’re not a novice, there are a lot of us who know exactly what we are doing and see this as a huge downside. We are just being told to go faster, faster, faster lest we miss out on… something?
jijji 2 hours ago|||
there's laws on the books in China that says that every company operating in China must aid and abet the Chinese government in espionage against the rest of the world. given those facts, I find it deeply troubling to be using anything coming out of China, especially a program that runs in the context of a Linux terminal on a machine that might have something important on it. I'd argue it's a back door waiting to happen, if not sooner than obviously later.
tim-projects 22 minutes ago|||
Is it not better to have a country far away spying on you than your own country?
goobatrooba 46 minutes ago||||
As a European I have to admit I am these days more worried about the US than China. See yesterday's article about the US government forcing Microsoft to give them lists of Dutch government officials. Utter madness. At least the Chinese mainly care about the money and power levers, the US about strange worlds of revenge and manipulation, trying to change or influence your government. E.g. which of the two countries has put crippling personal sanctions on staff of the international criminal court?

Honestly I'd love to love the US again, but basically after Obama things have just gone down and down and no soul will trust the US again in the next generation or two.

_3u10 1 hour ago|||
FISA section 702 / Five eyes / Room 641A.
himata4113 4 hours ago||
this appears to be native to the terminal, as in, there's no special application that runs or wraps an agent inside a tui. So basically instead of commands you type plain english?
embedding-shape 4 hours ago||
> this appears to be native to the terminal, as in, there's no special application that runs or wraps an agent inside a tui

Same with codex? codex-rs at least, is a TUI as well, it does run a "app-server" in the background, that the TUI actually interacts with, but that's just an implementation detail. Also makes it easy to hook in your own programs to fire of codex "headless" sessions even without the TUI.

agrippanux 1 hour ago||
This website seems to have been generated by Codex - I asked Codex to create an HTML overview of a feature for my team and it made an overly produced monstrosity - complete with the same large stat boxes that were for the most part devoid of meaningful information - using the same font, colors, layout, hero section, etc. It was also terrible on mobile just like this is.

In the end I had Claude produce a one-page html file that was 95% of the way there and it took minor editing to clearly explain the intent of the feature.

skeledrew 4 hours ago||
Not a fan of that page. The animated typing and resulting continuous resize of the example keeps moving the content beneath it down and up. Such bad UX.
embedding-shape 4 hours ago||
Agents or no agents, people still need to test their websites on different resolutions or at least window width, but seems this is becoming a lost art.
mirekrusin 3 hours ago||
Yeah, doesn’t look designed for people who want to read it beyond animated typing animation.
m4rkuskk 2 hours ago||
Claude design AI slob.
carterschonwald 29 minutes ago||
i cant find anything substantiated in the code that actually differentiates it from any other harness.

my fork of oh my pi that i have a lot of experiments in, is lterally designed to only work well with models that have decent reasoning levels, like deep seek models. check it out!

https://github.com/cartazio/oh-punkin-pi/blob/main/scripts/b... — thats the install script for after clone

fair warning: tis my dog food test bed as i build even fancier stuff

declan_roberts 4 hours ago||
I love the focus on cache hit efficiency. Hats off to the deekseek team for creating a great product that maximizes cost efficiency for the user.
bwfan123 4 hours ago||
> Hats off to the deekseek team for creating a great product

I have been using it for a while, and I wholeheartedly agree. imo, it is as good as codex or claude which I also use. It is a winner in the cost-sensitive tier, and if some startup could put it together with data-retention in mind, it could be a great product sold to the enterprise, as data-retention and privacy are the main issues for the coding-assistant usecase.

chillfox 4 hours ago||
Deepseek v4 pro is definitely my preferred cheap model, it's very good, and I use it all the time for my personal projects (opencode go plan), but I also use Claude Opus all the time at work and Deepseek is not as good as that, but it does compete with Sonnet for capability, and beats it on price.
nicce 3 hours ago|||
Just in case, note that this project is someone's side project

> Independent open-source project · not affiliated with DeepSeek

Bombthecat 3 hours ago|||
Adding already cheap API cost and you probably could let it run for days and the same task..
stavros 4 hours ago||
How can you have cache hit efficiency? Isn't it just a matter of not changing the previous context? I don't understand what knobs there are to tweak on this.
everforward 4 hours ago||
> Isn't it just a matter of not changing the previous context?

Yes, but a lot of harnesses change previous context. E.g. the system prompt injects the current time/date, working directory, files in the working directory, etc. Compaction also changes the whole previous context. I _think_ changing the list of tools also invalidates cache, so invoking a subagent with different tools would invalidate the cache.

My vague impression is that it's in a similar vein to functional programming languages. It generally disallows doing things that lead to bugs (cache misses in this case), and presumably allows you to do those things in a way that makes it much clearer that this is likely to cause cache misses. I would guess that in this paradigm, you don't mutate your existing session, you derive a new session by mutating the prior context into a new context.

chillfox 3 hours ago||
changing between plan/build mode in some agents will change the tools list, which breaks the cache.
brookst 3 hours ago||
Cache is always there, it’s just that it only caches up to the point where an input token changes. So if the tools list is early in the prompt, changing it would limit cache for most of the prompt. If the tools list is the last thing, you could still get 99% cache hits even if it changes every turn.
RevEng 2 hours ago||
After a couple of turns the system prompt is a small part of the context. Not changing the system prompt at all is key so that the rest of the history is itself part of the prefix.
wg0 1 hour ago||
Performance is horrible when you type but caching is magical.

Extremely pro consumer tool. I have been hammering it hard with 97% cache utilization and barely $0.03 dollar spent for me constantly exploring a codebase.

snqb 16 minutes ago|
Deepseek API caches very efficiently itself. I use it heavily via pi agent, and a lot of times I get 99%+ caching for longer sessions.

Have you tried using Deepseek API via other agents? This project tbh looks like a S-tier slop

adi_kurian 9 minutes ago||
There is an uncanny valley effect to websites where FE is created in full via an AI.

These sites have the immediate scent of 'high design', with errors that no 'high designer' would dare make.

The italics give me nausea. Text promoted with orange fill is seemingly random. There is no thought behind the combination of art and copy. Random smattering of Title Case and Sentence case and lower case. A lack of commitment to a full stop Widowed H1s. H1s with random spaces .

At the same time, if I hammer CMD - to 25%, it looks fancy. Perhaps nobody gives a fuck.

That said, I'm excited to try this tool!

arikrahman 17 minutes ago||
Saw nix suffixed and was excited a new dotfiles was about to hit the market.
unshavedyak 3 hours ago||
It's pretty funny, i'm a $200/m Claude subscriber and i've had little need to use anything else. However the more Claude has been restricting my workflow (notably around the recent IDE/-p usage change) the more i've been wanting to go elsehwere.

I'm concerned since i really want SOTA reasoning, but DeepSeek still has me interested.

Alifatisk 2 hours ago||
> I'm concerned since i really want SOTA reasoning

I think you should give other models a try and see how much they differ from SOTA models. I did this and realized, even Qwen-2.5-Max was enough. I am sure even Claude Sonnet 3.5 is enough for things I play around with. I am not really striving for fields medal in Mathematics.

unshavedyak 43 minutes ago||
That's fair, neither am i - i do tend to work in large, complex, full of legacy decision based codebases. Eg i have access to Sonnet (of course), but i choose to solely work in Opus because i find its output reads better, analyzes better, etc.

The "cost" is dumb models is just so high for me. Eg every bad decision they make increases my frustration quite a bit. Despite putting a lot of effort into my workflow to help reduce the number of decisions they make, they always will. So my hedge is always against that.. trying to reduce how insane they can be heh.

0xbadcafebee 2 hours ago|||
You should definitely stick to the $200 plan, and not try the $10 coding plans with open weight models and higher limits. Anthropic needs your money to stay solvent, and you'll sleep better knowing you're using SOTA.
KronisLV 1 hour ago|||
> i've been wanting to go elsehwere.

There's always the option of using Anthropic's models for some tasks like planning and then just hand over the implementation task to something like DeepSeek. Across different tools, a Markdown plan works pretty okay. That's what I'm planning to do if I go from the 5x Max subscription down to the Pro.

I am also writing a launcher that makes using 3rd party providers with Claude Code easy (https://ccode.kronis.dev) and I already have a local proxy up and running, just not dynamic model switching yet. Though it shouldn't be too hard to add, will probably be there within a week or two, depending on my schedule.

I don't think it's wise to leave Anthropic altogether because their models are great (and a subscription gives you features like Remote Control which I like), but switching tiers and maybe saving a bit of money seems viable! On the other hand, you do need a quality baseline, because I remember using Cerebras with GLM 4.6 way back and there was a bit too much slop.

gck1 1 hour ago|||
I gave a fairly complex reverse engineering task to DS-4 xhigh and GPT-5.5 xhigh today.

After about 6 hours, both ultimately failed to fully RE, however, there were some drastic differences:

DS stopped every 30 minutes or so, saying it did full RE and it should all work now, while in fact, it didn't complete even 1% of it. It also looked for shortcuts again and again, despite me prompting heavily that the specific shortcut may not be used. It was a complete and utter failure.

GPT-5.5, on the other hand, blew me away. It just did the right things, didn't jump to next steps until it was sure it completed the initial layers and had a full understanding of what's required. The only time I prompted it during the 6 hours was when I saw it going in the right direction and I could nudge it slightly towards an even better way. I never felt I was fighting it. Okay, maybe a little bit - after compaction, it sometimes would go on a "no I'm not helping you with reverse engineering" tangent, but it would resolve in a clean session.

I cancelled my Claude subscription a month ago, so I haven't tested that, but DeepSeek has reminded me a lot of how I worked with Opus 4.6/4.7. Which perhaps could be a positive sign to some, but GPT-5.5 showed me that the way claude/ds work is just way too annoying.

ttul 41 minutes ago||
What you’re experiencing is the difference in model intelligence. Most models can seem pretty good at simple stuff over short time horizons. Complex work requires that more intelligence be stuffed into those trillion-dimensional spaces.
logicchains 2 hours ago||
If you want SOTA reasoning you should be using GPT 5.5 Pro.
unshavedyak 1 hour ago|||
This is fair, but i've found the different models to have different moods and require different interactions to get them to stick to just the specific edits i ask for, etc.

I used to surf the three big players frequently and got really tired of the effort needed to steer some models. In the end i ended up sticking with Claude because it required less steering effort. While not strictly reasoning, a models ability to follow clear directions consistently is something i'd consider part of its SOTA capabilities.

Eventually i just tired of exploring. I just want stability.

Which ironically is why i'm thinking about moving from Claude. The very basic IDE/-p usage getting removed from my plan is a UX stability issue. I'm trying to progressively improve my workflows and efficiency, not have to establish a new foundation anytime something shifts. Quite frustrating.

auggierose 2 hours ago|||
Codex has only GPT 5.5
schaefer 4 hours ago|
Okay, I'm curious.

From the FAQ, I see:

>Can I point it at a self-hosted / private DeepSeek endpoint?

>Yes. Since 0.30 we accept non-standard key prefixes for self-hosted DeepSeek endpoints. Just point `baseUrl` at your internal address — the loop, cache strategy, and tool protocol are unchanged.

But my question is: If I use Reasonix to talk to a deepseek endpoint through openrouter, am I still getting the cache-hit benifits of this agent harness?

csunoser 3 hours ago|
Yes*. At least from my limited usage of deepseek-flash for a few billion tokens on openrouter, the cache-hit rate is >95%. And I simply used the claude code harness pointed at the openrouter anthropic compatible endpoint with no fluff.
schaefer 3 hours ago||
thank you!
More comments...