Luna is unusable garbage. When I see people in threads talking about how useful Luna is for all of their tasks and it's so cheap and fast, it reads to me like people relating anecdotes about how tasty the garbage scraps they're eating out of the dumpster behind McD's are. Sol Max is the threshold of "just barely usable", and even then it's certainly not what the people are hyping it up to be.
> But GPT also offers a $100 plan with five times the usage limits. And how long would that last me?
Sol usage is basically unlimited on the $100 plan if you're human-in-the-loop, reviewing the code, and not doing some useless Gas Town crime against humanity.
I’ve been slowly converting my org to use opus 5.5 as default over sonnet and the difference is night and day. More usage, because it does shit better the first time. Less cost, because it does shit better the first time. It’s literally been the thing that’s kicked our org in the pants to actually adopt agentic methodology at scale.
pretty much this, though i did notice a rebound where it can make people meander further into overengineering things, creating a bit of an induced demand
We have dramatically different experiences. I use specification driven design. I have Sol or Opus designed a specification, the plan, and the task breakdown. I then use Luna as the implementation agent. It is told to do test driven development. I have tasks to run tests on just the modified code. Luna knocks it out of the park pretty much every time.
My biggest complaint is that it melds IO concerns such as timeout, with business requirements. Normally, I just to put that in the IO layer. After that, it’s basically done.
Given my pattern, a new feature normally involves Luna creating 20 to 50 files. After it thinks it’s done with its work, a Sol agent will review the code. This loop goes twice. If there’s still issues, I have to deal with them.
I’ve not had to deal with them.
This when I’m at work. At home I do pretty much this but with GLM 5.3 Flash. Even less money.
I have found in my own benchmarks that a simple prompt which has a single constraint is reliably ignored by Luna, even on Max, even with another Luna agent reviewing with instructions to check the output against the constraint, at which point they OK it anyways. There is not a single task of any scale I can trust it not to fuck up.
Oh, fuck off. For one, I work in an LLM startup and work on the harness for our own models, and we're 8-digit profitable, so I'd say I know a thing or two about prompting. For two, there is no prompt that makes Luna work. It ignores your fucking prompt. The OP related how Cursor's model has a quotation mark tic and blatantly ignored a single constraint not to use quotation marks. Luna also has the same deficiency. You can give it a single paragraph prompt with a single sentence constraint not to do X and it will do X every time if it's in the average path for the prompt.
It just gets worse as your codebase grows with more code and more files especially. It's like a human developer who is under intense time pressure. If the codebase is large, it might miss an existing function and implement a second one... or it might miss the fact that a database table already exists to solve its current problem and create another one. The solution is to keep the codebase as simple and small as possible and name everything as intuitively as possible with proper separation of concerns. Same principles which were useful before AI are still useful with AI.
I don’t understand how it will ever overcome something like not replicating an existing function. It can’t possibly have full context on a massive codebase at all times so additional prompt runs checking for existing functionality would be necessary.
Even scarier is something like a legacy change made for a specific client, like “our biggest client needs checkboxes as the UI, do not switch it to a dropdown.” was in a commit message 2 years ago, AI will just overwrite that without thinking.
If your files are named well and codebase is of reasonable size, it will find them and re-use them. I haven't experienced the problem of duplicate functions at all on any of my personal projects. The trick is that my code is separated into distinct modules in a clear hierarchy with one-way dependency; no module has more than 5k lines total, no more than 20 files or so. Basically, I treat every part of my system as an independent, fully self-contained black-box product which could potentially be used by third-parties in different business domains. The interface of each module is generally quite simple and it doesn't expose any internal details.
My AI agent never has to work with more than 5k lines of code and like 20 files at a time; and most are much smaller than that; like 1k or 2k lines... Even though one of my projects is almost 30k lines, my AI agent never has to consider more than 5k.
There are solutions for this that those of us with the rare combination of experience, time and management buy-in are using - but they’re scary to people all-in on AI tools.
I’m talking about deterministic checkpoints and hooks. In every environment in which I need to use a coding agent I have had to essentially build a harness outside of the harness to be measurably productive. If you’re not using deterministic tools to box in what the agents are capable of doing, the problems you describe are ten times more rampant than anyone wants to admit.
Most of these issues are vastly improved or mitigated by adding clear instructions in AGENTS.md.
I follow a specific process with agents, and it works reasonably well:
1) describe my intended feature or change and then say “please recapitulate my intention and write an implementation plan”
2) read the plan carefully and refine it, make any corrections
3) tell the agent to go, but I check in frequently as it’s going. I watch the stream of thought and make course corrections or pull it out of rabbit holes
4) carefully review the result. Checking that tests actually fail, removing unnecessary changes
5) add instructions in AGENTS.md if I’ve found a new behavior that needs redirection
It genuinely astonishes me that there are still people such as yourself on HN asking this question.
I understood there were still people asking this 12 months ago. But still?
You could only possibly be doubting the time savings if you simply haven't used agentic development, whether Claude Code or other.
You have to understand, by now you basically sound like someone asking how much time you could be saving by writing in Python, instead of just jumping right in and coding assembly yourself.
If you're still asking the question, you just need to bite the bullet and try it.
I've been doing software engineering for 20 years and approximately half of my total work output has been in the last 2 years. Once you get it set up and maintain it regularly it's easily three to ten times faster
Two to three days of up front planning results in a 100x plus productivity gain. Honestly at this point writing code is no longer a blocker for me, it’s more how many agents can I keep running at the same time, how much time can I spend testing and verifying products, etc…
Seemed like a reasonable ask. So far, a couple people said 3x to 4x. One said 100x. Big jump. I guess it depends on your baseline coding ability before AI.
I used cursor for a project built on a framework with a huge API that I hadn't studied exhaustively. I used a similar workflow with grok for the planning and composer for the implementation. You have to be vigilant, ask questions about the plan, inspect every line of output, and ask for do-overs. At the end I estimated that I would have needed 5-6 months without the coding agent instead of six weeks. I didn't develop as much knowledge of the API as I would have without the coding agent, but I doubt that my employer would have knowingly accepted a longer schedule in exchange for my education. It's not just junior engineers who are going to miss out with coding agents.
Unlike the OP, this makes using an agent actually sound useful.
My summary of the article: I use a really cheap LLM, and suffer like everyone else using GPT 3.1. This is definitely a throwback to the days not so long ago when LLMs were completely incompetent.
First of all, use Astra with Sol or Opus with Sonnet. Let the bigger model do the high level guiding. Claude Code even has an `--advisor` mode in the CLI. I mix with open weight models as well.
What you want is to branch questions in different agents and this is hard UX.
— Why is this function here?
This question can be but ideally should not be sent to an ongoing chat about a codebase. With some previous context, this question should become a separate "branch"/"fork"/"node" - whatever you call it. You can start a new session, share some context from previous chat and ask the question.
The reason is, and forgive me for assuming, if you are in a code/build flow, the LLM may go ahead and take action because it has a lot of previous chats with instructions to edit files.
In my experience the best way to not have these issues is to branch a new session with some context from which file you were looking at or your previous questions but as a read-only investigation.
How people are getting anything done at all with less than 5-6 claude max and 4-5 codex pro max plans and codex-lb and better ccflare juggling weekly limits at all times, I will never know.
> For comparison, let’s take two $20 subscriptions, one for GPT and one for Cursor. With gpt-6.1-sol, my 5-hour limit runs out after just a few requests. If I ask it to change a couple of lines in a readme file, that uses up 10% of the limit. If I ask it to change something in a large codebase, the entire limit gets used up just reading dozens of files, without writing a single line of code.
Either this is hyperbole or something is wrong. I tried 6.1 Sol for a significant chunk of non-critical work this week and did not encounter usage depletion like this. I ran several tests that went upward of 450K tokens without depleting the 5-hour window, though I didn’t pay attention to how much.
Either this person is exaggerating, or something is extremely wrong with their harness.
I’m equally confused that their solution was to switch to Luna and try to use the small and fast model for big coding tasks. They could have switched to Claude $20/month and had ample Opus usage right new.
Most of the complaints in this article could have been avoided by not using Luna and not using a configuration that’s blowing their quota out for unclear reasons.
It depends a lot on how projects a structured. Large monorepos may need a bunch of tool calling, particularly if the boundaries within different parts of the repo are blurred.
Yeah I've never encountered any of that with Opus. It's pretty good at following instructions, and is also careful re anything sensitive or dangerous. Like just a couple days ago a Telegram bot I have it working on made a reply to a message in a chat that it shouldn't have, and I told it to fix the issue and delete the message (I don't have delete permission in the chat). It did the fix and stopped, saying it won't do anything that touches my service account; I had to tell if specifically again to "do the delete" before it did via the bot. Just one of many cases, and the reprompting can sometimes be annoying but I'm also pretty appreciative that there's way less of a chance it'll do something that has me tearing my hair out.
> Inability to change the response style
In recent months, I’ve been noticing a new pattern in sentence structure more and more often. Here are some examples:
There’s a difference between "I read the text" and "I understood the meaning of the text".
We too often mistake "I’m used to this" for "I like this".
The path from "I’m afraid of making a mistake" to "I’m ready to try" can take years.
It’s worth taking the time to setup a style guide for your agent to remove llm-isms like this. Somewhat paradoxically, you can even have the agent help write it. Just include a couple of snippets of “bad” phrasing from previous chats, add some commentary about why it’s bad, and what to replace it with, and put that in your system prompt. I could provide examples but the whole point is that you can tailor it to exactly how you want it. This has the added bonus of being a quick sanity check for model quality. If you start noticing llm-ism appear, then likely the model is not following your instruction’s and the thread should be discarded/you need to switch to a better model
Oh there’s probably some system prompt built in to the harness adding those then. I had to patch the js of the harness I’m using to remove stuff like that from the system prompt to regain full control of the style
Or maybe just luna too dumb idk. I’ve even had good success with a style guide on Bonsai 2 27B though so I doubt luna is dumber than that
some people are not ready to read and accept this but I will say it anyway: stop reading code and trust that it does what you asked to do, focus on high level architecture and human description of what the system is doing. The only exception to this is if what you are doing carries a significant amount of risk that can't be mitigated with a follow up PR, for example launching a rocket or controlling an airplane.
You’re using the wrong model for the problem. “Fast and cheap” agents like Luna are good for tightly scoped changes but won’t understand the “why”. Astra or Sol wouldn’t have that issue.
Idk how you are running out of budget so fast. My usage is basically unrestricted tokenmaxxing ("/goal", flagship models at xhigh reasoning, etc) and my monthly burn is single digit thousands of dollars (maybe ~$350/day). Granted, my employer foots the bill so I don't care at all. But the return-per-spend is easily worthwhile and I'm not worried about the cost at these ratios.
Nerves of steel? Not even close.
I think 90% of the article is the author complaining about (predictably) bad small-model behavior. The large models are much better!
Yea honestly I used to use claude sonnet all the time on pro plan and it had problems like this, but moved up to a max plan and opus makes it almost impossible to go back, higher usage limits aren't worth it if they force you to wrestle with ur agent all day instead of getting a ton built and running out of usage in an hour.
You are right and here is my hot take into why working with models is a f pain.
Harness... yes I have one https://github.com/alainnothere/privibe but is not what mine has that the other doesn't but what it doesn't have.
I suspect the whole reason for how bad models accessed through subscriptions tied to a harness of the provider (looking at you copilot) is that microsoft in the case of copilot "builds into the harness and hence into the model" an intention; and I don't have proofs (which qualifies me to start a popular podcast) but I suspect the harness keeps pushing the model to fix an issue as quickly as possible so the service can appear as "it just bam fixed the issue".
The "sitius altius and fortius" of the technobro is what you see in the tv ad "copilot check my git and fix a bug", how stupid do you think someone has to be to believe it works like that? my instructions to model say that I HATE urgency to make changes, we are researching and until we figure out causes, and understand all the mechanism involved AND THEN AND ONLY THEN we can check what's the actual intention, what business wants... then we can talk about a fix.
Grab a harness that injects the minimum possible and let the agent be and you will see how much difference there is in the quality of the model response.
> But GPT also offers a $100 plan with five times the usage limits. And how long would that last me?
Sol usage is basically unlimited on the $100 plan if you're human-in-the-loop, reviewing the code, and not doing some useless Gas Town crime against humanity.
What are some uses for which you found Luna to be unusable garbage?
From my side, I use Harbor to score tasks and Luna certainly performs when the prompt is either well or overspecified.
My biggest complaint is that it melds IO concerns such as timeout, with business requirements. Normally, I just to put that in the IO layer. After that, it’s basically done.
Given my pattern, a new feature normally involves Luna creating 20 to 50 files. After it thinks it’s done with its work, a Sol agent will review the code. This loop goes twice. If there’s still issues, I have to deal with them. I’ve not had to deal with them.
This when I’m at work. At home I do pretty much this but with GLM 5.3 Flash. Even less money.
If it's used for that then using anything more powerful is just inefficient usage of your tokens.
Luna medium effort is very slightly better than its output and completes tasks in 5-10x less time.
for myself anything over medium overthinks and is worse.
Even scarier is something like a legacy change made for a specific client, like “our biggest client needs checkboxes as the UI, do not switch it to a dropdown.” was in a commit message 2 years ago, AI will just overwrite that without thinking.
My AI agent never has to work with more than 5k lines of code and like 20 files at a time; and most are much smaller than that; like 1k or 2k lines... Even though one of my projects is almost 30k lines, my AI agent never has to consider more than 5k.
I’m talking about deterministic checkpoints and hooks. In every environment in which I need to use a coding agent I have had to essentially build a harness outside of the harness to be measurably productive. If you’re not using deterministic tools to box in what the agents are capable of doing, the problems you describe are ten times more rampant than anyone wants to admit.
I follow a specific process with agents, and it works reasonably well: 1) describe my intended feature or change and then say “please recapitulate my intention and write an implementation plan” 2) read the plan carefully and refine it, make any corrections 3) tell the agent to go, but I check in frequently as it’s going. I watch the stream of thought and make course corrections or pull it out of rabbit holes 4) carefully review the result. Checking that tests actually fail, removing unnecessary changes 5) add instructions in AGENTS.md if I’ve found a new behavior that needs redirection
I understood there were still people asking this 12 months ago. But still?
You could only possibly be doubting the time savings if you simply haven't used agentic development, whether Claude Code or other.
You have to understand, by now you basically sound like someone asking how much time you could be saving by writing in Python, instead of just jumping right in and coding assembly yourself.
If you're still asking the question, you just need to bite the bullet and try it.
My summary of the article: I use a really cheap LLM, and suffer like everyone else using GPT 3.1. This is definitely a throwback to the days not so long ago when LLMs were completely incompetent.
What you want is to branch questions in different agents and this is hard UX.
— Why is this function here?
This question can be but ideally should not be sent to an ongoing chat about a codebase. With some previous context, this question should become a separate "branch"/"fork"/"node" - whatever you call it. You can start a new session, share some context from previous chat and ask the question.
The reason is, and forgive me for assuming, if you are in a code/build flow, the LLM may go ahead and take action because it has a lot of previous chats with instructions to edit files.
In my experience the best way to not have these issues is to branch a new session with some context from which file you were looking at or your previous questions but as a read-only investigation.
Either this is hyperbole or something is wrong. I tried 6.1 Sol for a significant chunk of non-critical work this week and did not encounter usage depletion like this. I ran several tests that went upward of 450K tokens without depleting the 5-hour window, though I didn’t pay attention to how much.
Either this person is exaggerating, or something is extremely wrong with their harness.
I’m equally confused that their solution was to switch to Luna and try to use the small and fast model for big coding tasks. They could have switched to Claude $20/month and had ample Opus usage right new.
Most of the complaints in this article could have been avoided by not using Luna and not using a configuration that’s blowing their quota out for unclear reasons.
It’s worth taking the time to setup a style guide for your agent to remove llm-isms like this. Somewhat paradoxically, you can even have the agent help write it. Just include a couple of snippets of “bad” phrasing from previous chats, add some commentary about why it’s bad, and what to replace it with, and put that in your system prompt. I could provide examples but the whole point is that you can tailor it to exactly how you want it. This has the added bonus of being a quick sanity check for model quality. If you start noticing llm-ism appear, then likely the model is not following your instruction’s and the thread should be discarded/you need to switch to a better model
> Okay, let’s move the rule to the top. In the next reply, right in the same chat, I get text with quotation marks again.
Or maybe just luna too dumb idk. I’ve even had good success with a style guide on Bonsai 2 27B though so I doubt luna is dumber than that
Nerves of steel? Not even close.
I think 90% of the article is the author complaining about (predictably) bad small-model behavior. The large models are much better!
I suspect the whole reason for how bad models accessed through subscriptions tied to a harness of the provider (looking at you copilot) is that microsoft in the case of copilot "builds into the harness and hence into the model" an intention; and I don't have proofs (which qualifies me to start a popular podcast) but I suspect the harness keeps pushing the model to fix an issue as quickly as possible so the service can appear as "it just bam fixed the issue".
The "sitius altius and fortius" of the technobro is what you see in the tv ad "copilot check my git and fix a bug", how stupid do you think someone has to be to believe it works like that? my instructions to model say that I HATE urgency to make changes, we are researching and until we figure out causes, and understand all the mechanism involved AND THEN AND ONLY THEN we can check what's the actual intention, what business wants... then we can talk about a fix.
Grab a harness that injects the minimum possible and let the agent be and you will see how much difference there is in the quality of the model response.