Last updated: 1 November 2022
Fig is a developer tool for the shell. The shell is an incredibly sensitive environment. Therefore, Fig takes your data, privacy, and security very seriously.
The below is a good faith effort to be fully transparent on how our app works + what we do and do not do with your data.
Fig does not send any of your local, potentially sensitive data to the cloud without your permission. In the case of our most popular app, Autocomplete all data is processed locally on your device (ie we do not send any keystrokes to the cloud).
Fig tracks basic usage metrics (outlined below) as well as error/crash reports. This enables us to make better product decisions and provide better support. At this time, tracking is de-anonymized. We are incredibly close with our users
You can disable all tracking by running
fig telemetry disable
Each time you run a fig cli command (like fig update) we send a ping to Fig's servers. The CLI is an important part of the Fig app. If commands like fig update break, up to date versions of Fig can't be downloaded for users, meaning Fig will break. Note: only the subcommand selected (e.g. “update” or “source”) is sent. Any arguments passed to the subcommands are not sent.
We send a ping each time you select an autocomplete suggestion. The ping contains the root command you used (e.g. git, cd, aws, etc) and nothing else (ie if you select “commit” in “git commit”, all we see is git).
Fig Dashboard Usage
The “Fig Dashboard” is the interface for managing all other Fig apps (like Dotfiles, Scripts, Credential, etc). You access it by running
fig. It is web-based but rendered using the operating system's native web view, rather than Electron/Chromium. Fig tracks interactions like navigation in the sidebar, creating new workflows/dotfiles, or adding a teammate. Any data you input into Fig is stored on Fig's servers unless you are an enterprise plan that is self-hosted. Any field labelled as “secret” is encrypted in transit and at rest using industry standards.
Sometimes developers use the Terminal 100+ times a day. Other times they don't use it at all. If someone uses Fig 50 times one day but 0 times the next day, is it because they turned off Fig or because they didn't use a Terminal? Having a high level picture of this without being intrusive will help us make better product decisions.
Therefore, once a day, Fig sends a single ping with aggregated metrics on how long you used the Terminal, how many times Fig popped up, and how many times you interacted Fig.
Fig uses Sentry as its error tracking tool. Fig send events to Sentry if the Fig app crashes and is then restarted. We also send any uncaught errors. We make sure these errors do not contain any potentially sensitive data (e.g. breadcrumbs do not contain any logs that could contain terminal keystrokes). Fig also uses telemetry to ensure that integrations such as Input Method and Accessibility APIs are installed correctly. Knowing if an integration is breaking helps us prioritize.
Basic App Usage
Fig sends a ping for basic app events like login, quit, onboarding completion, updating, and turning autocomplete on/off.
To re-iterate, Fig does not send any of your terminal input, output, or keystrokes to our servers.
In the future we may build additional features/products that my require sending this data (e.g. SSH session replay or shared history across teams). These products will be entirely opt in and we will make sure to tell you how your data is managed.
The email login is not designed to be a hindrance. In fact, the login is designed to be one of the most valuable parts of Fig.
For individuals, logging into Fig allows you to sync your dotfiles, scripts, personal shortcuts SSH credentials, and more across devices. Developers are switching devices and logging into remote machines more than ever. In order to be most productive, it's incredibly important their dev environment comes with them. Our hope is that Fig becomes the source of truth for you dev configuration - in order to set up a new device, all you need to do is login to Fig!
For teams, we enable the exact same functionality, we just enable collaboration as a layer on top. Your dev environment is not just your personal configuration, but the environments, scripts, and credentials shared with your team too.
fig telemetry disable. This will disable all telemetry and crash reports
Any field labelled as “secret” is encrypted in transit and at rest using an open source encryption library on top
Fig's Free plan is for hobbyists, small teams, and open source. Fig's Pro plan is designed for teams with collaboration requirements and individuals who want more pro features and integrations. Fig's Enterprise plan is for teams looking for greater security, collaboration, and support.
See fig.io/pricing for more details.
Fig's autocomplete app is a web app embedded into our rust-based desktop app. We don't use Electron (it's slow and a memory hog). Instead, we use Tauri (fast, lightweight, and written in rust).
When you launch the Fig desktop app, we load the autocomplete site from our server (or for enterprises, your self-hosted server). The web app is then cached locally until you quit Fig. This is like opening a static site / single page app in a new tab in your browser, then disconnecting your internet: everything still works!
You can try this: with Fig's autocomplete running, try turning off your wifi. Autocomplete will still work. However, if you restart Fig while wifi is still off, it will stop working.
Fig allows enterprise to self-host Fig's server. SAML/SSO, and more on our enterprise plan. Please email email@example.com for more information.
Please feel free to email firstname.lastname@example.org with any questions / feedback. We would be more than happy to help.