Baike.dev
All toolsOnline toolsAI codingTrendingOpen sourceNewsSubmit
Log in
< Back to tools
I

IRIS

> 编程语言
Open source

A shell auto-completion tool for your terminal

1.1K stars0 likes0 views
WebsiteGitHub

About

A shell auto-completion tool for your terminal

IRIS is built on top of TTY, so it runs everywhere. It just needs a terminal!

Run iris wherever you already work; your local machine, a remote server, or anywhere you can ssh. Each suggestion menu renders directly inline inside your real terminal session, not an app's imitation of one, so it never breaks full-screen TUIs or terminal formatting. Automatically index your aliases and shell history to suggest commands that match your actual workflow in real time. Change configurations and propagate them instantly without restarting your shell. One single local native Go binary, not an app: no gui, no electron, no mac-only wrapper, no account, no telemetry. (if you've used fig: it's that, rebuilt to run purely on TTY)

AI suggestions

Why IRIS instead of Fig

[!IMPORTANT] Fig was officially sunset in September 2024 and migrated to Amazon Q Developer (which requires cloud authentication and proprietary bloat)
IRIS is the lightweight, open-source, zero-telemetry alternative built purely on native Go and TTY with no accounts, no GUI app, and no background daemons required

How it compares

Feature IRIS Fig
Platforms Linux, macOS macOS only
Engine Native Go (TTY) Electron
Startup Near-zero overhead Low overhead
UI Inline overlay GUI popover
Remote SSH TTY-native, portable macOS GUI-bound
Tmux ✓ Limited
Linux virtual terminals ✓ -
Memory Lightweight Electron runtime

Why not shell autocomplete plugins?

Shell plugins are great, but they also come with trade-offs. And also, not everyone use Zsh or Fish especially on SSH.

Feature IRIS Shell plugins
Installation Single binary Plugin manager required
Shell support Most shells supported Usually shell-specific
Startup No shell initialization Increases shell startup time
SSH One config Per-shell config
Tmux ✓ Depends on the shell
Linux virtual terminals ✓ Depends on the shell

Install

Dependencies

  • OS: Linux or macOS
  • Terminal emulator with ANSI color support
  • Go 1.24 or newer (if building from source)

[!WARNING] Currently, Windows is not supported

Method 1: Package managers

Arch Linux (AUR)

IRIS is available on the Arch User Repository. You can install it using your favorite AUR helper:

bash
yay -S iris-autocomplete

OR

bash
paru -S iris-autocomplete

macOS / Linux (Homebrew)

Install IRIS via Homebrew tap:

bash
brew install versenilvis/iris/iris

Nix Flakes

If you are using Nix Flakes, you can consume this module directly without building it manually.

  1. In your flake.nix inputs, add:

    nix
    iris.url = "github:versenilvis/iris/main";
  2. Then, use one of the following options to add IRIS to your system:

    Option A: Try without installing (ephemeral)

    bash
    nix run github:versenilvis/iris

    Option B: Install to your user profile

    bash
    nix profile add github:versenilvis/iris

    Option C: Using Home Manager (Ensure you pass inputs to modules via extraSpecialArgs)

    nix
    home.packages = [ inputs.iris.packages.${pkgs.system}.default ];

    Option D: Without Home Manager (NixOS System) (Ensure you pass inputs to modules via specialArgs)

    nix
    environment.systemPackages = [ inputs.iris.packages.${pkgs.system}.default ];

Debian / Ubuntu (.deb)

bash
curl -sLO https://github.com/versenilvis/iris/releases/latest/download/iris_linux_amd64.deb
sudo dpkg -i iris_linux_amd64.deb
rm iris_linux_amd64.deb

(For ARM64 architecture, replace amd64 with arm64)

Fedora / RHEL (.rpm)

bash
curl -sLO https://github.com/versenilvis/iris/releases/latest/download/iris_linux_amd64.rpm
sudo rpm -i iris_linux_amd64.rpm
rm iris_linux_amd64.rpm

(For ARM64 architecture, replace amd64 with arm64)

Aqua

If you use aqua, you can install IRIS by adding it to your aqua.yaml:

yaml
packages:
  - name: versenilvis/iris

Then run aqua i.

asdf

If you use asdf, you can install IRIS via its plugin:

bash
asdf plugin add iris https://github.com/versenilvis/asdf-iris.git
asdf install iris latest
asdf set -u iris latest
asdf current iris

Method 2: Install script (recommended)

bash
curl -sSL https://raw.githubusercontent.com/versenilvis/iris/main/scripts/install.sh | sh

Method 3: Go install

bash
go install github.com/versenilvis/iris/cmd/iris@latest

Method 4: Build from source (for developers)

bash
git clone https://github.com/versenilvis/iris.git
cd iris
just reload

Update

bash
iris update

Checks for and installs the latest release. To see what's changed first:

bash
iris changelog       # latest release
iris changelog -n 3  # last 3 releases

IRIS can also check for and install updates on its own - see updater.auto-update in the configuration guide below.

Uninstall

To completely uninstall IRIS, remove all configurations, and clean up your shell integration files, simply run:

bash
iris uninstall

Shell setup

