Hacker News new | ask | show | jobs
Fig now supports JetBrains IDEs (fig.io)
76 points by michael_fine 1527 days ago
9 comments

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...

[1] https://github.com/withfig/fig/issues/34

[2] https://github.com/withfig/fig/issues/35

> 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.

> Developers have been using a tried and tested way to keep configurations for decades -- dotfiles

Which kinda sucks

There is certainly some room for improvement! :)
symlink dropbox used to be a solid way to do it, but that was before dropbox had to perform for the public markets every quarter
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. :)

git controls versions and is open-source

you’re building a proprietary solution for something that isn’t a problem at all

why don't you give this company a chance? I am sure there is room for innovation even if it's non oss it's fine along it's something new.

I'd like to see what kind of innovation they can bring to dotfile management.

I keep most of my important dotfile configuration in a private repo managed by stow/syncthing, but the management gets old after a while and the git commit -am "update" gets old after a while..

> Didn't expect to see Fig here this morning.

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?

> YC-baked [sic] companies get tips and notifications when they're about to get featured

We don't.

us outsiders can't know for sure!

for example i didn't knew a comment critiquing a YC-company could be pinned down

but now i know and this doesn't make neither HN nor Fig better in my eyes

My understanding is that high-karma accounts can downvote comments/posts. HN is still primarily a community where supporting & encouraging those building things is the norm. Criticism of makers isn't rare, but my hunch is that it's less accepted. So this could explain the downvotes. Also keep in mind that HN is still a work in progress—to this day. Dang works hard to keep a civil, supportive community, and how upvotes/downvotes get weighted could be at play too.
i don't know how many people must have downvoted the comment to bring it to the very bottom of the page, but as it stands it has 25 points

before some invisible magic happened, the comment was the first one on the page

can HN mods give an explanation to this?

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.

Commence retaliations...

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.
If I was seeking to be more productive I would probably install a tool like Fig and be done with it rather than spend time diving into the books to customize my shell. I think a lot of people in this thread are overlooking the simplicity of installing it and having it "just work" versus spending time fiddling with zsh configs.
I didn’t have fig just work. Actually I realized it made assumptions about the way my bashrc and bash_profile worked that broke the installation of fig and my shell configuration after I made some seemingly unrelated edits to my bash config.

It’s been broken for months and I didn’t get enough value out of it to figure out how to fix the installation.

configuring zsh is easier that you could possibly think

you only have to do it once and forget about it

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.

> especially people less comfortable with the terminal - don't feel confident installing a bunch of 3rd party zsh completions or creating a custom setup

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…

If zsh is to complicated just use fish...
from what i know the end goal of Fig is to to build a proprietary platform for webapps that run as overlay on top of your terminal

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

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.

[0] https://github.com/kubernetes-sigs/kui

where does terminal lack user-experience in your opinion?

you really think your proprietary, VC-baked, telemetry-enabled product would improve developer experience?

a terminal is accessible as it gets and doesn’t need a web interface

this is just a pervert version of Electron

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.

Do you get rounded corners and soft shadows with bash-complete :)
Don't forget the icons ;)
It's a little slicker and less cumbersome.
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!
Not sure why you are being so negative on this thread. It took me 30 seconds rather than fiddling with commands and installing various autocomplete plugins and packages to get a nice config. I've done that before and don't have time these days to work on my "perfect" zsh config. I don't really care how they got their money, telemetry is opt out and they claim it's private right on the homepage.

zsh-autocomplete now has some competition so maybe both products will innovate at a faster pace.

> they claim it's private right on the homepage

yeah right, let's just blindly trust them!

> zsh-autocomplete now has some competition

Fig can't compete, because it only works on mac and isn't open-source

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.
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 ;)

[0] https://github.com/withfig/fig/issues/49

I don't understand why you need my e-mail during setup.
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.

[0] https://news.ycombinator.com/item?id=31113668

Could this sync-feature be opt-in instead of mandatory?
Hacking IME and/or accessibility features to provide shell autocompletion is certainly ... creative solution.
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.

Is anyone else getting this warning? I am using macOS 12.3.1, iTerm2 3.4.15 and bash 3.2.57(1)

bash: trap: __bp_install: invalid signal specification

Update your iTerm shell integration and the issue should be resolved!

Please run `fig issue` and I'll investigate.

Thanks that is working now!
Fig is macOS-only, proprietary, requires e-mail and has telemetry

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

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.
we both can agree there are legitimate points against using Fig

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

Not to mention the possible security vulnerabilities associated with having telemetry on keyboard events.
Hey, you've made your point multiple times in this thread - maybe take a rest, drink a glass of water and go for a walk?

Be well.

And before you try it, no I'm not an employee and I'm not a shill. I don't use Fig, though I had a preliminary interview with them last year and they took 3+ months to get back to me, so...
HN moderators didn't touch your comment. More explanation here: https://news.ycombinator.com/item?id=31117569
`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.

[1] https://github.com/withfig/fig/issues/34

[2] https://github.com/withfig/fig/issues/35

> The idea is that you can configure your developer environment in Fig and then we'll sync it across all of your devices

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

Whatever good points you are making are obscured by the overly aggressive tone of your comment.
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.

to be honest, i don’t know anyone who has a problem moving files from one computer to another

there are even open-source tools like Syncthing that do this

https://syncthing.net/

i guess i’m very thankful we don’t need Fig for this!

Or just use git. It also has versioning in case you want to revert a change.

There are like 100 blog posts on how to manage your dotfiles...

Honestly, it feels like you're just bitter and stuck in your ways. Yeah, git works. Syncthing works. Syncthing also has non-obvious behaviors that can lead to you wiping your folder and losing all your data (source: I've done this accidentally). These things take a lot of effort to setup and keep working, and a lot of fiddling over time. There are plenty of people out there who just want something that works, that doesn't take up valuable time and mental bandwidth. Fig is great. Maybe not for you, but it seems to me like you're simply not the intended demographic.
You don't have to use it. I just downloaded it and it's really neat, looks way better than zsh-autocomplete because it has an actual UI (as much as people here are trying to make it sound like it's the same thing). I don't think the syncing thing has much value either (for me, maybe teams), but that's not why I'm using it.