Fig adds autocomplete to your terminal.
As you type, Fig pops up subcommands, options, and contextually relevant arguments in your existing terminal on macOS.
brew install --cask fig
- DMG: Download from our website: fig.io
- Join the waitlist
NOTE: Once it's downloaded, launch the app to set up Fig!
👋 What are "completion specs"?
A completion spec is a declarative schema that specifies the
args for a CLI tool. Fig uses 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
buildfolder, and generators run every keystroke.
🏠 Make completions for local scripts
You can use Fig's autocomplete for your own tools too. Here's how to create private completions:
# Make sure you're in your home directory cd ~ # Create your .fig/autocomplete folder npx @withfig/autocomplete-tools init cd ~/.fig/autocomplete # Create your completions! npm run create-spec xyz npm run publish-spec -p src/xyz.ts
You can also create completions for project scripts, or even add custom suggestions to official specs. Read more at fig.io/docs/guides/private-autocomplete
📦 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 # Lint and fix issues npm run lint:fix
We would love contributions for:
- new completion specs
- errors with existing completion specs (e.g. missing subcommands, 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.
😊 Need Help?
🧑💻 Teams / Enterprise
Want to use Fig to add autocomplete internal CLI tools? Or want to use Fig at work but have security / compliance concerns?
We would love to help get you set up. Please email firstname.lastname@example.org
What terminals does Fig work with?
Want to see another terminal included? Check our issue tracker and add your support for it!
How does Fig work?
Fig uses the Accessibility API on Mac to position the window, and integrates with your shell to read what you've typed.
Does Fig work on Windows or Linux?
How can I download Fig?
brew install --cask fig or, downloading the app at fig.io/download. Then, launch the Fig app!
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 200+ contributors made their first open source contribution to Fig!
Fig doesn't work for me!
Join the Discord server and we'll debug it. Fixing Fig in your setup will fix it for other people too!