[!WARNING] IRIS may cause visual conflicts and keybinding overlaps with other shell autosuggestion plugins or third-party completion tools. To prevent this, please disable them safely (e.g., zsh-autosuggestions, zsh-autocomplete, atuin, flyline, ...)

[!NOTE] This is already added from installation script, but if your shell config is missing it, please add manually

To automatically start IRIS every time you open a new shell session, add the init command to your shell config:

Zsh (~/.zshrc):

bash
eval "$(iris init zsh)"

Bash (~/.bashrc):

bash
eval "$(iris init bash)"

Fish (~/.config/fish/config.fish):

fish
iris init fish | source

Configuration guide

IRIS uses a clean TOML configuration file located at ~/.config/iris/config.toml

Creating & viewing config

bash
iris config init
iris config show

Custom config location

config.toml and theme.toml are read from $XDG_CONFIG_HOME/iris, falling back to ~/.config/iris. Point IRIS elsewhere with the --config-dir flag or the IRIS_CONFIG_DIR environment variable:

bash
iris --config-dir ~/iris-profiles/work
IRIS_CONFIG_DIR=~/iris-profiles/work iris

The flag wins over the variable, and both win over XDG_CONFIG_HOME. iris config init, iris theme init and iris setup write into the chosen directory.

[!IMPORTANT] Use the environment variable for a whole session. Your shell rc starts IRIS with a bare exec iris, which drops any flags you typed earlier, while the environment survives. It is also what NixOS and other declarative setups should set.

The directory must exist, since a path that points nowhere is almost always a typo. The files inside are optional: an empty directory plus iris config init is the normal way to start a new profile.

State and history (~/.local/share/iris) are not affected, so profiles share the remembered mode and frecency ranking.

Sample config.toml

…

[!NOTE] Using api_key_env is recommended over hardcoding api_key in plain text to keep credentials out of configuration files.

[!NOTE] ghost-text used to be a boolean. Existing configs keep working: true is read as 1 and false as 0, so there is nothing to change on upgrade.

Default shortcuts

Shortcut Action Description
Shift + Tab Toggle menu Show or hide the suggestion menu.
Esc Hide menu Temporarily hide the menu until the next key press.
Tab Accept suggestion Insert the currently selected suggestion into the prompt.
Enter Execute command Close the menu and send the current command to the shell.
↑ Navigate up / history Move the selection up, or open command history when the prompt is empty.
↓ Navigate down / history Move the selection down, or open command history when the prompt is empty.
→ Accept ghost text Accept the faded ghost text suggestion when the menu is open.
← / → Move cursor Move the cursor inside the input buffer. Disabled when the prompt is empty
Ctrl + R Switch mode Toggle between spec and history mode.
Ctrl + A Beginning of line Move the cursor to the start of the command line.
Ctrl + E End of line Move the cursor to the end of the command line.
Ctrl + L Clear screen Clear the terminal while preserving the input buffer and redrawing the menu.
Ctrl + U Clear command Remove the entire current command and close the menu.
Ctrl + C Cancel command Send SIGINT, clear the input buffer, and close the menu.
Ctrl + W Delete word Delete the word immediately before the cursor.

[!NOTE] With Ctrl + A, Ctrl + E, Ctrl + W, Ctrl + U, Ctrl + L, and Ctrl + C: they belong to your shell by default. IRIS handles them directly in raw mode so your cursor and menu stay in sync

Theme

[!TIP] We keep all available theme templates in the themes/ directory
Feel free to create your own theme or contribute a new color scheme by adding it to this directory

IRIS has theme TOML configuration file located at ~/.config/iris/theme.toml

Creating theme config

bash
iris theme init

theme.toml lives beside config.toml, so --config-dir and IRIS_CONFIG_DIR relocate it too.

Default theme

IRIS automatically falls back to the default theme if theme.toml is missing, empty, or contains missing configuration options

toml
border = "#a277ff"
accent = "#61ffca"
muted = "#6d6a7f"
text = "#edecee"
text_sel = "#ffffff"
key = "#a277ff"
match = "#61ffca"
desc = "#9692a8"
desc_sel = "#edecee"
sel_bg = "#3d375e"
sel_text = "#110f18"
scroll_info = "#a277ff"
ghost_text = "#4B4A4C"
sys = "#1e1d28"
sys_sel = "#a277ff"
hist = "#1a2d36"
hist_sel = "#61ffca"
alias = "#2a2342"
alias_sel = "#a277ff"

[!NOTE] IRIS also has 2 basic styles

Modern style
Classic style

Reporting bugs

[!NOTE] When submitting a bug report, please include:

  • A detailed description of the bug and steps to reproduce it
  • Relevant log files captured while running in debug mode

Run IRIS with debug mode:

bash
iris -d

or config.toml:

toml
debug=true

[

Issues· 0 open

View all issuesOpen on GitHub

No open issues yet, or sync has not completed.

> Tags

Go

No comments yet. Be the first to share.

> Details

PublishedAug 1, 2026
UpdatedSep 17, 2026
Category编程语言
PricingOpen source

> Related tools

T
TypeScript
JavaScript 的超集,为前端与全栈提供静态类型
P
Python
通用编程语言,广泛用于 Web、数据与 AI
G
Go
Google 推出的简洁高效系统语言