[HN Gopher] Show HN: Darwin - Automate Your GitHub Project with AI
       ___________________________________________________________________
        
       Show HN: Darwin - Automate Your GitHub Project with AI
        
       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!
        
       Author : mlamina
       Score  : 64 points
       Date   : 2024-02-26 17:33 UTC (5 hours ago)
        
 (HTM) web link (darwin-ai.dev)
 (TXT) w3m dump (darwin-ai.dev)
        
       | ryancnelson wrote:
       | naming things is hard. Googling for other things already named
       | this shouldn't be.
        
         | mlamina wrote:
         | You're right, any suggestions for a better name are welcome!
        
           | lizardking wrote:
           | Maybe name it after a wizard. Albus?
        
             | pksebben wrote:
             | Or Ridcullly.
        
               | interstice wrote:
               | Rincewind?
        
             | distortedsignal wrote:
             | 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: Romestamo (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/ing
             | ame_famous_...
        
           | e12e wrote:
           | Simia Kodex Sapiens, Sikosa or sks.
        
           | noman-land wrote:
           | How about HMS Automate.
        
           | bbor wrote:
           | 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
        
           | justinclift wrote:
           | Definitely "Murphy". There's a law about it. ;)
        
       | lulzx wrote:
       | I like the implementation
        
       | drusepth wrote:
       | 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.
        
         | mlamina wrote:
         | Yup, HN overloaded it! I upscaled the deployment. Do I need a
         | CDN already? :D
        
       | gajnadsgjoas wrote:
       | Is it open source? I can hardly imagine giving access to my code
       | to another service without a clear understanding what it does
        
         | mlamina wrote:
         | 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.
        
           | treyd wrote:
           | I wouldn't want to rely on anything for my daily workflow
           | that I can't self-host.
        
       | SuperHeavy256 wrote:
       | 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.
        
         | mlamina wrote:
         | 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?
        
           | bo0tzz wrote:
           | 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.
        
           | haswell wrote:
           | 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?
        
             | mlamina wrote:
             | 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.
        
               | justinclift wrote:
               | Please make sure it doesn't request access to private
               | repos. That would be far more considerate of your
               | potential users.
        
           | dash2 wrote:
           | 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.
        
             | mlamina wrote:
             | That was definitely not my intention. I'll take a closer
             | look at the permissions.
        
           | justinclift wrote:
           | > What could I do to make you feel comfortable granting those
           | permissions?
           | 
           | Literally nothing. Ain't gunna happen. :( :( :(
        
             | nox101 wrote:
             | 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.
        
               | erhaetherth wrote:
               | 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.
        
       | maho wrote:
       | 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?
        
         | mlamina wrote:
         | Most effective in what way? Are you looking to generate an app
         | from scratch or have AIs work on an existing project?
        
           | malux85 wrote:
           | From scratch
        
             | mlamina wrote:
             | 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!
        
         | bbor wrote:
         | 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.
        
       | throwaway63820 wrote:
       | 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.
        
         | adlpz wrote:
         | 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.
        
         | mlamina wrote:
         | Couldn't agree more! Codemancer looks great, I'll give it a try
        
         | justinclift wrote:
         | 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. :)
        
         | pests wrote:
         | Have you checked out aider-chat? Seems very similar to what
         | you're working on.
        
       | jtwaleson wrote:
       | 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!
        
         | mlamina wrote:
         | This is great feedback, thank you!
        
       | educaysean wrote:
       | 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.
        
         | mlamina wrote:
         | No yet, but I see how that would be a great show case. Will
         | work on that!
        
       | bbor wrote:
       | 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...
        
         | mlamina wrote:
         | 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.
        
       | htrp wrote:
       | What's the backing LM?
        
         | mlamina wrote:
         | 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
        
       | meeech wrote:
       | 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)
        
       | cmgriffing wrote:
       | 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.
        
         | mlamina wrote:
         | Thank you for the tip! I will look at how dependabot does it
        
       | nusl wrote:
       | 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
        
         | mlamina wrote:
         | I understand the concern. What would "hosting it yourself" look
         | like for you?
        
       ___________________________________________________________________
       (page generated 2024-02-26 23:02 UTC)