🎉 Launching Fig
Published: 2021-11-18 18:51:41

I am excited to announce that as of today, [Fig](https://fig.io) 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 are we, 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 millons of developers. Our bet is 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.

To do this we are creating the **app ecosystem for the terminal**. We've built out a simple Javacript API (Fig.js) that makes it easy to extend your local terminal & shell with visual apps and shortcuts.

The first app built on top of the Fig platform is [autocomplete](https://github.com/withfig/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 ridculously easy to build completions. We've defined a declarative standard that makes building completions for things like  `git checkout <branch>` or `npm install <package>`  around 10 lines of Javascript. All of our completions are open source in our public GitHub repo ([withfig/autocomplete](https://github.com/withfig/autocomplete)) and have been built by 120+ contributors!



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](https://fig.io/docs).



Here's what autocomplete looks like in action.

{% youtube wel5bMZtFLA %}


### 🎉 The Fig.js API

Fig isn't *just* autocomplete. Fig's backbone is the 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:

1. Receive events from the shell (e.g. when a new process is executed or when the working directory changes)
2. Run local shell commands
3. Position the Fig window in various locations around the user's terminal
4. 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:



{% youtube 90T5ePnROZk %}


### ☁️ 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 a 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 visualise your commit history. You could use Fig onboard new engineers to your team or even users to your public CLI.



These ideas really 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 built our own terminal and instead integrate with  *existing* terminal emulators. 

This is incredibly ambitious, but it has three major advantages:


1. Teams can use Fig to collaborate but engineers will still be able to use their preferred terminal. 
2. 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...
3. Fig is backwards compatibile. 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:

![Fig in VSCode](https://fig.io/images/screenshots/vscode-colored-background.png)



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



Fig currently work with iTerm2, the native macOS terminal, Hyper, Alacritty, and the terminal embedded in VSCode on macOS. Once we have stablized 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](https://fig.io/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 be always 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 teams product that require hosting, Fig will charge a small fee per person per month.


For instance, our [autocomplete for teams](https://fig.io/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 is top of mind for everything we do.  



### ◧ What's next?

We are really only just getting started. Fig's platform opens up a whole new world of opportunties 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](https://twitter.com/fig) on Twitter.
* Join our [Discord community](https://fig.io/community)
* Join the team: [fig.io/jobs](https://fig.io/jobs)
* Or just email me (brendan [at] fig.io)


-Brendan Falk