416 karma · joined October 14, 2014
It’s really cool to see alternative implementations of IDE-style autocomplete in the terminal. Nice work!
We were so sick of fighting with proprietary YAML. TS is a breath of fresh air.
We are building our own version of this, that is more tailored to the use case than a generic git repo interface. :)
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.
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.
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.
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.
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.
Please run `fig issue` and I'll investigate.
> 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.
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.
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...
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....
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
You can write completions declaratively and use TypeScript to generate dynamic suggestions.
Disclosure: I'm one of the founders.
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. :)
We host our answers to common support requests on Github Discussions!