Install Open CLI

Works on Linux, macOS, Windows, and Android Termux. Setup takes under 60 seconds.

๐Ÿ“ฆ npm / Node.js

Works on any OS with Node.js 18+. Recommended for most developers.

๐Ÿง Linux

Ubuntu, Debian, Fedora, Arch โ€” all supported via npm or apt.

๐ŸŽ macOS

Install with Homebrew or npm. Works on Apple Silicon (M1/M2/M3).

๐ŸชŸ Windows

Use WSL2 or install natively via npm on PowerShell/CMD.

๐Ÿ“ฑ Android Termux

Full CLI on your phone. Connect to your home PC's Ollama instance.

1

Requirements

Make sure you have Node.js installed:

โฌก
Node.js
v18.0 or higher (v22 recommended)
required
๐Ÿ“ฆ
npm
v8.0 or higher
required
๐ŸŽญ
Playwright
Optional โ€” for browser automation
optional
2

Install globally

Install the opencli binary:

# Option A โ€” Clone from GitHub (recommended)
$ git clone https://github.com/rythmmcosta/open-cli.git
$ cd open-cli && npm install && npm run build && sudo npm link

# Option B โ€” npm shortcut
$ npm install -g github:rythmmcosta/open-cli

# Verify installation
$ opencli --version
3

Connect your AI provider

Run the interactive auth wizard to add your API key:

$ opencli auth

? Select provider:
โฏ Anthropic-compatible models
OpenAI (GPT-4o)
Google Gemini
Ollama (local, free)
4

First run

You're ready! Try your first command:

$ opencli "list all files in current directory"
$ opencli # interactive REPL
$ opencli --skill vuejs "create a counter component"
1

Install Node.js

Use NodeSource to get the latest Node.js on Debian/Ubuntu:

# Debian / Ubuntu
$ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
$ sudo apt install -y nodejs

# Fedora / RHEL
$ sudo dnf install nodejs npm

# Arch
$ sudo pacman -S nodejs npm
2

Install Open CLI

$ git clone https://github.com/rythmmcosta/open-cli.git
$ cd open-cli && npm install && npm run build && sudo npm link
$ opencli auth
1

Install Node.js via Homebrew

# If you don't have Homebrew:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"

# Install Node.js
$ brew install node
2

Install Open CLI

$ git clone https://github.com/rythmmcosta/open-cli.git
$ cd open-cli && npm install && npm run build && sudo npm link
$ opencli auth
1

Option A โ€” WSL2 (Recommended)

Windows Subsystem for Linux gives you a full Linux environment:

# In PowerShell as Administrator:
PS> wsl --install
# After restart, in WSL2 terminal:
$ curl -fsSL https://deb.nodesource.com/setup_22.x | sudo -E bash -
$ sudo apt install -y nodejs git
$ git clone https://github.com/rythmmcosta/open-cli.git
$ cd open-cli && npm install && npm run build && npm link
2

Option B โ€” Native Windows

Download Node.js 18+ from nodejs.org first, then in PowerShell:

PS> git clone https://github.com/rythmmcosta/open-cli.git
PS> cd open-cli
PS> npm install
PS> npm run build
PS> npm link
PS> opencli auth
1

Install Termux from F-Droid

Get Termux from F-Droid (not Play Store โ€” the Play Store version is outdated).

Get Termux at: f-droid.org/packages/com.termux
2

Install required packages

# Update and install deps
$ pkg update && pkg upgrade -y
$ pkg install nodejs git python make clang

# Verify
$ node --version # v22.x
3

Clone & install

better-sqlite3 compiles natively โ€” takes ~2 minutes on first install:

$ git clone https://github.com/rythmmcosta/open-cli.git
$ cd open-cli && npm install && npm run build && npm link
4

Connect Ollama on your PC (optional)

Run Ollama on your home machine and use it from your phone:

# On your PC, expose Ollama on LAN:
$ OLLAMA_HOST=0.0.0.0:11434 ollama serve

# In Termux:
$ opencli auth # select Ollama, enter PC IP
$ opencli --model ollama:llama3.2 "hello"

โš  Termux Note

Browser automation (Playwright) is NOT available on Android ARM. All other features work fully.

Enable Browser
Automation

The browser "eyes" feature uses Playwright. Install it separately to enable screenshots, click verification, and E2E testing.

Desktop only โ€” Linux/macOS/Windows
# Install Playwright browser
$ opencli browser install

# Take a screenshot
$ opencli browser screenshot https://example.com

# Or use --browser flag in prompts
$ opencli --browser "check if the login button exists"