Show HN: Firebender, a simple coding agent for Android Engineers

docs.firebender.com

53 points by kevo1ution 6 days ago

Hey HN, I made a simple coding agent plugin in Android Studio called Firebender. Here’s an unedited 5-minute video where it writes tests for an Android app and iterates against the Gradle task output on its own (https://docs.firebender.com/get-started/agent). You can use the plugin for free, no sign up needed, on the jetbrains marketplace.

The agent can edit multiple files, run gradle tasks like tests, and use the output to improve its changes. At the end, it reports a git diff of all changes that can be accepted or rejected.

Under the hood, the agent relies on Claude 3.7 sonnet and a fast code apply model to speed up edits. We built tools to give deeper access throughout the IDE like IntelliJ’s graph representation of kotlin/java code, “everywhere search” for classes, and have more integrations planned. The goal is for the agent to have access to all the IDE goodies that we engineers take for granted, to improve the agent's responses and ability to gather correct context. In order to improve the agent, there are internal evals like “tasks” and simulate the IDE which serves as a gym for the agent. This is heavily inspired by SWE-bench. Whenever tools, prompts, subagents, or models are changed, this gym helps find regressions quickly.

Building the UI was surprisingly hard. I had the great pleasure of becoming proficient in Java Swing (released in ‘96 by Netscape) to get this done right. Things like markdown streaming, or streaming git diffs are prone to layout flickering where Swing tries to recalculate where elements should go. We had to write our own markdown parsing and rendering engine that repaints Swing components only when changed portions of the markdown nodes. The UI tends to focus on simplifying reviewing AI changes, something I have a feeling we’ll be doing much more in the coming years.

If you’re an Android engineer, please let me know if you run into any bugs or want anything improved in the plugin!

alex1115alex 6 days ago

Awesome to see Firebender launch here! My team discovered it a month ago after ages of trying (and failing) to find a good "Cursor but for Android Studio" and we've been using it daily ever since. Yesterday, with one prompt, I was able to use the "agent" feature to build an activity that outputs to the display of monocular smart glasses. WITH ONE PROMPT!

Also, the developers are super active in their Discord and are fast to fix bugs. Love this project.

  • kevo1ution 6 days ago

    didn't expect you to comment here - really appreciate the kind words! I have a ton of respect for what y'all are doing and actually making a hardware product, AR glasses. Let me know if you need anymore old Android phones for you to brick, can bike over again and hand them over :)

carstenhag 6 days ago

I'll try it this weekend on a hobby project. For me being able to pitch this at work, the most basic requirement (among many more, don't ask, German companies...) would be to know what company is behind this - currently About Us says nothing and the privacy policy does not mention an address.

hn8726 4 days ago

Is there a way to set it up to work without any cloud features at all? The docs for local llm say

> Some features may use a custom model like Apply, Autocomplete, Agent, so these proxy settings won’t be relevant, and your code will be sent to Firebender servers for processing.

Which suggests that there's always some cloud component? How usable is the plugin with fully local setup?

  • kevo1ution 4 days ago

    > Which suggests that there's always some cloud component? How usable is the plugin with fully local setup?

    right now requests go directly to your proxy from the plugin if you have it configured (i.e. if you set up a clean VPC/VPN network environment with no outbound requests besides anthropic): both chat, cmdk, and agent will work. We are still working on the DevX for this, but need someone to work closely on this. Enterprise is also pushing us to make this more friendly.

    But there are massive downsides, we use some custom models and hosting infrastructure to speed things up. For example, code edits will take much longer.

    For fully local LLMs, we just need to setup a unified API client, but there aren't any good kotlin ones and I'm scrambling to write this from scratch. It is very annoying how there are different nuances in the anthropic/openai/etc. and all the "Open source" gateways are cloud hosted. I don't think people will want to "host" a gateway locally, the best experience is to just to put your keys/base url in settings which could be localhost:3000.

    • cbruegg 4 days ago

      It would be helpful to have a setting to disable features that circumvent the configured OpenAI base URL. In its current state, it's not possible to use Firebender without being afraid of accidentally sending out data, right?

      • kevo1ution 4 days ago

        That is correct, and is definitely a problem. basically there should be a button that toggles for no code data leaving the network (unless its the proxy you configured). Right now you have to be aware of what features do and don't rely on the proxy which is not a good UX. At the very least there should be modal popup asking for an override or cancel on features that require our custom models.

        I can solidify this option with stronger guarantees.

        Separately, we're working on Soc II at the moment and should have type 1 soon, and type 2 pending the observation period.

        I know trusting my word is difficult bc I'm a random person on the internet, but we do NOT store you code data or use your code data to improve our product in any way (like training models).

sutty86 4 days ago

Since updating my firebender will not edit any files . It's stating I have to manually apply all code for when before it did it all for me

  • kevo1ution 4 days ago

    just read this - that is definitely a bug. email me at kevin@firebender.com please and I can fix this bug asap for you

vamega 6 days ago

Does this work with Flutter, or does it only work with Android native apps?

  • kevo1ution 6 days ago

    it works with flutter. we many active flutter developers in our discord too that will flame us if we introduce any bugs for them. its good because then we can fix this asap.

    same is true for intellij and kotlin/java support

kethinov 6 days ago

Now do Waterbender for Windows apps, Airbender for macOS/iOS apps, and Earthbender for Linux apps.

  • themanmaran 6 days ago

    Long ago the four native app environments lived in harmony...

    • gryn 6 days ago

      Everything changed when the Electron Nation attacked.

      • kevo1ution 6 days ago

        only the AI agent, master of all 4 ecosystems, could stop them, but...

        • zote 6 days ago

          when the world need him most, he was rate limited