Fig adds autocomplete to your terminal.
As you type, Fig pops up subcommands, options, and contextually relevant arguments in your existing terminal on macOS.
👋 What are "completion specs"?
A completion spec is a declarative schema that specifies the
arguments for a CLI tool. We use these schemas to generate suggestions.
😎 Contribute your first spec in < 3 minutes
Use the steps below or follow our getting started guide: fig.io/docs
- Download Fig for macOS
- Node and NPM (or Yarn).
Click here to fork this repo.
Clone your forked repo and create an example spec
# Replace `YOUR_GITHUB_USERNAME` with your own github username git clone https://github.com/YOUR_GITHUB_USERNAME/autocomplete.git fig-autocomplete cd fig-autocomplete # Add withfig/autocomplete as a remote git remote add upstream https://github.com/withfig/autocomplete.git # Install packages npm install # Create an example spec (call it "abc") npm run create-spec abc # Turn on "dev mode" npm run dev
- Now go to your terminal and type
abc[space]. Your example spec will appear.
Other things to know
- Edit your spec in typescript in the
- On save, specs are compiled to the
- In dev mode specs are read from the
📦 Other available package.json commands
# Typecheck all specs in the src/ folder npm test # Compile typescripts specs from src/ folder to build/ folder npm run build # Copy all specs from the build/ folder to the ~/.fig/autocomplete folder npm run copy:all # Copy an individual spec from the build/ folder to the ~/.fig/autocomplete folder npm run copy <spec-name>
We would love contributions for:
- new completion specs
- errors with existing completion specs (e.g. missing subcomannds, options, or arguments)
- generators for argument suggestions
- better descriptions, icons etc
If you aren't able to contribute, please feel free to open an issue. Most people think that contributing will be too hard, but you'd be surprised, we have deliberately made contributing very very easy. Give it a go!
😊 Need Help?
What terminals does Fig work with?
Fig works with the native MacOS Terminal app, iTerm, Tabby, Hyper and the integrated terminal in VSCode. We are adding support for Alacritty, Kitty, and the integrated terminals in JetBrains very soon.
How does Fig work?
Fig uses the Accessibility API on Mac to position the window, insert text on your behalf, and read what you've typed in your terminal.
Does Fig work on Windows or Linux?
Currently, Fig is only available on MacOS.
How can I download Fig?
brew install fig or by downloading the app at fig.io/download.
Can I use Fig to build autocomplete for my team's internal scripts and CLI tools?
Yes! Check out our guide on how to get started building autocomplete specs.
How do I submit a PR?
Check out our How to Contribute guide. Many of Fig's 150+ contributors made their first open source contribution to Fig!