Show HN: Darwin – Automate Your GitHub Project with AI (darwin-ai.dev)

72 points by mlamina ↗ HN
Hey HN! I've been working on a project called Darwin that I'm thrilled to share with you.

Darwin is essentially your GitHub agent powered by large language models (LLMs). It checks out your projects, understands them through natural language prompts, and automates tasks such as fixing issues, documenting code, reviewing pull requests, and more.

What drove me to create Darwin was a desire to harness the power of LLMs in a way that's seamlessly integrated with the tools I use daily. The motivation came from my curiosity about what could be possible when writing code that understands code. Darwin stands out because it's designed for developers who want to leverage AI without needing deep expertise in LLMs or prompt engineering. It offers:

- hands-off approach to automate routine development tasks.

- Novel and creative ways of making LLMs work for you

- A unique API for each project, allowing for customized automation tools.

Currently, Darwin is in alpha. It's functional, with users able to connect their repositories, define tools, and run tasks. I'm especially interested in feedback at this stage — everything from output quality to user experience. Every project starts with a $5 free budget to try it out, and while payment isn't implemented yet, I'm keen to hear your thoughts.

The vision for Darwin is not just about automation but creating a more productive, creative, and enjoyable development experience. I believe we're just scratching the surface of what's possible with AI in software development, and I'm excited to see where we can take this.

For those interested, I'm looking for alpha testers and feedback. If you're curious about automating your GitHub workflow or want to push the limits of what AI can do for development, Darwin might be for you. Check it out and let me know what you think!

66 comments

[ 3.6 ms ] story [ 134 ms ] thread
naming things is hard. Googling for other things already named this shouldn't be.
You're right, any suggestions for a better name are welcome!
Maybe name it after a wizard. Albus?
If you're going for wizard names, there are a few under-known (not unknown, but not widely known) wizards in Middle earth:

