Rendered at 13:50:24 GMT+0000 (Coordinated Universal Time) with Cloudflare Workers.
steveBK123 52 minutes ago [-]
What great productivity gains are Spotify achieving in making their product worse?
bigtex 49 minutes ago [-]
They released some AI related product for the desktop that was probably vibe coded and will not be installing
steveBK123 12 minutes ago [-]
They are in my top-3~5 list of "actively & aggressively getting worse" software products.
alastairr 27 minutes ago [-]
Does anyone even review these blog posts before they get published? If nobody in the company can be bothered to review it, I don't know why they expect anyone to persevere with the AIphorisms
schainks 5 hours ago [-]
It takes true corporate dedication to publish technical thought leadership on a page that actively fights your ability to read it.
solenoid0937 13 hours ago [-]
So this is just delegating certain work to dumber models? I certainly wouldn't use Gemini 2.5 Flash (!!?) for code writing as suggested.
I've never had an issue with Codex or Claude reading massive files, they're really good at precise greps.
jampa 12 hours ago [-]
> I've never had an issue with Codex or Claude reading massive files
Reading files isn't a problem they want to solve. The idea seems to be using a cheaper model to "scout" for the intended code, instead of an expensive one that reads all the things (and spends more tokens / thinks about them).
I think this might be useful because Opus 5 especially tends to over-read. So this looks like an "LLM Bloom filter", telling "hey this is the code you might want to read".
The community edition was open sourced when the creator got hired by OpenAI a few months ago.
jimmySixDOF 26 minutes ago [-]
The creator (Eric Provencher) worked for Unity before that and he is exploring game development tooling etc (with an open token budget) its fun to see where things are heading in the on-demand future of handsfree blender output and animation
hankbond 8 hours ago [-]
> "LLM Bloom filter"
very good way to put it.
lxgr 3 hours ago [-]
It's not a great analogy, since Bloom filters are guaranteed to not have any false negatives, only false positives.
That property would be very useful here, but I don't see how it would be achievable using LLMs.
ramraj07 8 hours ago [-]
Pretty sure claude code already delegates reading a large codebase to haiku subagents.
Artimus 8 hours ago [-]
As of July, the explore agent inherits the parent model, capped at opus.
So fable and opus use opus to explore. Sonnet uses sonnet.
I replaced my built in explore agent with one hardcoded to sonnet low effort.
Im now fascinated by how exactly Bcherny generated that message using claude. Like is the entire issue resolution automated, or still guided in someway?
re-thc 4 hours ago [-]
It did used to use Haiku but that model is now too too far behind…
3 hours ago [-]
shubhamjain 11 hours ago [-]
> So this is just delegating certain work to dumber models? I certainly wouldn't use Gemini 2.5 Flash (!!?) for code writing as suggested.
Why not, though? I started using OpenCode + GitHub Copilot, but I burned through my Claude Sonnet quota in just three days. I switched to GPT-5.4-mini, which uses far fewer tokens, and it’s often just as good as Sonnet. I think optimizing token usage is a good exercise. We often assume a model will be terrible, when it really isn’t.
solenoid0937 6 hours ago [-]
My code being correct 99% of the and costing 5x more tokens is vastly preferable to my code only being correct 90% of the time and using fewer tokens.
CuriouslyC 59 minutes ago [-]
This is true, but with the newer generation of models you don't want to do this yourself, they're really good at orchestrating and triage. Run Fable or Astra on low/medium, and tell them to come up with a plan then direct subagents using a weaker model (I like GPT 5.6 terra medium) to implement and verify, and review their work.
jurgenburgen 7 hours ago [-]
> and it’s often just as good as Sonnet. I think optimizing token usage is a good exercise. We often assume a model will be terrible, when it really isn’t.
“Often” doesn’t sound great. If the smaller model fails then I just wasted a lot of time and tokens.
lxgr 3 hours ago [-]
I wish I could say this explains a lot about the state of Spotify's apps, but they have been that way since long before AI.
bensyverson 12 hours ago [-]
Yes, this makes little sense. It looks like it's a way to avoid having Claude read or write your code.
And why stop at 90%? I have this one weird trick to reduce Claude Code token use by 100%: use a different harness and model!
13 hours ago [-]
phreack 4 hours ago [-]
Thank you, the article was so verbose I couldn't get the point just by skimming it. And it was this simple...
14u2c 12 hours ago [-]
This does seem to just be a subagents implementation.
jrm4 2 hours ago [-]
Am I missing something? Unless you have infinity money, would it not be very stupid to pay for "precise greps?"
pmdr 6 hours ago [-]
I wish websites would stop messing with the scrolling behavior.
dotancohen 2 hours ago [-]
After seeing a few comments about scrolling on that page, curiosity got the better of me and I dared open TFA.
I found no problem scrolling. Either Firefox on Android doesn't support whatever trickery they are doing, or they reverted it.
retsibsi 15 minutes ago [-]
On desktop, it's basically forced heavy smoothscrolling, with an attempt to replicate real motion by gradually slowing to a stop. Horribly laggy for those of us sensitive to such things.
PinkSheep 7 minutes ago [-]
It's still there when Javascript is enabled. Firefox/154.0 on desktop.
landr0id 2 hours ago [-]
I used to date a girl who was a designer and had to plead with her that breaking behaviors I'm used to is not a positive UX.
"But it adds motion" was the classic reply.
bluGill 1 hours ago [-]
The question is, are we doing this page for the sake of art or are we doing this for the sake of spreading and sharing information? These are two different domains with different requirements as to how the page works.
There is nothing wrong with art. It is a great thing, I hope to see more art in the world. However, if the goal is sharing information, which is supposedly the goal of a fairly large number of websites, art needs to be secondary to sharing that information. And then those things that add motion, whatever: you're adding art and harming the real purpose.
PinkSheep 10 minutes ago [-]
Allow me to put it more bluntly: if you are feeling like an artist, don't meddle with UX.
The comment above shows this type of people don't understand it. Yet they are the ones getting hired due to formal qualification. Those who do are at the intersection of design, engineering and computer science. The latter give you enough experience to understand the culture to recreate familiar _look and feel_.
amsterdorn 3 hours ago [-]
+1, this bothers me more than it should.
jnwatson 13 hours ago [-]
It cuts token usage because they are using a different service with a different token budget for the reader/code writer tasks.
You can also just delegate this to subagents with Claude Code (though you have a more limited choice of models unless you swap the cheaper models via OpenRouter).
I'm OK using a dumb model as a smart grep, but the whole point of using the frontier models is using their intelligence for the hard stuff like coding.
CaveTech 10 hours ago [-]
You can also use hooks to force the use of subagents for this. The stack here is entirely unnecessary
spockz 8 hours ago [-]
I’m currently on codex can it also this? I find it hard to make accurate benchmarks in token use for these kind of changes because I don’t keep repeating the same tasks.
Basically I run in luna high or extra high continuously with a terra subworker dedicated to planning and difficult research questions. Then I end with a final review in Terra or Sol depending how big the feature is.
andai 1 hours ago [-]
So it's giving summaries to the main agent instead of source code? Is that it?
> If Claude needs to make edits based on the analysis, it still has to read the specific section directly.
Yeah iirc the sysprompt tells it that it must always (re-)read a file before editing it. I noticed this because I customized Claude Code to just read all source at startup (if the project was only a few thousand lines of code). And it would still read the stuff it had already read! Because the system prompt explicitly told it to...
sognetic 7 hours ago [-]
There are a bunch of approaches that do this kind of thing to reduce token usage ("semble" came to mind, technically different but functionally similar) but their performance is usually mixed because the models haven't been RL tuned to use them as they have the default tool suite. Combine that with the incentive by Anthropic et al. to make you actually burn through as many tokens as possible and I don't see these kind of things becoming mainstream yet. Maybe once we reach a point where consumers actually care about cost (because LLMs have become commoditized) these cost-reduction approaches become relevant enough to actually finetune the model with them.
faangguyindia 11 hours ago [-]
It doesn't work well in practice.
Try it yourself, use a big model like Opus or Sol to implement everything by first making a plan using plan mode.
Then try distributing the task to a cheaper models like Luna Max or Gemini Flash 3.8.
During planning, the big model already reads the relevant files in context, while giving a smaller model a slice of work itself requires the big model to reason about the task distribution, review, etc.
So do you really save on tokens?
majormajor 9 hours ago [-]
When I've tried it using API-rate billing I've saved on $$ on the tasks where I split planning+execution into Sol+Terra or Terra+Luna even. I wasn't paying attention to the token count, I was paying attention to the spend.
klodolph 11 hours ago [-]
> Try it yourself, use a big model like Opus or Sol to implement everything by first making a plan using plan mode.
When I do this, I can have it use cheap subagents with models like Luna to read the relevant files.
MPSimmons 10 hours ago [-]
Do you have the cheap models summarize the files? How do they get the relevant information to the bigger models?
donk8r 5 hours ago [-]
[flagged]
skybrian 11 hours ago [-]
Maybe not, but I like to review the plan anyway so that I'm less surprised by what it actually did.
shikck200 9 hours ago [-]
Side note: PLEASE DONT hijack scroll. Its just a bad bad thing to do. Please dont.
Banditoz 12 hours ago [-]
Oh dear, why does this website override scrolling behavior?
orliesaurus 12 hours ago [-]
glad im not the only one that enabled screen reader mode to scan the article for some goodies
tobinfekkes 10 hours ago [-]
My first thought too! I couldn't put up with it. Left quickly.
gruez 12 hours ago [-]
>The benchmarks
>Tested against a Java monorepo across four scenarios, measuring tokens Claude would consume reading files directly vs. consuming the bulk-reader's summary or writing code via the code-writer. Mean bulk-read savings were around a whopping 90%.
>The code-write scenario is harder to measure in tokens because without shunt, Claude both reads the reference files and generates the output as expensive output tokens. With shunt, the code goes straight to disk, Claude never sees it.
So nothing about accuracy or actual performance? At least run against DeepSWE bench or something.
gilmtz 11 hours ago [-]
> The worker model found surface-level patterns but missed a subtle thread-safety bug in my testing. Claude spotted it in seconds once given the right context.
So the actual performance was bad.
It might be an acceptable trade off tho. If token costs become prohibitive, then using a meat engineer to actually debug could be cheaper.
tolugenius 13 hours ago [-]
Isn't this a somewhat standard multi-model setup? there's nothing ground breaking here, just delegate claude to plan -> smaller model for implementation.
CharlesW 10 hours ago [-]
Very standard in all coding harnesses/models I've worked with, with the bonus that everything listed in the "What doesn't work in Portal by Spotify" section still works. I've been watching Opus spin off work to Fable and Sonnet as appropriate all day.
spockz 8 hours ago [-]
Do you have specific instructions that cause this or did it come out of the box? Is it also when using normal prompting or only when you set a goal?
In codex I don’t see this behaviour despite having added the instructions to do so to my agents file. I also let that agents file be reviewed by Sol to come up with the right phrasing but no luck so far.
florians 9 hours ago [-]
Can you name some harnesses?
amelius 4 hours ago [-]
I want a local model that I talk to, and that delegates work to whatever model it deems adequate, simplifying and perhaps even anonymizing the prompts/data as it goes.
addedlovely 52 minutes ago [-]
Honestly would expect claude do be doing this automatically, seems like a low handing optimisation just sat there.
Here is another technique to save tokens: allow the model to read a skeleton of the source code before reading the code, to give it an index into the code so it can read targeted chunks.
There is a tool that uses ripgrep and treesitter that does this [1], adapted from the maki coding agent.
Aider pioneered this with the "repo map" which works tremendously well.
ZeWaka 10 hours ago [-]
Yep, there's also prewalk.
sandos 6 hours ago [-]
Isn't this already done in harnesses? I mean I see Terra or Sol uing Luna all the time for tasks when using copilot.
FelineStateMach 12 hours ago [-]
I sometimes get jumpscaped at the thought of older or less proven models used in enterprise settings. I understand the devex ergonomics argument; I'm not a fan of profiles concepts typically if trodding into delegation.
jokethrowaway 7 hours ago [-]
If you want an expensive model to reason on your files, you need to give them your files.
If you think a cheap model is smart enough to filter information to give to your expensive model, you can save some money. If you think your cheap model is smart enough to format your expensive output, you can save some money.
In practice, this didn't work well until Qwen 3.8.
Qwen 3.6 and (abliterated) Gemma 4 were almost there but still making mistakes.
hexo 2 hours ago [-]
What a "smart" website that steals mouse wheel.
thewhitetulip 2 hours ago [-]
Are such things really helping reduce tokens? I see graphify being suggested as a graph db for avoiding greps
kotaKat 3 hours ago [-]
So they're using this to finally implement AirPlay 2 support, right?
Right?
Rules for thee...
shevy-java 3 hours ago [-]
> By 2028, AI coding costs are expected to blow past the average developer's salary. A quarter of engineering leaders already burn $200–$500 per developer per month on tokens.
Wasn't the AI promise to save costs? So it was a lie.
bluGill 1 hours ago [-]
We can't know if it's a lie or not until we know what the productivity difference is.
Measuring productivity is, of course, a hard problem and I'm going to leave this completely out of this comment.
bakugo 8 hours ago [-]
I cut my Claude Code token usage by 100% by writing the code myself.
Zambyte 38 minutes ago [-]
I cut my Claude Code token usage by 100% by writing the code with Qwen 27B on my own GPU.
dotancohen 1 hours ago [-]
That saves on the monetary budget. How do you see it affecting your time budget?
avazhi 11 hours ago [-]
Dang, not even Spotify care enough to not write AI slop articles.
We’re fucked.
kristianp 5 hours ago [-]
They should use their portal to de-claude the writing.
pmontra 7 hours ago [-]
I noticed
> The modes are the load-bearing piece:
Why do people write like LLMs? Maybe they delegate all the work to a LLM and don't have the time or the will to edit the copy. How about telling another LLMs to replace at least the most common LLM patterns with something human looking?
eterm 4 hours ago [-]
I don't feel like this was a piece by someone who has used LLMs too much.
I'm fairly confident this is just LLM writing the majority, possibly tweaked by a human.
Opening line is a form of, "It's not X, it's Y": ".. isn't thinking. It's I/O".
Then the start of the second paragraph is that weird breathless kind of writing:
> Reading five files to answer a question about one method. Generating a test file that follows the exact same pattern as the twenty test files next to it.
More "It's not X, it's Y": The seat license isn't what hurts, it's the tokens.
The softly pressed insistence that AI is worth it, really: "The tooling pays for itself but only if..."
stephbook 9 hours ago [-]
I could only read one sentence, then skipped to another paragraph. Sure enough the scroll bar revealed a suspiciously long article. No human would ever write this much bland bullshit.
Next sentence was also an AI juxtaposition. Done.
blehn 11 hours ago [-]
To be fair, Spotify was a slop factory long before LLMs started doing it
lowbloodsugar 8 hours ago [-]
Spotify? The company pushing AI “music” into people’s feeds to save money on royalties? That Spotify?
vagabund 9 hours ago [-]
Yeah, stopped reading after the first paragraph. It's really so disrespectful to your audience.
florians 9 hours ago [-]
It‘s someone from R&D probably not so official
prmoustache 9 hours ago [-]
They are in the business of selling audio slop streams, why are you surprised?
florians 9 hours ago [-]
True
3371 6 hours ago [-]
codegraph + context mode are all I need.
tetrisgm 13 hours ago [-]
This is just offshoring but for models
cute_boi 12 hours ago [-]
STOP hijacking my scroll. I don't know why chrome even allow such behavior?
And, I can't believe this is from official spotify.... What a joke.
throooooo 9 hours ago [-]
Smooth as butter with Firefox on Android. As for why scrolljacking is "allowed", web devs will always find new ways to do annoying things and work around browser constraints.
pmontra 5 hours ago [-]
I confirm that. Then I opened the page in Chrome on Android and it scrolls nicely there too. So maybe they broke only desktop browsers.
1saadcodes 7 hours ago [-]
I swear. Put me off so bad I didn't even bother reading the rest of the article. It's even more infuriating that this is by a company this big
simianwords 8 hours ago [-]
Not only does this study not control for quality of output, it doesn't even show a cost reduction. Its a very low signal article.
I've never had an issue with Codex or Claude reading massive files, they're really good at precise greps.
Reading files isn't a problem they want to solve. The idea seems to be using a cheaper model to "scout" for the intended code, instead of an expensive one that reads all the things (and spends more tokens / thinks about them).
I think this might be useful because Opus 5 especially tends to over-read. So this looks like an "LLM Bloom filter", telling "hey this is the code you might want to read".
The community edition was open sourced when the creator got hired by OpenAI a few months ago.
very good way to put it.
That property would be very useful here, but I don't see how it would be achievable using LLMs.
So fable and opus use opus to explore. Sonnet uses sonnet.
I replaced my built in explore agent with one hardcoded to sonnet low effort.
https://github.com/anthropics/claude-code/issues/72940
Why not, though? I started using OpenCode + GitHub Copilot, but I burned through my Claude Sonnet quota in just three days. I switched to GPT-5.4-mini, which uses far fewer tokens, and it’s often just as good as Sonnet. I think optimizing token usage is a good exercise. We often assume a model will be terrible, when it really isn’t.
“Often” doesn’t sound great. If the smaller model fails then I just wasted a lot of time and tokens.
And why stop at 90%? I have this one weird trick to reduce Claude Code token use by 100%: use a different harness and model!
I found no problem scrolling. Either Firefox on Android doesn't support whatever trickery they are doing, or they reverted it.
"But it adds motion" was the classic reply.
There is nothing wrong with art. It is a great thing, I hope to see more art in the world. However, if the goal is sharing information, which is supposedly the goal of a fairly large number of websites, art needs to be secondary to sharing that information. And then those things that add motion, whatever: you're adding art and harming the real purpose.
The comment above shows this type of people don't understand it. Yet they are the ones getting hired due to formal qualification. Those who do are at the intersection of design, engineering and computer science. The latter give you enough experience to understand the culture to recreate familiar _look and feel_.
You can also just delegate this to subagents with Claude Code (though you have a more limited choice of models unless you swap the cheaper models via OpenRouter).
I'm OK using a dumb model as a smart grep, but the whole point of using the frontier models is using their intelligence for the hard stuff like coding.
Basically I run in luna high or extra high continuously with a terra subworker dedicated to planning and difficult research questions. Then I end with a final review in Terra or Sol depending how big the feature is.
> If Claude needs to make edits based on the analysis, it still has to read the specific section directly.
Yeah iirc the sysprompt tells it that it must always (re-)read a file before editing it. I noticed this because I customized Claude Code to just read all source at startup (if the project was only a few thousand lines of code). And it would still read the stuff it had already read! Because the system prompt explicitly told it to...
Try it yourself, use a big model like Opus or Sol to implement everything by first making a plan using plan mode.
Then try distributing the task to a cheaper models like Luna Max or Gemini Flash 3.8.
During planning, the big model already reads the relevant files in context, while giving a smaller model a slice of work itself requires the big model to reason about the task distribution, review, etc.
So do you really save on tokens?
When I do this, I can have it use cheap subagents with models like Luna to read the relevant files.
>Tested against a Java monorepo across four scenarios, measuring tokens Claude would consume reading files directly vs. consuming the bulk-reader's summary or writing code via the code-writer. Mean bulk-read savings were around a whopping 90%.
>The code-write scenario is harder to measure in tokens because without shunt, Claude both reads the reference files and generates the output as expensive output tokens. With shunt, the code goes straight to disk, Claude never sees it.
So nothing about accuracy or actual performance? At least run against DeepSWE bench or something.
So the actual performance was bad.
It might be an acceptable trade off tho. If token costs become prohibitive, then using a meat engineer to actually debug could be cheaper.
In codex I don’t see this behaviour despite having added the instructions to do so to my agents file. I also let that agents file be reviewed by Sol to come up with the right phrasing but no luck so far.
> The modes are the load-bearing piece:
lol
There is a tool that uses ripgrep and treesitter that does this [1], adapted from the maki coding agent.
[1]: https://github.com/ninjaxtools/treesitter-index
If you think a cheap model is smart enough to filter information to give to your expensive model, you can save some money. If you think your cheap model is smart enough to format your expensive output, you can save some money.
In practice, this didn't work well until Qwen 3.8.
Qwen 3.6 and (abliterated) Gemma 4 were almost there but still making mistakes.
Right?
Rules for thee...
Wasn't the AI promise to save costs? So it was a lie.
Measuring productivity is, of course, a hard problem and I'm going to leave this completely out of this comment.
We’re fucked.
> The modes are the load-bearing piece:
Why do people write like LLMs? Maybe they delegate all the work to a LLM and don't have the time or the will to edit the copy. How about telling another LLMs to replace at least the most common LLM patterns with something human looking?
I'm fairly confident this is just LLM writing the majority, possibly tweaked by a human.
Opening line is a form of, "It's not X, it's Y": ".. isn't thinking. It's I/O".
Then the start of the second paragraph is that weird breathless kind of writing:
> Reading five files to answer a question about one method. Generating a test file that follows the exact same pattern as the twenty test files next to it.
More "It's not X, it's Y": The seat license isn't what hurts, it's the tokens.
The softly pressed insistence that AI is worth it, really: "The tooling pays for itself but only if..."
Next sentence was also an AI juxtaposition. Done.
And, I can't believe this is from official spotify.... What a joke.