Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

Cursorless is an editor created for editing with voice control. It is built on top of Talon Voice and VSCode. Every token in the file is marked with a "hat," and you can refer to different pieces of your code without having to place your cursor there by stating the color/shape of the hat and the letter that the hat is above.

I started using it to help with some RSI, and honestly when I go back to a keyboard to use emacs evil mode it feels awkward compared to cursorless (other than the fact that it allows me to get out of VSCode, but that's a personal preference...).

This tutorial video gives a short taste of what cursorless is like: https://www.youtube.com/watch?v=h6lM68jU2iI And here is a link to the documentation: https://www.cursorless.org/docs/



I think that what makes Cursorless "really different for editing/writing code" (per OP) is that it is a voice-controlled structure editor focused on maximizing efficiency. Cursorless leverages tree-sitter to maintain an up-to-date syntax tree of your code, and then allows you to manipulate your code using voice commands that target structures like functions, classes, arguments, etc. Cursorless also has an emphasis on composable / chainable commands. For example https://www.youtube.com/watch?v=EwdpPN-21-g . As you become fluent, you'll find that the emphasis on higher level syntactic constructs and chained commands enables you to program faster than you could using a keyboard, without needing to worry about low-level details like cleaning up commas, selecting functions with a mouse, etc.

But as the creator of Cursorless, I'll allow for the possibility that I'm slightly biased


Are you saying that you find Cursorless easier that emacs/evil? If so, can you elaborate on what it is about Cursorless that you find reduces cognitive load?


I wouldn't necessarily say it reduces cognitive load, but I can get things done more quickly.

- I can delete a whole line/function/paragraph with one command from anywhere in the viewport.

- I can bring a variable name from anywhere in the viewport to anywhere else with one command, and if the name is hard to type quickly or doesn't autocomplete well (perhaps because it is similar to other names in the file) that is a large boost in speed.

- I can add whitespace around function arguments, or empty lines above/below any given line without having to move my cursor there first.

- etc.


Cool. I mostly wanted confirmation that it’s better and not just a good substitute for disabled folks, RSI, etc.

I’ll check it out. Does it mesh well with other VSCode functionality? I’m just wondering if you can use it in tandem with a normal keyboard.


Not being a VSCode user myself outside of this context I may not have the best experience to answer the first question, but I don't think it tends to conflict with much except perhaps vim keybindings.

As far as using it in tandem with a keyboard, the main issues you might run into are timing. If you happen to be moving the cursor or typing while a voice command is running it could cause issues. You would probably end up having to take a second to pause and wait for the command to finish before starting to use your keyboard. Other than that, you should be able to use the VSCode instance like normal at any point.


This is great. Thanks. It looks like this really shines for moving the cursor around: every important location in the code has a unique name. I wonder if I could port that functionality to emacs. It would take the place of avy (ace jump).


Check out the #cursorless-everywhere channel in the Talon voice slack workspace; people are already working on an emacs port

I'll also add that the cursor movement functionality, while quite useful as you get started, becomes less and less relevant as you get comfortable with the more advanced Cursorless commands for syntax tree manipulation


That ... looks like it would be pretty neat if I could distinguish the colors.


Definitely a consideration. There are ways around that; you can use multiple hat shapes instead of colors, and/or only use white and a couple of shades of grey. I know at least one person that uses it this way.




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

Search: