back
▲ 113 points

Launch HN: Bullet (YC S26) – A Faster Coding Agent

codewithbullet.com
by adi1·3d ago·88 comments·view on hn ↗
Hi HN! We’re Adi and Alex, founders of Bullet, a faster coding agent.

Bullet started in a senior year dorm. We were fresh out of working at AppLovin and Citadel, and naturally thought we were on a sure path to startup success. We were going to use our skills optimizing stock pricing calculation speeds and agent document context to take over the world. So, Bullet started as an AI hedge fund, a browser-use agent, synthetic financial data (oof), a mobile IDE, and a bunch of other things. We wanted to build something people wanted, but it seemed like everything we built was just terrible, useless, or both.

So, we decided to do something completely different, something completely out of the blue, something that no one had ever done before. Solve a problem we actually had.

Over the course of six pivots, we suffered. Throughout all of our adventures, one final boss kept getting in our way. Claude Code and his little brother Codex. We were spending hours waiting for coding agents like Claude Code and Codex, and got so frustrated to the point that I downloaded the Claude Code whip. We had spent months of time waiting for six codebases-worth of useless coding agent work.

Lightbulb moment. There’s nothing more noble than destroying the institutions! Let’s take on Claude Code and Codex, we can do it! Piece of cake!

And so, Bullet started off as a side project. We used the Claude Code to improve the Claude Code:

1. Model routing. Do you regret giving a task to Fable when it could have literally been done by Sonnet?

2. Targeted code + context search. We think embedding the whole repo is dumb. We also think sticking the whole context (or compressed context) in chat is dumb. So we do faster and better greps over both.

3. Aggressive context hygiene. Tool output is bounded, stale screenshots disappear, we don’t re-read files…the garbage never floods the model.

4. Efficient turns. Batch independent investigation, make one surgical edit, then perform one focused verification. Internal measurement showed 16% fewer round trips and 27% lower cost.

5. The Flash. We prayed to Barry Allen for speed.

