Hacker News new | past | comments | ask | show | jobs | submit login
Pen, a GPL Copilot for Emacs (github.com/semiosis)
162 points by mullikine 26 days ago | hide | past | favorite | 45 comments

The author had a rather colorful post to /r/emacs that has been edited significantly since, but some of the color remains in the comments: https://www.reddit.com/r/emacs/comments/oapa2l/help_building...

Some of the comments almost seem like the author is using GPT for lots of things.

And seems to be praising GPT/Copilot as being amazing, the future, etc? Though with so many deleted comments i'm still quite confused.

Regardless the author and I disagree strongly about the actual usefulness of Copilot. I do think ML could be a huge boon for many human applications, like coding, but it's far far from it. Furthermore Copilot's specific implementation seems to leave much to be desired[1].

To me ML is an infant right now and we're metaphorically and literally expecting that infant to drive a car. ML is in a weird, weird place.

[1]: https://twitter.com/mitsuhiko/status/1410886329924194309

If he is wrong and such tools are of small import then it isn't highly important that Emacs has such functionality. If he is correct and such functionality is essential then all of existing Emacs becomes merely a freemium teaser for Emacs 2021 Professional Edition with AI where they will provide only a fraction of the total value but collect most of the money from the ecosystem.

Worse its not even a license forever, nor even for a period of time. It's priced by the word.


Copilot was not the first GPT-3 editor out there. Now that the editor thinks for us, free software is more important now than ever before. A transparent pipeline from thought to paper.

I would like some assistance.

I agree, the thought of hoards of developers sending their code to Microsoft (or AWS via CodeGuru) to train their proprietary semantic model is disturbing, because of the potential network effects. They suck right now and have a lot of problems, and I hope they either stay that way, or that something open like this supersedes them.

Hold up. Is everyone talking about this thing as if they're going to use it on proprietary code?

I only ever pictured using it on open source stuff if it turned up decent

If folks are looking at this thing like "that's going right on my work PC" I would highly recommend reviewing your IT usage policy first. Yikes.

I was thinking the opposite, for the audience you're describing.

"Can't get into trouble if it's never published publicly"...which is wrong, obviously.

How useful do you think has it been, for your own personal use cases?

How do you expect to ensure a "transparent pipeline" when GPT-3 itself is not fully transparent?

Unlike GPT-3, GPT-j from EleutherAI is a free dataset: https://6b.eleuther.ai/. This is supported according to the README.

Edit: it may not be supported right now, but it is mentioned in the Goals section.

I gave 6b.eleuther.ai a try on the Copilot fetch-tweets example, several days ago, and it spat out a similar completion: https://twitter.com/abecedarius/status/1408862135267037186

It took several seconds and added some logic I didn't ask for, but this is already interesting.

Is there a tool where I can type garbage and it walks linearly through a git history of creating a new project, compiling, cloning, committing, etc. until my new copy is a replica of the original?

E.g., I set it to vue.js codebase. Then for each key I press it will:

1. create a new file if we're at the beginning 2. for each key pressed, output a character for that file 3. once the file has been "typed", close that one and open the next file and repeat. 4. once the whole enchilada has been "typed", then each key press will spell out "git commit..." on the command line then enter 5. once committed, each key pressed will spell out "git push..." then enter 6. etc. until I've typed the whole history of vue.js!

Maybe a "turbo mode" so I can set N characters for each character I type...

That instantly made me think of this: https://hackertyper.net/

Ooh, almost there!

You know, there could be a kind of "bloat battle" game from this.

* player one tries to keep smashing the keyboard to "write" code and "commit" new features until the program can read email

* player two smashes keys to add low-effort issues to the tracker, post FUD to the mailing list to slow down the process, and add subtly wrong features for review on merge requests

Like hungry hippos except it translates directly to real world experience

I'm trying to get it going in a docker container asap.. I was slaving away on that today

Bonus-- if you pull it off I think it technically qualifies as a quine. :)

This should probably have its title edited to include the prefix Show HN, since it's posted by the main author. But, neat!

Side note but what is going on with this projects commits?

.. i wish you hadn't made me look. That is painful.

A prompt for touching up those commit messages would be awesome!

PyCharm has local history that tracks non commit diffs and it has saved my day many times

If you want to quickly iterate through the commits and changes, you can do so with this link:


Click on a file to bring up the diffs browser.

Disclaimer: I'm the creator of the tool that I'm linking to.

Looks like they are auto-generated on every save.

Had a co-worker once whose commits in Perforce (where it's called "Submit") made us joke that he had probably bound Ctrl-S to "Submit". Apparently it wasn't as unlikely as we thought .

Interesting to see someone doing this, it often comes up that we should actually have more levels of version control granularity than merges and commits. Just need an application of AI to generate good commit messages here :)

I use the "undo" functionality in my editor. In emacs it's a complete tree of changes so you can't really lose anything.

It's something but it's ephemeral and not shareable. You can't reconstruct how a piece of code got written weeks later, to eg recover some debug helpers you deleted without committing because you thought you were done with debugging it.

But thanks for the tip about Emacs undo tree, didn't know about that. With some add-ons you can apparently eg find undoable changes for only some region of a buffer, etc.

> With some add-ons you can apparently eg find undoable changes for only some region of a buffer, etc.

This is built into Emacs (no add-ons needed). Calling undo with a region selected undoes changes only in that region.

You can also setup undo-tree to show a diff for every change.

True, but that's no guarantee you'll ever be able to actually find it.

That could be interesting but the right structure (off the top of my head) would be a hierarchical layer - not this flat monstrosity!

I actually disagree with this because I think you should try to have the project even vaguely work at each commit, so "git bisect" will work. But maybe each commit could be a log of keystrokes instead of a text diff.

What a terrifying way to work!

Why? I also use commit and push as my save with nonsense commit messages. I can't trust that my computer is still booting up tomorrow.

For single author projects it's reasonable.

Should this say “GPT” instead of “GPL” in the title? I find it pretty confusing right now.

Got me confused, too. It's GPL-licensed and uses GPT.

but what about GPK (Garbage Pail Kids) ?

I thought it was a model only trained on GPL code, which would be interesting but I guess would cost a few million to make.

It's not a "Copilot for Emacs" though? It's a layer on top of language models APIs made for Emacs.

So, if you use GPT-3, it will not be finetuned further on code like Copilot, only pretrained on data that did contain some code, and also the GPL portion only concerns that API-calling layer, not what the model was trained on, or what it can output (which is what the GPL related mess about Copilot is about).

Is this submission title a typo for GPT?

Can we have a Vim plugin pretty please?


That is closed source. Also Kite does not seem comparable with GPT-3 or github copilot.

Applications are open for YC Winter 2022

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact