Install
Lisa runs on your own machine. Pick the easiest path for your platform — both options below take about 60 seconds end-to-end.
Prerequisites
- Node.js ≥ 20 (
node --versionto check; Homebrew installs Node automatically as a dep) - macOS or Linux (Windows untested; the iMessage channel is macOS-only)
- An API key for at least one LLM provider — see PROVIDERS.md
🍎 Mac apps (recommended on macOS)
Signed + Apple-notarized DMG with the universal-binary
Lisa.app (full chat client). The menu-bar / notch pill
("Lisa Island") is built in — turn it on from Lisa ▸ Settings… ▸ Show
Lisa Island. No Gatekeeper warning, no xattr workaround.
After dragging Lisa.app to /Applications, install the backend and start it:
npm install -g @oratis/lisa
lisa serve --web # the app loads http://localhost:5757 Homebrew (CLI only)
brew tap oratis/tap
brew install lisa
# Updates later:
brew update && brew upgrade lisa npm (cross-platform)
npm i -g @oratis/lisa
# One-shot, no install:
npx @oratis/lisa "say hi" First launch
mkdir -p ~/.lisa
echo 'ANTHROPIC_API_KEY=sk-ant-...' > ~/.lisa/config.env
lisa # interactive REPL (auto-runs birth ritual on first launch)
lisa serve --web # browser UI on http://localhost:5757 First-run birth ritual takes ~30 seconds (one-time). Lisa picks her own Big-Five seed, then asks the LLM to write her identity, purpose, constitution, and first desire. Every install is a different person.
Other LLM providers
Skip Anthropic if you can't reach it — Lisa auto-routes by model-name prefix:
# DeepSeek (cheap, OpenAI-compatible)
echo 'DEEPSEEK_API_KEY=sk-...' >> ~/.lisa/config.env
lisa --model deepseek-chat
# Google Gemini
echo 'GEMINI_API_KEY=...' >> ~/.lisa/config.env
lisa --model gemini-2.5-flash
# Local Ollama (fully offline)
echo 'LISA_BASE_URL=http://localhost:11434/v1' >> ~/.lisa/config.env
echo 'LISA_API_KEY=ollama' >> ~/.lisa/config.env
lisa --model qwen2.5-32b-instruct See PROVIDERS.md for 10+ ready-to-use recipes (DeepSeek, Volcengine Doubao, Aliyun Qwen, Moonshot Kimi, xAI Grok, Zhipu GLM, Mistral, Perplexity, Stepfun, Yi, Baichuan, MiniMax, Hunyuan, Ollama, …).
Behind a corporate / region-blocked network
If your shell curl works through a proxy but Lisa fails with
"403 forbidden", set the proxy env when starting Lisa — undici's global
dispatcher will be auto-bridged on startup.
HTTPS_PROXY=http://127.0.0.1:7897 lisa serve --web
# Persist instead:
echo 'HTTPS_PROXY=http://127.0.0.1:7897' >> ~/.lisa/config.env Heartbeat (autonomous time)
lisa heartbeat install --every 30m --load
# Removes: lisa heartbeat uninstall IM channels (talk to Lisa from your phone)
The simplest path is Telegram (free, zero deps):
# 1. Get a bot token from @BotFather on Telegram
echo 'TELEGRAM_BOT_TOKEN=1234:ABC...' >> ~/.lisa/config.env
# 2. Copy + edit the config
cp channels.example.json ~/.lisa/channels.json
# Edit ~/.lisa/channels.json — set "enabled": true on telegram
# 3. Run
lisa serve --channels telegram Diagnostics
lisa --version # print version
lisa status # one-shot snapshot
lisa doctor # checks config / network / git / providers
lisa monitor # live TUI dashboard (Ctrl-C to quit) Build from source (contributors)
git clone https://github.com/oratis/LISA.git
cd LISA
npm install
npm run build
node dist/cli.js --help
# Optionally link so `lisa` works globally:
npm link Source
All code is on GitHub: github.com/oratis/LISA. MIT license. PRs welcome.