* Radagast (https://en.wikipedia.org/wiki/Radagast)

* Valinorian: Alatar, Middle Earth: Morinehtar (Saruman, ref: https://en.wikipedia.org/wiki/Wizards_in_Middle-earth#Names)

* Valinorian: Pallando, Middle Earth: Rómestámo (Gandalf, ref: https://en.wikipedia.org/wiki/Wizards_in_Middle-earth#Names)

This link appears to have a few well-known wizards in the DnD lore: https://old.reddit.com/r/DnD/comments/16qr5pz/ingame_famous_...

Simia Kodex Sapiens, Sikosa or sks.
How about HMS Automate.
It makes me chuckle every time I say it :D
I like Darwin - could easily move to CodeDarwin, GitDarwin, DarwinHub, AutoDarwin, etc. I think the urge to keep everything as one goofy name is overkill, and spread bc everyone wants their project to be as central as python. But there’s plenty of combo names - numpy, scikit, and github, off the top of my head. It does open up the semantic space by about 6 orders of magnitude, just counting English nouns.

Obv I’m in the minority there tho… for single-word names I’d focus on the themes of building, concretizing, deploying, maintaining, etc, with a bit of the typical LLM wizard/ai/scientist terms. Sooo perhaps (some play on-)…

- Hephaestus / Vulcan

- Atlas

- Ancient wonders like Troy, colossus, pyramids, Great Wall

- synonyms for “base”: foundation, stratum/substrate, core, nexus

Love the app :). As you can tell, I vastly prefer thinking up names to actually doing work! If I had my way it would be dAIrwin, but that’s why no one asks me these things lol

Replying cause a real idea came to me in the shower: pick a more specific scientist! Wikipedia credits Turing (taken, obv), Forsyth, Cramer, and Koza as inventors of genetic programming, for instance.

https://en.wikipedia.org/wiki/Genetic_programming

That's a lovely idea!! Thank you
Definitely "Murphy". There's a law about it. ;)
(comment deleted)
"Darwin" is already pretty apt though. There's famously even an award named that which is on topic for if/when this goes wrong. ;)
I like the implementation
Might be getting a big hug from our friends here.

> Error: Server Error

> The server encountered a temporary error and could not complete your request.

> Please try again in 30 seconds.

Yup, HN overloaded it! I upscaled the deployment. Do I need a CDN already? :D
Is it open source? I can hardly imagine giving access to my code to another service without a clear understanding what it does
It's not open source. Do you have any specific questions about what it does? I'm still working on how to better communicate this to users.
(comment deleted)
I wouldn't want to rely on anything for my daily workflow that I can't self-host.
This is a deal breaker for many HN users, including me. Especially a piece of software with such privileges.
That would be a deal breaker when it comes to CI tools.
It asks for access to my private repos. I don't want to give a brand-new AI tool access to my private repos. But if it looking at my private repos was optional, I would try it.
I get that! In order to check out the repo, these permissions are required though. What could I do to make you feel comfortable granting those permissions?
It would be much better to allow granting access to only a single repository, rather than complete and absolute access to all the repositories in an account.
I hear you. I've posted a comment to address this concern
Complete transparency and clarity about how data is used, stored, what systems get to see it, and minimizing privileges would be a starting point IMO.

Ask yourself the same question: what would make you feel comfortable handing the keys to your GitHub account to me, haswell, for a tool that I decide to share here?

Thank you! Based on the feedback I saw here, I'll create some diagrams and more details about how things work under the hood. Will also work on the privileges issue.
Please make sure it doesn't request access to private repos. That would be far more considerate of your potential users.
It said it needed read and write access to my email. I don't think it should even need read access. I probably wouldn't mind giving you my email separately as a signup.
That was definitely not my intention. I'll take a closer look at the permissions.
> What could I do to make you feel comfortable granting those permissions?

Literally nothing. Ain't gunna happen. :( :( :(

I wish all devs on github had this attitude. 9 out of 10 github integrations ask for blanket permission to do everything to all repos and 4 out of 5 library devs give them those permissions. It's a a bunch supply-side breaches waiting to happen.

IMO, I think I feel like github should be ashamed for even making it possible to ask for blanket permissions. I think they should have designed their permission system to make it harder to do such a thing. Like maybe it shows a list of repos and asks "which ones, which permissions per, etc...". Not sure if that's enough but I think they need to do more.

As it is, the easiest path for a company to integrate with github is to ask for blanket permissions because then they can setup and/or add any hooks etc automatically. No work on the user's part. But, that contributes to making the entire infrastructure of the world less secure (because much of the world's infrastructure depends on these repos) and it feels irresponsible for github to indirectly encourage it.

FWIW, when I integrate APIs, I always try to ask for as little as possible. Years ago I was trying to integrate some 3rd party logins and they're all trying to give me the user's email address. I'm like I don't even need that, just give me a unique identifier I can throw in my DB. Nothing more.

Better yet, I should be able to request a list of "required" permissions and "optional" permissions. Sometimes optional stuff is handy for optional features or to prefill stuff for the user to make it easier on them but not required for the app to function.

Let's say I want to have a somewhat genereric CRUD-app: A database, some application logic, a login system, logging/telemetry and a UI.

What kind of stack should I use so that tools like Darwin (or just plain old copilot) can be most effective?

Most effective in what way? Are you looking to generate an app from scratch or have AIs work on an existing project?
From scratch
While Darwin can generate code for you, I think generating new projects from scratch is already being done by a lot of the major frameworks. Check out the native docs/tooling around the kind of stack you'd like to build!
My general answer: any tool that has a large online community. I’m not the dev, but any LLM-backed responses will naturally depend on that LLM’s familiarity with the tech. With that in mind, RubyOnRails and create-react-app (+ some node backend) seem like the natural winners.
I like it! I built a command line AI coding assistant for my projects (https://codemancer.codes) when GPT-4 first came out, but still think this space is wayyy under explored given the possible capabilities.
There you go, GPL, now we're talking.

I understand that people gotta make money, but giving access to something as insanely critical as a company private repo... it's either a huge company the lawyers can talk to, or this.

Open source.

Definitely checking out codemancer.

Couldn't agree more! Codemancer looks great, I'll give it a try
Although it has a mention of "GPL" at the bottom of the readme in your repo:

https://github.com/0xmmo/codemancer/

... it doesn't have anything else.

Generally the text of the GPL license is placed in a file (named "COPYING" or "LICENSE") in the root directory of the repo. Might want to add it so its super clear. :)

Have you checked out aider-chat? Seems very similar to what you're working on.
Things like this are clearly the future. Having seen how some open source projects are run, and how we delegate some tasks to juniors, LLMs can play a major role. Imagine not having have to spell out a response to a bug report or a feature request, but the LLM gives you three options and you just pick one. Super simple and that alone would be an insane boost for productivity.

For Darwin, one improvement that comes to mind is to make a catalog of blueprints with common actions, so users have less to configure.

Good luck with the product!

This is great feedback, thank you!
Do you have an open and public PR that shows off Darwin's PR review capabilities? I'm reading a lot of words about what it can do, but I'd much rather see an actual example.
No yet, but I see how that would be a great show case. Will work on that!
As someone who’s also solo-employed on AI development, I love your work based on the copy - will try when I get home. Please, tho, do some thinking about safety if you haven’t. There’s a lot that can go wrong between “nothing” and “paperclip apocalypse”, and I think the autonomy you’re giving machines here should only be done with great care.

https://www.lesswrong.com/posts/kpPnReyBC54KESiSn/optimality...

Thank you! I've been so busy trying to build my idea that in this early stage, AI safety hasn't been top of mind. The comments here show that this clearly needs to be a top priority moving forward.
What's the backing LM?
Everything goes through OpenAI. Different models are used for different purposes, at the moment we use gpt-3.5-turbo and gpt-4-turbo-preview
tbh i wanted to try it. But there's not even a privacy policy. And you asking for access to a lot of stuff (public and private)
I think this is a cool idea. I'm curious why it could't work like dependabot does though. Dependabot can scan my public repos and even create PRs from its own ephemeral forks without the overstepping of permissions that this needs.
Thank you for the tip! I will look at how dependabot does it
I would be more willing to try this if it was possible to host it myself. I get that you want to monetize this and that’s fair, but I am also not going to trust my code to a random online tool.

Maybe I’ll give a bash at making something like this for my own use

I understand the concern. What would "hosting it yourself" look like for you?
Run code I can read on hardware I can control, and on a network I can control.
(comment deleted)
(comment deleted)
Is it self-hostable / usable with your own Github App?

There's no way I'm granting a third party app access to all my public and private repos.

Very cool, but not going to be able to use something like this (requiring access to source code) without self hosting
UPDATE

First of all - big thank you to everyone who gave feedback and tried out the project!

I hear your concerns about trust and invasive permissions. Here is what I will do tonight:

- Remove all data of everyone who has signed up so far

- Revoke all granted privileges

- Deactivate signup

- Put a detailed note on the front page for anyone who's already signed up

Your feedback has been invaluable and I will start working on the next iteration soon.