Skip to content

FAQ

Snippbot is a self-hosted autonomous AI agent system. You run it on your own machine or server, connect it to AI providers like Anthropic or OpenAI, and it executes tasks, scheduled jobs, and workflows on your behalf — with all your data staying on your infrastructure.

Yes. The self-hosted version (Phase 1–5) is free and open-source. Future phases will include optional cloud features.

Anthropic (Claude), OpenAI (GPT), Google Gemini, OpenRouter, DeepSeek, Grok, Groq, and Mistral. You can configure multiple providers and assign different models to different agents.

Only to the AI provider you configure (e.g., Anthropic’s API for Claude). Your prompts, files, and agent memory never leave your server except for the LLM API calls you explicitly enable.


Python 3.11+, Node.js 20+, pnpm 9+, 2 GB RAM, 5 GB disk. See Requirements.

Can I install on a server without a browser?

Section titled “Can I install on a server without a browser?”

Yes. Use ./INSTALL.sh --no-browser or snippbot setup --headless. The headless setup prompts for configuration in the terminal.

Yes, by using different ports and data directories:

Terminal window
SNIPPBOT_PORT=18782 SNIPPBOT_DATA_DIR=~/.snippbot2 snippbot start
Terminal window
pip install --upgrade snippbot
snippbot stop && snippbot start

Or from source:

Terminal window
git pull
pip install -e packages/core packages/local packages/cli
snippbot stop && snippbot start

~/.snippbot/config.toml. View its location with:

Terminal window
snippbot config path
Terminal window
snippbot config set server_port 9000
snippbot stop && snippbot start
# Or:
snippbot start --port 9000

Yes. Configure multiple API keys:

Terminal window
snippbot config set anthropic_api_key sk-ant-...
snippbot config set openai_api_key sk-...

Then assign each agent its own provider in Agents → Settings → Model.

Terminal window
snippbot reset # Full reset (creates backup first)
snippbot reset --soft # Just re-run the setup wizard

Unlimited. Each agent has its own memory, workspace, and model configuration.

Not by default — memory is scoped per agent. Sub-agents inherit their parent’s memory context during task execution but maintain separate episode stores.

Why does my project stay in “pending”?

Section titled “Why does my project stay in “pending”?”

Projects require explicit approval before execution begins. Approve via:

  • Chat UI: click Approve on the plan
  • CLI: snippbot project approve <id>
  • API: POST /api/projects/{id}/approve

Can I run tasks without creating a full project?

Section titled “Can I run tasks without creating a full project?”

Yes — use the chat interface directly. A message sent to an agent triggers a one-off task without the project planning step.


  • Cron: 0 9 * * 1-5 (weekdays at 9am)
  • Interval: every 30 minutes, every 2 hours
  • One-time: at 2026-04-01T14:00:00
  • Natural language: every day at 9am, every Monday

Auto-pause activates after 3 consecutive failures. Re-enable it in Scheduler → Job → Enable or via PUT /api/scheduler/jobs/{id} with {"enabled": true}.


Do I need a public IP for messaging channels?

Section titled “Do I need a public IP for messaging channels?”

Yes — Slack, Discord, Telegram, etc. send webhooks to your server. For local development, use ngrok:

Terminal window
ngrok http 18790

In production, use a reverse proxy with a proper domain. See Reverse Proxy.

Slack, Discord, Telegram, WhatsApp Business, Microsoft Teams, and Google Chat.


Does browser automation require a display?

Section titled “Does browser automation require a display?”

No. It runs headless by default (SNIPPBOT_BROWSER_HEADLESS=true). For debugging, set SNIPPBOT_BROWSER_HEADLESS=false and ensure a display is available.

Docker, Podman, and a process-based fallback (no isolation). Auto-detected: SNIPPBOT_SANDBOX_BACKEND=auto.


Yes, but use a reverse proxy with HTTPS, strong API keys, and ideally IP allowlisting. See Security Hardening.

API keys are stored as SHA-256 hashes in ~/.snippbot/auth.db. The raw key is shown only once at creation.