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]
> The idea is that you can configure your developer environment in Fig and then we'll sync it across all of your devices.
What's Fig's target audience? Developers.
Developers have been using a tried and tested way to keep configurations for decades -- dotfiles. We sync them across all our devices using git (or any of a thousand other ways). This is a solved problem and doesn't require email addresses or logins.
Yeah yeah right and you just appeared out of nowhere with a 300-word explainer. "Just in case". Stop this shit-show already, everybody knows you're a YC-baked company
YC-baked companies get tips and notifications when they're about to get featured
people are critiquing you below and you're asking HN mods to downrank negative comments to keep up your PR-game
my harsh, but valid criticism of your product ended up at the bottom of page, although it has 20 points and should actually be higher than yours and any other comment, but life's easy when you can cheat a bit!
Of course there's a lot of HN bitterness here. But I like Fig. I've been running my own heavily customised .zshrc for about a decade with loads of bells and whistles in terms of autocomplete and customised prompts and what not and it has been great and I've kept it current with cool new toys.
But I've dumped most of it in the last month for Fig. I like seeing command specific options, relevant to the current context, and in a long list which I can scan and scroll quickly.
I go to documentation MUCH less now and I'm faster with it. And that's most of what I care about.
Learn the tools, stay away from the toys. Hundreds of developers have been incredibly productive with a regular shell - there isn't any practical need for a product like Fig. If it were me and I was seeking more productivity from my shell, I would dive into books into how to improve it for myself rather than hook myself to another tool.
I don't understand what Fig is actually for. Why would I want a "visual autocomplete" when I already get what I want out of bash-complete + fzf, a more technically complete and understood solution?
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.
This is the first time I've heard of Fig, just downloaded it and it's a hell lot slicker than zsh-autocomplete. It would be great to make the telemetry opt-out more noticeable, preferably on setup, I would not have noticed it unless I saw the comment with the command to run. (Although I now see it's buried in the settings too)
agreed! it's so awesome that we now have a proprietary, VC-baked, telemetry-enabled tool that does everything free and open-source zsh-autocomplete can!
Already use fig in my Mac terminal and love the attention JetBrains IDEs are getting with plug-ins. Going to check this out when I need to fire up PyCharm for scheduled script maintenance.
> 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.
With the risk of feeding a troll: can I ask you why you're so angry in every comment? You're almost hateful. I want to understand what makes you act like this, why you think the makers of Fig deserve this kind of response and how you think your comments contribute something positive to the discourse here on HN.
`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.
[+] [-] mschrage|3 years ago|reply
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...
[1] https://github.com/withfig/fig/issues/34
[2] https://github.com/withfig/fig/issues/35
[+] [-] shric|3 years ago|reply
What's Fig's target audience? Developers.
Developers have been using a tried and tested way to keep configurations for decades -- dotfiles. We sync them across all our devices using git (or any of a thousand other ways). This is a solved problem and doesn't require email addresses or logins.
[+] [-] ushakov|3 years ago|reply
Yeah yeah right and you just appeared out of nowhere with a 300-word explainer. "Just in case". Stop this shit-show already, everybody knows you're a YC-baked company
YC-baked companies get tips and notifications when they're about to get featured
people are critiquing you below and you're asking HN mods to downrank negative comments to keep up your PR-game
my harsh, but valid criticism of your product ended up at the bottom of page, although it has 20 points and should actually be higher than yours and any other comment, but life's easy when you can cheat a bit!
see yourself: https://imgur.com/a/Z5AZkik
how can a comment with 20+ points be the last one on the page?
[+] [-] spark3k|3 years ago|reply
But I've dumped most of it in the last month for Fig. I like seeing command specific options, relevant to the current context, and in a long list which I can scan and scroll quickly.
I go to documentation MUCH less now and I'm faster with it. And that's most of what I care about.
Commence retaliations...
[+] [-] spoils19|3 years ago|reply
[+] [-] unknown|3 years ago|reply
[deleted]
[+] [-] DiabloD3|3 years ago|reply
[+] [-] mschrage|3 years ago|reply
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.
[+] [-] ushakov|3 years ago|reply
this sounds ridiculous because it is
they can’t drop this shitty idea now, because they took tons of cash from venture capitalists to make it happen
[+] [-] zokier|3 years ago|reply
[+] [-] imwillofficial|3 years ago|reply
[+] [-] cyral|3 years ago|reply
[+] [-] ushakov|3 years ago|reply
[+] [-] brianllamar|3 years ago|reply
[+] [-] mschrage|3 years ago|reply
[0] https://github.com/withfig/fig/issues/49
[+] [-] peheje|3 years ago|reply
[+] [-] mschrage|3 years ago|reply
> 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.
[0] https://news.ycombinator.com/item?id=31113668
[+] [-] zokier|3 years ago|reply
[+] [-] mschrage|3 years ago|reply
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.
[+] [-] gourneau|3 years ago|reply
bash: trap: __bp_install: invalid signal specification
[+] [-] mschrage|3 years ago|reply
Please run `fig issue` and I'll investigate.
[+] [-] ushakov|3 years ago|reply
Fig relies on free labour to add completions and does not support open-source completion formats
Fig is VC-funded and at some point will have to generate revenue for it’s investors - at your cost
don’t use Fig!
if you have zsh you can use zsh-autocomplete, which is no worse than Fig
https://github.com/marlonrichert/zsh-autocomplete
edit: this comment was the most popular before HN moderators pinned it down, turns out Fig is YC-sponsored, so i’m not surprised
[+] [-] DandyDev|3 years ago|reply
[+] [-] sanjayio|3 years ago|reply
[+] [-] nickradford|3 years ago|reply
Be well.
[+] [-] dang|3 years ago|reply
[+] [-] mschrage|3 years ago|reply
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.
[1] https://github.com/withfig/fig/issues/34
[2] https://github.com/withfig/fig/issues/35
[+] [-] unknown|3 years ago|reply
[deleted]