And thank the Flash, he gave us speed! On SWE-bench Verified, Bullet resolved 479/500 (95.8%) in one attempt, averaging 119s per task, 35–67% faster than mini-SWE-agent + Fable/Sol depending on task. Full results and methodology here (https://www.codewithbullet.com/blog/benchmark-results.html)

Eventually we started using it every day and never went back.

Listed above were just some of the things about Claude Code that frustrated us the most, but we are constantly optimizing every day (look at that, maybe we did learn something from our jobs).

In our development, the biggest insight was that model speed matters less than reducing round trips. Independent searches, reads, and commands should happen in parallel, while dependent editing and verification stay sequential. One surprising obstacle was code search, small issues like regex-dialect mismatches caused silent misses and sent agents down completely wrong paths, so we built targeted search with fallbacks and bounded context. The most interesting use case so far has been long iterative work (like benchmarks, data pipelines, and evaluation loops), where each step depends on the last and running multiple agents can’t help as much.

Here’s the video demo (https://www.youtube.com/watch?v=rWVmG5fRKgE)

We hope that you guys try out Bullet if you are suffering with speed as much as we were, and we hope it brings you joy, rainbows, and faster responses. And if it’s terrible, let us know it’s terrible (we’re masochists btw)! We'll be in the comments all day, you can also contact us at bullet@davidhf.com.

You can try it at https://codewithbullet.com.

P.S: we hid a code on the website, see if you can unlock the secret page at the footer, all built with Bullet

88 comments
This is a promising direction! Unfortunately, I think the benchmark result here is essentially meaningless.

I recently discovered this same lesson the hard way. I was trying to get a multi-agent system I was building to improve upon GPQA Diamond scores (system here: http://pellmell.ai). No matter how hard I tried, I could not get any lift. When Fable 5 dropped, it also did not improve upon Opus, and I realized my mistake. The benchmark was saturated!

Now, looking at the result here, I see a similar pattern. Fable is not better than Opus, and the score is ~95%. Notably, this post omits which subagent is being used. Why? An intellectually honest way to tell if this thing really works would be to run that agent and report its score and cost as well.

Going back to my GPQA Diamond lesson, you can see here how a saturated leaderboard behaves https://artificialanalysis.ai/evaluations/gpqa-diamond. Fable gets 92.6% for $0.22 per task while several models score higher for $0.01. I could easily publish a router that “enhances Fable on GPQA Diamond” showing improved score for lower cost, just by implementing a router that picks the model at random!

The breakdown with which model, per-task cost, and methodology is in the "Full results and methodology" link in the post, not omitted. Definitely check it out if you haven't.

On the saturation point, we agree that a 95.8% result on a mature benchmark isn't the main proof, which is why we're currently running against harder, less saturated benchmarks like Terminal-Bench, CursorBench, and SlopCodeBench (going to publish results on these hard benchmarks shortly). Apart from current user experiences, that will show the value of our harness.

The same thing holds for speed. I could build a system that speeds up Fable on GPQA Diamond ~50%, while improving score, by literally randomly selecting between Fable and Gemini 3.7 Flash. (Solve time for Flash is 0.1min and 0.8min for Fable, with Flash having a better score.)

Hell, I could publish better score at 87.5% time reduction by having the router always pick Flash!

So I hit download, and I got a .deb file.

Installing a .deb requires root. Okay, a coding agent that wants root access. I know almost no one is good at supply chain security unless it is their core business, 2500 companies hacked this week for using LiteLLM, etc. So I look around for source code links and come up empty.

So, I am supposed to just give a random binary on a website that may or may not be malware depending on what NPM dependencies are in play, and give it root access, and trust whatever unknown CI/CD system that builds it to be able to execute any commands on my system with root privileges, and I am not even allowed to review the code?

That is an amount of trust I would not even extend to family, and you are asking for it from every single user.

So I asked a local LLM to decompile it for me, the 198 dependencies, and license compliance.

From here I could have it write an extensive test suite, delete the code, have LLM re-write the code to pass all the tests, then open source the result myself.

I am probably not actually going to do this, but anyone could. Proprietary software is no longer a moat, and for something like this it just makes your software very hard to trust. Clean room code laundering is so easy now you might as well open source it yourself.

Hi that makes sense, and yes, will definitely review the security permissions requested by our Linux app, sorry to hear that it was hard to trust. We're definitely thinking about open-sourcing, it's been highly requested.
I think this adds no value. I would stick to OpenCode.

Things I would value: high-fidelity visualization (bonus points for Figma-like visual edits), good tool use (don't force me to tell the model), token efficiency, resource efficiency. Things that are not problems:

* Routing: OpenCode predefines subagents that you can set to appropriate models. * Search: there are AST and embedding-based search MCPs. I use https://github.com/DeusData/codebase-memory-mcp

Thanks for the feedback, we do focus on good tool management, context efficiency, etc. As for routing, ideally it isn't the user who has to route themselves, but a layer that routes for them.

Thanks for the link to the repo! We have looked at things like https://github.com/Graphify-Labs/graphify but haven't had a chance to rigorously evaluate their speed boosts on our harness.

35% faster than swe-mini-agent, nice. You say this is due to somehow parallelizing operations?

I'm using a custom harness based on swe-mini-agent (actually its little brother, their tutorial [0]) and found it way faster than codex (for small tasks) despite being "just bash" in a while loop.

The main difference is that I do the opposite of what you said, i.e. I do dump the context in the prompt. You don't need to grep for what's right in front of you :)

But my repos are small (often smaller than Claude's system prompt!), and I have a script that dumps an "outline" (e.g. function headers and top level vars).

I had an even smaller harness for surgical edits but it was a bit too fiddly and I missed the "let it poke around and figure stuff out" mode of full agentic ones.

What I do miss from that old one though is that it could edit several files simultaneously, in one LLM call. Maybe someday I'll add that back :)

That being said, within a few months everyone who cares about speed will be on Cerebras etc., which will make even the slow harnesses way faster than mine and yours! (I've tested them already and it's insane how fast it is...)

[0] https://minimal-agent.com/

Really cool that you built your own harness off of mini-swe-agent, we took a lot of inspiration from that. We're looking forward to trying out Sol Ultra Fast ourselves too! In our own experience, testing, building, searching, and other tool work still dominate a lot of time, but yes there could be a future where harnesses don't matter at all...but we expect Cerebras will also be super expensive :/
Since I can't get this thing not to annotate its commits with itself as an author, I can't use it.

That should be an option, not forced.

We've since fixed this! There's now an options in settings to remove Bullet as an author.
This is a great point, we're actively working on a fix.

If you’re up for giving it another shot, would love to hear other feedback on the app you have.

> Bullet started as an AI hedge fund, a browser-use agent, synthetic financial data (oof), a mobile IDE, and a bunch of other things.

Is there another pivot coming? This would make me nervous.

No, we like that we're making this for ourselves as well!
Skip signup:

Cmd+Option+I > Console > 'allow pasting'

const onboarding = document.querySelector('#onboarding'); const app = document.querySelector('#app'); onboarding.style.setProperty('display', 'none', 'important'); app.inert = false; app.removeAttribute('aria-hidden'); document.querySelector('#prompt')?.focus();

Also, warning:

# Share chats with Bullet — helps us improve model routing and answer quality

Enabled by default.

Thanks for bringing this up and trying it out! We've disabled Cmd+Option+I in the new version and also have a message during signup about sharing chats with Bullet, let us know if you run into any other issues!
Good to see more harnesses coming out. I think the initial set of "features" that made into harnesses like tool calling, multi-turn chat, MCP, skills and so on can all be optimized. And then much more can be done on top.

I am trying out a two-model approach where small model has access to tools, large model does not. Small model shapes prompts from the repo graph. And repo graph is the only tool that small model has when reading. The small model is already given a set of context from git log, codebase and Markdown/text files (generally design files) depending on the user's prompt.

I do not want to use use multi-turn chat. Small model would instead create fresh prompts for the larger model feeding context and reshaping the original ask every time.

Also, reference repositories can be added for small model to help ask right questions. Once a plan is made by large model, execution is mostly task-by-task, done by small model. Lots of deterministic code doing all this orchestration.

Does anyone think a harness is something that can generate money? I’ve got my own harness. I use it in preference to any of the others. I even turned its tools into an MCP so Claude could use it. It vastly improved Claude’s iteration speed but I still prefer my own UI. If I didn’t work at whatever we’re calling a FAANG these days it’d be on GitHub - and nobody would use it because they’d just point their own AI at it and clone it. It’s just not that hard. Learned a bunch about rust. Got a better harness. Time well spent.
Yes. People don’t want to build their own harness. They want to get stuff done. ‘Dropbox is just rsync’
Would be helpful to make it more clear that this doesn’t require another subscription and is only a harness, not another model.
I use codex cli. It doens't have a UI for linux. I use opencode for that but it doens't work that well with the new 5.6 model suite from openai. Codex is both faster and better. I would have loved if there was a way to use a GUI that worked like codex. Gave this a try. I think this might be it.

Please consider atleast adding MCP support if you can. That'll help

Here you are:

"Codex in ChatGPT desktop app for Linux is now in preview" https://community.openai.com/t/codex-in-chatgpt-desktop-app-...

Thanks! Yes, adding MCP support and preserving skills is definitely a priority for us right now.
Hey just some feedback. I'm giving it a try on a new project I'm spinning up. It does seem faster although I haven't timed it against Claude or anything. I like the integrated browser to immediately see the changes (or see what the agent is doing). Thanks for having Linux support.
Thanks for trying it! If you want to time it against Claude/Codex in app, we have a race lab you can use for that. Good to hear that the Linux support and integrated browser help.
harnesses are becoming the new tech stack, I created my own and will compare it to how bullet operates, I’ve also built and deployed iOS and Android apps with my tool. When you have built something with the tool, other than the tool, it’s stronger proof.
Agree, building real apps with the harness is the strongest proof. Would love to hear where Bullet fell short vs your setup, especially on speed for your builds.
Congrats on the launch. I can't find which model providers are supported? Are you calling the claude-code CLI directly and make bullet usable with anthropic subscriptions like orca or herdr?

I guess however this is a harness and it needs to connect to the API?

Does it work with Codex subscriptions like OMP? I realize others (such as Anthropic) restrict theirs and am not asking about per-call usage.
Thanks! We support a variety of model providers (OpenCode/Codex/Grok/Claude) via their subscriptions and API keys. This can be seen in the app.
Can someone explain how this actually can go faster than other harnesses?

1. Model routing. Do you regret giving a task to Fable when it could have literally been done by Sonnet?

This is the one thing that I can understand.

2. Targeted code + context search. We think embedding the whole repo is dumb. We also think sticking the whole context (or compressed context) in chat is dumb. So we do faster and better greps over both.

Is this just a different system prompt? Why would other harnesses not be able to do it this way given instructions to do so?

3. Aggressive context hygiene. Tool output is bounded, stale screenshots disappear, we don’t re-read files…the garbage never floods the model.

Existing harnesses already don't re-read files that have not changed. And content that is already in the context window is cached tokens and doesn't add significant latency, what am I missing? Removing context from history invalidates KV cache.

4. Efficient turns. Batch independent investigation, make one surgical edit, then perform one focused verification. Internal measurement showed 16% fewer round trips and 27% lower cost.

Isn't this just a specific sub-agent strategy, also addressable with prompting?

I'm genuinely confused about what is mechanically different in this harness that could not be accomplished with a prompt/skill in another harness.

(Not the author but) To your last question, I was able to replicate some of the benefits of my custom harness in Claude by just adding a custom MCP, startup hooks etc.

The issue I ran into is that I was fighting Claude's system prompt, which told it to do things which negated most of the benefits of my setup...

For context my startup hook was "grep def", lol. (Now working in js I have grep function, grep class, interface etc.). Gives it a little outline for context, saves time poking around blindly. My repos are small though, this is still a big blob if you have very large repos.

so… commercializing the same features that are free in omp? what’s the business model? you guys aren’t open source?
We don't charge any subscriptions or fees. We're not open-source, but definitely considering it, has been highly requested. Business model TBD, right now we're focusing on making a product people love.
> P.S: we hid a code on the website, see if you can unlock the secret page at the footer, all built with Bullet

Is it even hidden when your AI ends up tagging it with `aria-label="Hidden secret code"`? Lol. Fun mini game.

Really cool, whats the productivity benefit you guys anticipate from this?
Sorry, this is a hard pass for me. If I need an account on your server to use it, I don't need to use it.
I expected Download to take me to a page with options, but it downloaded a 200MB .dmg file onto my Android phone.
Can it run inside docker? Can it use an arbitrary openai endpoint? Thanks!
They shoot through walls!
does your harness support ACP?
This is going to be so helpful!
It just works like magic!
Critical for the future of AI native products. Congrats on the launch!
Are you freaking kidding me with YC throwing money at something like this? I guess I can fund raise just by having built https://maki.sh, and months ahead of other founders too...
Your landing page is very hard to read. The font size is literally 10px for some content, while animations distract the reader.

Dear YC, please force the startups to dedicate some of the 500k funding for standard web design.

I recently switched over to using primarily Bullet for my projects and the speed of it makes it very nice to get projects off the ground quickly and work properly. I also found that Adi and Alex make updates very regularly based on some of the feedback i've submitted to their feedback tab. Good work on this product guys! I'm excited to see how it develops in the future.