Hacker News new | ask | show | jobs
by anotherpaulg 1119 days ago
I really like the direct GitHub repo integration! I've thought about doing something similar as well.

But keep in mind, this should be easy to do from the command line with a number of tools as long as you have a gpt-4 api key. I would probably trust gpt-3.5-turbo with this task in a pinch, but I think there would be more risk of it disrupting the original code.

Here it is with aichat [1]:

  $ curl -s https://raw.githubusercontent.com/leachim6/hello-world/main/p/Python%203.py | aichat --model="gpt-4" -p "emit this exact code, but with helpful comments; don't put any comments before a #!shebang line if present"

  #!/usr/bin/env python3

  # This is a simple Python script that prints "Hello World" to the console.

  # The first line, called the shebang, tells the operating system how to execute the script.
  # In this case, it specifies that the script should be run using the Python 3 interpreter.

  # The print function is used to output text to the console.
  # Here, it is used to print the string "Hello World".
  print("Hello World")
Or with my own tool aider [2]:

  $ git clone https://github.com/leachim6/hello-world.git
  $ cd hello-world
  $ aider "p/Python 3.py"

  Added p/Python 3.py to the chat
  Using git repo: .git

  > add helpful comments

   p/Python 3.py
   <<<<<<< ORIGINAL
   #!/usr/bin/env python3
   print("Hello World")
   =======
   #!/usr/bin/env python3
   # This is a simple Python script that prints "Hello World" to the console
   print("Hello World")  # Print "Hello World" to the console
   >>>>>>> UPDATED

  Applied edit to p/Python 3.py
  Commit aad4afc aider: Added helpful comments to Python script.

[1] https://github.com/sigoden/aichat

[2] https://github.com/paul-gauthier/aider

1 comments

Interesting! We are personally not the most comfortable with editing things directly from the terminal, especially when GPT hallucinates, but we can definitely see how this would provide users with more flexibility. Thanks for sharing!
You can easily extend the PR workflow to local git: just check that it's run inside a git repo and error out if there are any unstaged changes. Add a --dangerous flag for non-git repo use cases where data might be lost. You can use the git API directly and commit to a new branch without editing the active user branch on disk.
Absolutely! Aider does most of this.

It notices if your local repo is dirty and asks if you'd like to commit before proceeding with the GPT chat. It will even provide a suggestion for the commit message.

You can run aider with --no-auto-commits if you don't want it to commit to the repo. This is similar to your suggested --dangerous flag.

I have considered various magic/automatic branching strategies. But I suspect they would be too confusing. And people probably have their own preferred git workflows. I feel like it's probably better to let folks explicitly manage their branches and PRs however they like.

I agree, sometimes you need to carefully review the changes that GPT suggests.

My aider tool tries to make this easy by leveraging git. While it automatically commits the edits from GPT, it also provides in-chat commands like /diff and /undo. These commands let you quickly check exactly what edits GPT made, and undo them if they're not correct.

Aider will notify GPT if you /undo its changes, and GPT will probably ask why and then try again with your concerns in mind.

To manage a longer chat that includes a sequence of changes, you can also use your preferred standard git workflows like branches, PRs, etc.