Skip to content

pubwave/ailaunch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AILaunch

Pick and launch your AI CLI tools when you open a terminal (macOS).

ailaunch menu

Works with any AI CLI — Claude Code, Codex, Gemini, Aider, Ollama, and whatever else you add. It ships with a few common ones out of the box and is fully configurable via tools.conf. Opening a terminal lists the tools you actually have installed; arrow-key select and it launches. If only one tool is installed, it launches straight away.

Features

  • 🔍 Auto-detects which AI tools are installed
  • ⌨️ Zero-dependency menu — pure shell: arrow keys to move, space to multi-select, enter to confirm
  • 🪟 Multi-select opens multiple terminals — pick several tools, each opens in its own terminal
  • 🚀 Single tool launches directly — no menu when there's only one
  • 🔔 Optional auto-popup — show the menu on terminal open, or just run ail when you want it
  • 🧹 Clean uninstall — marker-fenced, removes only what it added

Install

curl -fsSL https://raw.githubusercontent.com/pubwave/ailaunch/main/install.sh | bash

Or from a local clone:

git clone https://github.com/pubwave/ailaunch.git
cd ailaunch && ./install.sh

The installer asks: show the menu automatically on every terminal open?

  • y: the menu pops up whenever you open a terminal.
  • n: terminals stay as-is; run ail when you want the menu.

Usage

ail            show the menu and pick a tool
ail --enable   auto-show the menu on terminal open
ail --disable  stop auto-showing (keeps the ail command)
ail --help     help

Menu keys:

Key Action
move
Space multi-select (first runs here, the rest open new terminals)
Enter confirm
q / Esc / Ctrl+C quit to a normal shell

Temporarily skip the menu: set AIL_OFF=1 before opening a terminal.

Supported terminals (multi-select)

Single-select always runs in the current terminal, so it works everywhere. Multi-select runs the first pick in the current terminal and opens the rest in new terminals, using the best method for your host:

Terminal Method Notes
tmux tmux new-window in-place, used first when inside tmux
WezTerm wezterm cli spawn native CLI
kitty kitty @ launch needs allow_remote_control yes
iTerm2 AppleScript tab Automation permission
Apple Terminal AppleScript window Automation permission
Ghostty open -na new window no tab-in-window CLI yet
VS Code keystroke `Ctrl+Shift+`` Accessibility permission
Zed keystroke Cmd+N Accessibility permission
Warp keystroke Cmd+T Accessibility permission

Each terminal is a small driver in lib/terminals/<name>.sh — add a new one by dropping in a file that defines detect, open, and a priority.

Permissions: VS Code / Zed / Warp have no API to spawn a terminal, so ailaunch sends a keystroke via System Events. macOS will prompt once to grant the host app Accessibility access (System Settings → Privacy & Security → Accessibility). iTerm / Terminal use lighter Automation permission. The API-based terminals (tmux / WezTerm / kitty) need no permission.

Why the auto-popup won't get in the way

The block written to ~/.zshrc only triggers when it genuinely should. It auto-skips in all of these cases:

  • Non-interactive shells (scripts / CI / git hooks / ssh host cmd)
  • Non-TTY (pipes, redirects)
  • A sub-shell opened inside an AI tool (sentinel var + parent process name, both checked)
  • Inside tmux (off by default; set AIL_IN_TMUX=1 to enable)
  • Temporarily disabled (AIL_OFF=1)

You can always drop straight into a normal shell with q / Esc / Ctrl+C.

Custom tool list

Edit tools.conf before running install.sh. The installer copies it to ~/.config/ailaunch/tools.conf automatically — no manual setup needed.

One tool per line:

Display Name | command

Example:

Claude Code | claude
Codex       | codex
Aider       | aider
Ollama      | ollama

Rules:

  • Omit Name | to use the command itself as the display name
  • # starts a comment; blank lines are ignored
  • Tools whose command isn't installed are skipped automatically

To change it later, edit ~/.config/ailaunch/tools.conf directly — it takes effect on the next terminal. Re-running install.sh overwrites it with the repo version and backs up the old one as tools.conf.bak.

Uninstall

curl -fsSL https://raw.githubusercontent.com/pubwave/ailaunch/main/uninstall.sh | bash

Or from a local clone: ./uninstall.sh

Removes the ail command, the ailaunch block in ~/.zshrc, the drivers, and the config. Safe to re-run.

License

MIT

About

Pick and launch your AI CLI tools when you open a terminal (macOS).

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages