Installation
Prerequisites
Section titled “Prerequisites”| Requirement | Minimum | Install |
|---|---|---|
| Python | 3.11+ | python.org |
| Node.js | 20+ | nodejs.org |
| pnpm | 9+ | npm install -g pnpm |
Install
Section titled “Install”One-command install
Section titled “One-command install”Clone the repository and run the install script:
git clone https://github.com/snippbot/snippbot.gitcd snippbot./INSTALL.shThe script:
- Verifies Python 3.11+, Node.js 20+, pnpm
- Creates a Python virtual environment at
.venv/ - Installs Python packages (
core,local,cli) - Installs UI dependencies (
pnpm install) - Starts the dev servers
- Opens http://localhost:5173/setup in your browser
Options:
./INSTALL.sh --no-browser # Don't open browser automatically./INSTALL.sh --fresh # Wipe all data and start fresh./INSTALL.sh --new-account # New account, keep data./INSTALL.sh --keep-data # Re-install, keep everything./INSTALL.sh --vm # Server install (bind 0.0.0.0)./INSTALL.sh --vm 10.0.0.5 # Bind to specific IPPowerShell install
Section titled “PowerShell install”git clone https://github.com/snippbot/snippbot.gitcd snippbot.\INSTALL.ps1Options:
.\INSTALL.ps1 -NoBrowser # Don't open browser.\INSTALL.ps1 -Fresh # Clean install from scratch.\INSTALL.ps1 -NoCompletions # Skip shell completionsInstall from PyPI
Section titled “Install from PyPI”pip install snippbotThen run the setup wizard:
snippbot setupsnippbot startDocker Compose
Section titled “Docker Compose”services: snippbot: image: ghcr.io/snippbot/snippbot:latest ports: - "18781:18781" volumes: - snippbot-data:/root/.snippbot environment: - ANTHROPIC_API_KEY=${ANTHROPIC_API_KEY} restart: unless-stopped
volumes: snippbot-data:docker compose up -dThen open http://localhost:18781/setup to complete setup.
Server / VM install
Section titled “Server / VM install”When installing on a remote server or VM, use --vm to make Snippbot accessible from other machines:
./INSTALL.sh --vmThis binds to 0.0.0.0 instead of 127.0.0.1 and helps configure any firewall to open ports 5173, 18781, and 8787.
Setup wizard
Section titled “Setup wizard”After installation, the 6-step setup wizard runs automatically:
| Step | Name | What it does |
|---|---|---|
| 1 | Genesis | System checks (Python, Node, ports, disk space) |
| 2 | Identity | Your display name, email, and avatar |
| 3 | Account | Create login credentials (username/password or API key) |
| 4 | Voice | Configure text-to-speech provider (optional) |
| 5 | Model | Select AI provider and enter API keys |
| 6 | Ignition | Verify servers are running, enter the Awakening experience |
Start and stop
Section titled “Start and stop”After installation, use START scripts or the CLI to manage servers:
snippbot start # Start daemonsnippbot stop # Stop daemonsnippbot status # Check status./START.sh # Start all servers./START.sh stop # Stop all servers./START.sh status # Check status./START.sh restart # Restart.\START.ps1 # Start all servers.\START.ps1 stop # Stop all servers.\START.ps1 status # Check statusData directory
Section titled “Data directory”All user data is stored in ~/.snippbot/:
~/.snippbot/├── config.toml # System config (ports, log level, API keys)├── setup.json # Setup wizard state├── auth.db # Users, sessions, API keys├── profile_settings.db # User profile and preferences├── snippbot.db # Main application database├── avatar.* # User avatar└── backups/ # Automatic backup snapshotsVerify it’s running
Section titled “Verify it’s running”Open http://localhost:5173 in your browser. You should see the Snippbot dashboard.
You can also verify from the command line:
curl http://localhost:18781/health# {"status": "ok", "service": "snippbot", "uptime_seconds": 3600.5}Troubleshooting
Section titled “Troubleshooting”Server won’t start:
tail -f .logs/backend.log # Check backend logslsof -i :18781 # Check if port is in usePort conflict:
./START.sh stop # Stop existing serverssnippbot stop --force # Force killDatabase issues:
ls -la ~/.snippbot/*.db # Check databases existsnippbot doctor # Run health checkssnippbot reset --soft # Re-run setup wizardFor more, see Troubleshooting → Common Errors.