I know the name is boring. This project installs a bunch of AI CLIs so you do not have to do it manually.
It supports:
- Windows (GUI app + one-click PowerShell script)
- macOS (GUI app + one-click Bash script using Homebrew/official installers)
- Linux: Debian, Ubuntu, Fedora, Arch (one-click Bash script, plus Linux support in the GUI app)
By default it can install:
- Claude CLI
- Codex CLI
- Antigravity 2.0 (Google's agentic IDE +
antigravityCLI; Windows winget, macOS Homebrew cask, Linux official tar.gz) - Antigravity CLI (standalone
agyCLI; Windows/macOS/Linux official script install) - Antigravity IDE (Antigravity IDE; Windows winget, macOS Homebrew cask)
- Visual Studio Code (
codeCLI; Windows winget, macOS Homebrew cask, Linux official .deb/.rpm/tar.gz) - Grok CLI (
@vibe-kit/grok-cli) - Qwen CLI
- GitHub Copilot CLI
- OpenClaw CLI (
openclaw) - IronClaw CLI (
ironclaw) - Mistral Vibe CLI (
mistral-vibe) - Ollama (official version +
ollamaCLI) - RTK (Rust Token Killer,
rtk-ai/rtkfrom git master via cargo) — opt-in, requiresinstall rtk
From the GUI, it can also install desktop AI apps (or shortcuts), including:
- Claude App
- ChatGPT App
- Codex App (Microsoft Store app via
9PLM9XGG6VKS) - Gemini App
- Microsoft Copilot App
- Perplexity App
It does real system changes. Here they are.
It may:
- install Node.js / npm (if missing)
- install Python 3.14 on Windows (for Mistral Vibe, if needed)
- install
pip/uvfor Mistral Vibe (if needed) - install Ollama (official source)
- add CLI directories to your PATH
- create Desktop shortcuts
- create background auto-update jobs
Auto-update jobs:
- Windows: hidden Scheduled Task (startup + logon + daily)
- macOS: LaunchAgent (RunAtLoad + daily)
- Linux: cron (
@reboot+ daily)
Run the built EXE:
dist\InstallTheCli.exe
Run the Python GUI directly from terminal:
.\run_gui.ps1(PowerShell)run_gui.cmd(cmd/PowerShell)- or
py -3.14 .\ai_cli_installer_gui.py
What it does:
- installs selected CLIs
- updates PATH
- creates shortcuts
- can create a hidden auto-update task (toggle in the UI)
Notes:
- Run as Administrator for best results (system PATH writes and installers).
- Non-admin runs still work for many cases, but you may get warnings.
Use this if you want CLI/scriptable install instead of the GUI.
Help:
.\install_all_windows.ps1 help
Get-Help .\install_all_windows.ps1 -DetailedList targets:
.\install_all_windows.ps1 listInstall everything:
.\install_all_windows.ps1Install one thing:
.\install_all_windows.ps1 install codex
.\install_all_windows.ps1 install mistral
.\install_all_windows.ps1 install ollamaOnly configure the hidden updater task:
.\install_all_windows.ps1 setup-updaterUseful flags:
-DryRun(prints commands only)-NoAutoUpdate(skip hidden updater task)-AutoUpdateTime "3:00AM"(change daily run time)
macOS installs use Homebrew wherever a formula or cask exists. If Homebrew is missing, the GUI and script ask before installing it with the official Homebrew installer.
Run the Python GUI directly:
python3 ai_cli_installer_gui.pyRun the one-click script:
./install_all_macos.shHelp:
./install_all_macos.sh helpList targets:
./install_all_macos.sh listInstall one thing:
./install_all_macos.sh install codex
./install_all_macos.sh install openclaw
./install_all_macos.sh install mistral --no-launch-agentOnly configure the LaunchAgent updater:
./install_all_macos.sh setup-launch-agentUseful flags:
--dry-run--no-launch-agent
macOS install sources:
- Homebrew casks: Claude Code, Codex CLI, GitHub Copilot CLI, Antigravity, Antigravity IDE, Visual Studio Code
- Homebrew formulae: Qwen CLI, Mistral Vibe CLI, Ollama, IronClaw
- npm via Homebrew Node.js where needed: Grok CLI
- official installer: OpenClaw (checks Node.js 22.14+)
This is the easiest Linux path. Use this instead of clicking around.
Supported distros:
- Debian
- Ubuntu
- Fedora
- Arch
Run:
sudo bash install_all_linux.shHelp:
./install_all_linux.sh helpList targets:
./install_all_linux.sh listInstall one thing:
sudo bash install_all_linux.sh install codex
sudo bash install_all_linux.sh install mistral --no-cron
sudo bash install_all_linux.sh install ollamaConvenience alias:
sudo bash install_all_linux.sh codexOnly configure the cron updater:
sudo bash install_all_linux.sh setup-cronUseful flags:
--dry-run--no-cron--cron-time "0 3 * * *"
This project can keep installed CLIs updated in the background.
Task name:
InstallTheCli - Update AI CLIs
Behavior:
- hidden task
- runs at startup, logon, and daily
- no popup console window
- invokes a small
.vbswrapper throughwscript.exe, which launches the PowerShell updater hidden - npm CLIs are refreshed with
npm install -g <package>@latest - Codex CLI updates close running Codex processes first so npm can replace
codex.exe, then clean stale.codex-*npm temp directories - Claude CLI updates are skipped while
claude.exeis running. If a prior update was interrupted and leftbin/claude.exe.old.<timestamp>without a currentclaude.exe, the latest.oldis restored automatically; onceclaude.exeis healthy, leftover.old.*files are deleted
Files written under:
%LocalAppData%\InstallTheCli\
Files:
/usr/local/bin/installthecli-linux-update.sh/etc/cron.d/installthecli-ai-cli-updates/var/log/installthecli-linux-update.log
Behavior:
- runs on reboot and daily
- non-interactive cron job
- npm CLIs are refreshed with
npm install -g <package>@latest
Files:
~/Library/Application Support/InstallTheCli/auto_update_clis_macos.sh~/Library/LaunchAgents/com.installthecli.ai-cli-updates.plist~/Library/Application Support/InstallTheCli/macos_auto_update.log
Behavior:
- runs at login/load and daily
- updates installed Homebrew formulae/casks
- refreshes npm CLIs only when those npm packages are globally installed
Requirements:
- Python 3.14
wxPython(pip install -r requirements.txt)- PyInstaller installed in that Python environment
Install deps:
py -3.14 -m pip install -r requirements.txt
py -3.14 -m pip install pyinstaller coverageRun tests:
py -3.14 -m unittest -q test_ai_cli_installer_gui.pyBuild EXE:
cmd /c build_exe.batOpen a new shell and run:
claude
codex
antigravity
code
grok
qwen
copilot
openclaw
ironclaw
vibe
ollama
rtk
If one fails, rerun the installer for that target only.
##Submit bugs in issues, or join my Telegram group! (https://t.me/SerrebiProjects)