Open source, MIT licence, macOS

Autocomplete popup for your terminal

Figxit opens under the cursor as you type and lists the commands, subcommands, options, scripts, and targets that fit, ordered by what you use most in the current project.

Apple Silicon, macOS 13 or later, zsh inside tmux. No account, no AI chat, no telemetry.

zsh in tmux

~/shop ❯ make

Popup listing the Makefile targets dev, test, deploy, build, dev-down, lint, and test-e2e, each with its section and help text Popup listing package.json scripts with the command each one runs Popup listing the git subcommands that match the letters ch Popup listing docker run options with a description for each one Popup listing commands that start with p, with python3 first
What it does

The completion part of Fig, rebuilt as a small local tool

The popup is a real macOS window. It does not take keyboard focus and it does not draw inside your terminal session.

Project targets and scripts

make lists the targets of the Makefile in the current folder. npm run, pnpm, yarn, and bun run list the scripts of package.json, with the command each one runs. A new project works with no setup.

❯ npm run

Popup listing package.json scripts with the command each one runs

Subcommands for 700+ tools

Figxit loads the open source Fig completion specs. Type a command and a space to see its subcommands, each with a one-line description. Specs also supply live values, such as git branches after git checkout and hosts after ssh.

❯ git ch

Popup listing the git subcommands that match the letters ch: checkout, cherry-pick, archive, branch, and fetch

Options with descriptions

Type a dash to see the options of the command on the line. Options you have already typed are hidden from the list.

❯ docker run --

Popup listing docker run options with a description for each one

Ranked by your history

Figxit reads your Atuin history, read-only. A word scores higher when you used it in the same folder, in the same repository, or recently.

❯ p

Popup listing commands that start with p, each with its product icon, with python3 first

Local only

Your commands and history stay on your Mac. The only network request is the update check, which reads one file from this site. There is no account and no usage tracking.

Typing never waits

The zsh hook sends the line to the engine after each key and returns at once. It reads a reply only when you press Tab.

No extra permissions

Figxit does not need Accessibility or Screen Recording access. tmux supplies the cursor position and the cell size.

Keys

Three keys, and your own bindings stay

Move the selection

Up and Down walk the rows of the popup.

Tab

Insert the selected row

The text goes into the line at the cursor.

CtrlUor

Close the popup

More typing closes it too.

When the popup is closed, the keys do what they did before. Tab still opens your normal completion and Up still searches your history.

How it works

Three parts that talk over unix sockets

The sockets live in ~/.local/state/figxit/. Nothing leaves your machine.

zsh, about 200 lines

Adapter

A zsh line editor hook sends the buffer, the cursor, and the folder to the engine after each key.

Bun

Engine

Parses the line, collects candidates from the project files, the spec, and your history, then merges and ranks them.

Swift, AppKit

Helper

A macOS app with no Dock icon. It shows the floating panel and hides it when you switch app, window, or tab.

Install

Download, drag, and add one line

The download is a disk image with the app. The app holds the popup, the engine, and the completion specs.

  1. Download Figxit.dmg, open it, and drag Figxit to Applications.

  2. Open Figxit. An icon appears in the menu bar and a setup window opens. Click Add to ~/.zshrc, or add this line yourself.

    eval "$('/Applications/Figxit.app/Contents/MacOS/figxit-engine' init zsh)"
  3. Open a new tmux pane and type a command. To check the installation, run this.

    figxit doctor

To build from source, see the README.

Apple Silicon macOS 13 or later zsh inside tmux Atuin, optional, for ranking No Accessibility permission
Figxit app icon

Figxit is open source

Read the code, report a problem, or add an adapter for your shell. zsh is first. fish and bash come next.