DEV Community

Cover image for πŸŽ‰ Launching Fig
Brendan Falk for Fig

Posted on • Originally published at

πŸŽ‰ 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 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. 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) 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.

Here's what autocomplete looks like in action.

πŸŽ‰ 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:

☁️ 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

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

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

-Brendan Falk

Top comments (0)