🎉 Launching Fig
I am excited to announce that, as of today, Fig is generally available to the public for download.
With our public launch, I'd like to share a little more about Fig's mission: who we are, what we're doing, and what's to come.
The terminal has barely changed since the 1970s and yet is still used every day by tens of millions of developers. Our bet is that the terminal isn't going away any time soon. We are excited for Fig to play a part in its evolution.
🚀 What is Fig?
Fig makes the terminal easier for beginners, more productive for advanced engineers, and more collaborative for teams.
The first app built on top of the Fig platform is autocomplete. We are launching autocomplete today, but soon, we will open up our API so anyone can create their own apps.
🔥 Our First App: Autocomplete
Our first app, autocomplete, is a modern IntelliSense for your interactive shell. We support inline completions for subcommands, options, and arguments for 200+ CLI tools.
We make it ridiculously easy to build completions. We've defined a declarative standard that makes building completions for things like
git checkout <branch> or
Autocomplete is built to be extensible. You can add your own personal shortcuts, add project-specific shortcuts, customize descriptions for package.json scripts, and even build completions for your team's internal CLI tool. You can build all this and more by checking out our docs.
Here's what autocomplete looks like in action.
🎉 The Fig.js API
Fig isn't just autocomplete. Fig's backbone is Fig.js, an API that enables building web apps that seamlessly integrate with the terminal.
Very soon, we will open up access to the Fig API, so that anyone can build their own apps. You can use our API to:
- Receive events from the shell (e.g. when a new process is executed or when the working directory changes)
- Run local shell commands
- Position the Fig window in various locations around the user's terminal
- Insert text into the active terminal session
We will discuss Fig.js in more depth when we're ready for you to start building apps with it. In the meantime, you can see the early prototypes we built to get a sense of what's possible:
☁️ Future Apps
What workflows do you do every day in the terminal that could be improved? Are any of these workflows shared across your team?
As you might expect, engineers do a lot of different things in their terminal. Here are a few Fig apps that will make common terminal workflows faster and easier:
- Shared terminal configuration (scripts, functions, aliases, snippets, CLIs, and dotfiles) across teams
- Interactive Jupyter notebook style "runbooks" for dev ops/SREs
- Shared environment variables, secrets, certificates, and keys
- Live terminal sharing and session recording
- 2FA for SSHing into remote machines
- "Fig cloud" for hosting and deployment
What else could you do? You could have an internal app for your team/company. You could build a keyboard driven git GUI that uses
d3.js to visualize your commit history. You could use Fig to onboard new engineers to your team or even users to your public CLI.
These ideas barely scratch the surface of what's possible. We're so excited to see what the community will build!
💾 Why hasn't Fig built its own terminal?
Early on, we decided not to build our own terminal and instead integrate with existing terminal emulators.
This is incredibly ambitious, but it has three major advantages:
- Teams can use Fig to collaborate but engineers will still be able to use their preferred terminal.
- Fig developers can build for a much larger audience. Since anyone can add Fig to their existing setup, apps built on top of the Fig.js API are not limited to people who use a specific terminal or shell...
- Fig is backward compatible. Your terminal is still your terminal. Fig is a new interface to build upon.
Fig will work with your standalone terminal (like iTerm2 or Kitty), the terminal embedded in your IDE (like VSCode or JetBrains), and even in the terminal in a browser-based IDE (like GitHub Codespaces). Fig works where you work.
For instance, here's Fig in VSCode:
We imagine a world where your manager uses Bash on Windows, your colleague uses Alacritty on Arch Linux, and you use the terminal embedded in VSCode on macOS. Fig works with all of them and lets you seamlessly collaborate.
Fig currently works with iTerm2, the native macOS terminal, Hyper, Alacritty, and the terminal embedded in VSCode on macOS. Once we have stabilized and launched our API, we will go cross-platform to Linux and Windows. If you'd like to help with this, come chat with us in our Discord community
One day, we may build a Fig terminal to provide the best first party experience. For now, our integrations work quite nicely!
💰 How will Fig make money?
We get asked this question a lot and so as a final note to our launch, I thought it would be good to address it.
First, Fig will always be free for individuals. We want users to feel confident that even if they sign up to Fig and become the biggest power user, they will never be charged.
Our pricing model is inspired by GitHub's:
- For individuals and open-source projects, Fig is completely free.
- For team products that require hosting, Fig will charge a small fee per person per month.
For instance, our autocomplete for teams product enables companies to build and share completions for internal CLIs. We think charging for hosting is reasonable as there is a cost incurred by us. We are willing to absorb this cost for individuals, but not for teams.
Finally, Fig will never sell your data. The terminal is an incredibly sensitive environment. Security and privacy are top of mind for everything we do.
◧ What's next?
We are just getting started. Fig's platform opens up a whole new world of opportunities for developer tooling. Our public launch of autocomplete today is just our first demonstration of what's possible. Our roadmap for the next several months includes more terminal integrations, launching our Fig.js API, new apps, and maybe even a beta on Linux!
If you're excited about Fig's vision and mission
- Follow @fig on Twitter.
- Join our Discord community
- Join the team: fig.io/jobs
- Or just email me (brendan [at] fig.io)