Check out the Q CLI. It's an open source terminal coding agent written in Rust.
HN user
mschrage
Harvard '20 Things I’m thinking about: http://schra.ge Hardware: http://fab.cba.mit.edu/classes/863.19/Harvard/people/mschrage/
Congrats on the launch!
Love this and am tremendously impressed by this team's persistence. Congrats on the launch!
The open-source project will continue to be maintained! The open-source autocomplete specs are used by the CodeWhisperer CLI and will be for the foreseeable future.
Co-founder of Fig here! Just want to say that I think this is awesome.
It’s really cool to see alternative implementations of IDE-style autocomplete in the terminal. Nice work!
The initial version of the Cicada framework was built internally at Fig (fig.io) but we liked using it so much that we wanted to open it up to the community.
We were so sick of fighting with proprietary YAML. TS is a breath of fresh air.
You might find Fig completion specs useful for this: https://github.com/withfig/autocomplete
This is incorrect. If you opt-out, no telemetry events are sent at all.
We are making really good progress on this and will have a cross-platform prototype in the next month or so. See the Github issues for Linux[1] and Windows[2]
You have to open a terminal, like iTerm, and then autocomplete will appear :)
Congrats on the launch, Kam! Linen is awesome. We'd love to get this setup for Fig's Discord community :)
There is certainly some room for improvement! :)
Currently, lots of developers use GitHub (which naturally requires a login) to sync their dotfiles across devices.
We are building our own version of this, that is more tailored to the use case than a generic git repo interface. :)
Don't forget the icons ;)
Tens of thousands of developers use Fig everyday and seem to really enjoy the autocomplete affordances that we've added.
That said, if you already are very comfortable in the terminal, some of the pain points that we're tackling might be less acute for you.
It seems like Fig might not be solving a problem you have and that's totally okay.
We believe that there is a lot of room to improve developer experience in the terminal. That's why we build the products that we build.
One of our core principles is backwards compatibility. We want Fig to be a seamless addition to your existing tools and workflows!
It's taken some creativity on the engineering side, but has been super fun to see what we've been able to build when working with these constraints.
Our mission is to improve the developer experience in the terminal.
We think that layer on new interfaces can help make the commandline even more powerful... as well as making it more accessible. Check out kui[0] to get an idea of what we're imagining.
`zsh-autocomplete` is a great tool as well! Some of this is just a matter of personal preference.
I've answered a few of your concerns in a different comment[0].
tl;dr
Autocomplete is just our first product, and it's part of a suite of tools focused on improving developer experience in the terminal. The idea is that you can configure your developer environment in Fig and then we'll sync it across all of your devices.
Fig will always be free for individuals. Teams pay for Fig for collaboration and discovery of internal scripts and for managing dev environment setup and onboarding.
A Linux/Windows version is coming soon. [1] [2]
[0] https://news.ycombinator.com/item?id=31113668.
Update your iTerm shell integration and the issue should be resolved!
Please run `fig issue` and I'll investigate.
I mentioned this in another comment [0].
Autocomplete is just our first product, and it's part of a suite of tools focused on improving developer experience in the terminal. The idea is that you can configure your developer environment in Fig and then we'll sync it across all of your devices.
Adding support for JetBrains has been one of our top feature requests. [0] Glad to hear you'll be able to use Fig in more places now ;)
I think there are two main areas where we improve the default experience.
1. Zero configuration needed to get started.
With Fig, the experience just works out of the box. A lot of developers - especially people less comfortable with the terminal - don't feel confident installing a bunch of 3rd party zsh completions or creating a custom setup.
2. Extensibility.
We've worked really hard to make the experience of writing your own completions very easy and powerful. Lots of teams are using Fig to make internal scripts and CLI tools more ergonomic and discoverable.
In my experience, writing custom shell completion scripts is not very much fun.
Hey HN! Didn't expect to see Fig here this morning.
We just released a new version of Fig that allows users to install a custom input method on macOS. This means we now work with over a dozen new terminals, including all JetBrain IDEs, Alacritty, Kitty, WezTerm and more.
The engineering behind it was surprisingly tricky since these APIs are not as well documented as you'd hope. (Indeed, the best place to look is the C header files [0])
But with a lot of trial and error, we've managed to get an implementation we're happy with. (That said, if anyone has tips on how to install an input method, without requiring a system restart, I'd love to hear them!)
I'll be around all day to answer any questions about how Fig works under the hood!
--
Also just to address some stuff that generally comes up when we're posted on HN:
1. Why is there a login?
Autocomplete is just our first product, and it's part of a suite of tools focused on improving developer experience in the terminal. The idea is that you can configure your developer environment in Fig and then we'll sync it across all of your devices.
2. Is there telemetry?
Yes, but you can opt-out entirely by running a single command.
fig settings telemetry.disabled true
3. How will Fig make money?
Fig will always be free for individuals. Teams pay for Fig for collaboration and discovery of internal scripts and for managing dev environment setup and onboarding.
4. Is there a Linux/Windows version?
We are making really good progress and will have a prototype in the next month or so. See the Github issues for Linux[1] and Windows[2]
[0] https://github.com/phracker/MacOSX-SDKs/blob/master/MacOSX10...
Writing shell completions is a surprisingly tricky - especially for larger CLI tools or when you want to provide more advanced suggestions. Everything has to be done imperatively, usually as a shell script! It can get hairy quickly.
As a point of comparison, see the difference between the git completions written in bash [1] vs the declarative equivalent [2].
[1] https://github.com/git/git/blob/master/contrib/completion/gi...
[2] https://github.com/withfig/autocomplete/blob/master/src/git....
In our timeline, maybe some file format could be standardized that describes the particular inputs and options a command takes, and e.g. shells would hook into it. Kind of like header files, but distributed either in a community repository or by each of the tools themselves.
This sort of sounds like what we're working on at Fig. We've defined a declarative standard for specifying the inputs to a CLI tool and have a community repo with all supported tools: https://github.com/withfig/autocomplete
Disclosure: I'm one of the founders
If you want to play around with writing more 'interesting' completions, check out Fig (https://github.com/withfig/autocomplete).
You can write completions declaratively and use TypeScript to generate dynamic suggestions.
Disclosure: I'm one of the founders.
Writing shell completions is such a pain (and fish is still way ahead of zsh or bash).
Btw if you like fish autocomplete, you might be interested in fig.io.
We've spent a bunch of time making is super easy to add your own completions for scripts or custom CLI tools. :)
To clarify, a decent number of Fig users (not employees) have been running into this issue.
We host our answers to common support requests on Github Discussions!
kicks has such a fun & distinctive visual style. Came to comment that the design reminded me of https://www.kickscondor.com/ and now I understand why!