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...
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.
Which kinda sucks
We are building our own version of this, that is more tailored to the use case than a generic git repo interface. :)
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?
We don't.
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...
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.
are you telling us that your proprietary blackbox that asks my e-mail and sends telemetry data is better than open-source well-documented, widely-used, established tools?
> Lots of teams are using Fig to make internal scripts and CLI tools more ergonomic and discoverable.
can these completions be used outside of Fig?
i guess not, because this doesn’t make you any money?
> In my experience, writing custom shell completion scripts is not very much fun
yep, because nobody usually writes them, they’re autogenerated by whatever CLI framework you’re using
with Fig you write them and yes, writing autocompletions for Fig manually is better than writing Compdef manually
but again, nobody usually writes them…
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
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 now has some competition so maybe both products will innovate at a faster pace.
> 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.
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.
bash: trap: __bp_install: invalid signal specification
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
i’m spreading awareness and contributing to the conversation by outlining negatives for somebody who might be considering Fig
i do agree with you that some of my comments in the thread were not friendly and i’ll try to do better! i have also deleted some of my previous comments
again, sorry
Be well.
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.
don’t make it look like you’re solving a complicated problem
i don’t have 10000 computers at home that i want to sync my configs to
neither do i change my zsh config every day
you do understand that this is a non-issue?
> 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.
what? people pay for it? you must be kidding, right?
there’s one reason you’re being ridiculed here: you have no moat, no unique value proposition, but you can’t just take your ball and go home, because you have investors whom you promised that this shit is big and will make you guys rich
luckily HN-community understands that and won’t eat your worthless crap