Metadata-Version: 2.5
Name: snippbot
Version: 0.5.0
Summary: Snippbot - Autonomous AI agents for your local machine
Project-URL: Homepage, https://snippbot.com
Project-URL: Documentation, https://docs.snippbot.com
Project-URL: Issues, https://issues.snippbot.com
Author: Snippbot Team
License: Proprietary
Keywords: agents,ai,autonomous,claude,snippbot
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: Other/Proprietary License
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Libraries :: Python Modules
Requires-Python: >=3.11
Requires-Dist: aiofiles>=23.0
Requires-Dist: aiohttp>=3.9
Requires-Dist: aiosqlite>=0.19
Requires-Dist: anthropic>=0.18
Requires-Dist: bcrypt>=4.0
Requires-Dist: beautifulsoup4>=4.12
Requires-Dist: click>=8.1
Requires-Dist: croniter>=2.0
Requires-Dist: cryptography>=41.0
Requires-Dist: ddgs>=9.0
Requires-Dist: docker>=7.0.0
Requires-Dist: faster-whisper>=1.0.0; sys_platform != 'darwin' or (platform_machine == 'arm64' and (python_version < '3.13' or (python_version == '3.13' and platform_release >= '22') or platform_release >= '23')) or (platform_machine == 'x86_64' and ((python_version < '3.13' and platform_release >= '20') or (python_version == '3.13' and platform_release >= '22')))
Requires-Dist: google-api-python-client>=2.100.0
Requires-Dist: google-auth-oauthlib>=1.1.0
Requires-Dist: google-auth[requests]>=2.0
Requires-Dist: httpx>=0.26
Requires-Dist: huggingface-hub>=0.20
Requires-Dist: jsonpath-ng>=1.6
Requires-Dist: jsonschema>=4.20
Requires-Dist: keyring>=24.0
Requires-Dist: mcp<2,>=1.8
Requires-Dist: numpy>=1.26
Requires-Dist: ocrmac>=0.5.0; sys_platform == 'darwin'
Requires-Dist: onnxruntime>=1.17; sys_platform != 'darwin' or (platform_machine == 'arm64' and (python_version < '3.13' or (python_version == '3.13' and platform_release >= '22') or platform_release >= '23')) or (platform_machine == 'x86_64' and ((python_version < '3.13' and platform_release >= '20') or (python_version == '3.13' and platform_release >= '22')))
Requires-Dist: pillow>=10.0.0
Requires-Dist: piper-tts>=1.2.0; sys_platform != 'darwin' or (platform_machine == 'arm64' and (python_version < '3.13' or (python_version == '3.13' and platform_release >= '22') or platform_release >= '23')) or (platform_machine == 'x86_64' and ((python_version < '3.13' and platform_release >= '20') or (python_version == '3.13' and platform_release >= '22')))
Requires-Dist: playwright>=1.40.0; sys_platform != 'darwin' or python_version < '3.13' or platform_release >= '20'
Requires-Dist: podman>=4.0
Requires-Dist: psutil>=5.9
Requires-Dist: pydantic>=2.5
Requires-Dist: pyjwt>=2.8
Requires-Dist: pynacl>=1.5
Requires-Dist: pyngrok<8,>=7
Requires-Dist: pyotp>=2.9
Requires-Dist: pypdf>=3.0.0
Requires-Dist: python-dateutil>=2.8
Requires-Dist: python-multipart>=0.0.9
Requires-Dist: pyyaml>=6.0
Requires-Dist: rich>=13.7
Requires-Dist: sqlite-vec>=0.1
Requires-Dist: starlette<1.0,>=0.35
Requires-Dist: tokenizers>=0.15
Requires-Dist: toml>=0.10
Requires-Dist: uvicorn>=0.27
Requires-Dist: watchdog>=4.0; sys_platform == 'linux'
Requires-Dist: watchfiles>=0.21
Requires-Dist: websockets>=12.0
Requires-Dist: winocr>=0.0.5; sys_platform == 'win32'
Requires-Dist: zeroconf>=0.131
Provides-Extra: all
Requires-Dist: pytesseract>=0.3.10; extra == 'all'
Requires-Dist: python-pptx>=0.6.21; extra == 'all'
Requires-Dist: scikit-learn>=1.4; (sys_platform != 'darwin' or platform_machine != 'arm64' or platform_release >= '21') and extra == 'all'
Requires-Dist: sentence-transformers>=3.0; (sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.14') and extra == 'all'
Requires-Dist: solders>=0.21; extra == 'all'
Requires-Dist: umap-learn>=0.5; ((sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.14') and (sys_platform != 'darwin' or platform_machine != 'arm64' or platform_release >= '21')) and extra == 'all'
Provides-Extra: archives
Requires-Dist: py7zr>=1.0; extra == 'archives'
Provides-Extra: browser
Provides-Extra: design
Requires-Dist: python-pptx>=0.6.21; extra == 'design'
Provides-Extra: devices
Provides-Extra: embeddings
Requires-Dist: scikit-learn>=1.4; (sys_platform != 'darwin' or platform_machine != 'arm64' or platform_release >= '21') and extra == 'embeddings'
Requires-Dist: sentence-transformers>=3.0; (sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.14') and extra == 'embeddings'
Requires-Dist: umap-learn>=0.5; ((sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.14') and (sys_platform != 'darwin' or platform_machine != 'arm64' or platform_release >= '21')) and extra == 'embeddings'
Provides-Extra: gmail
Provides-Extra: ocr
Requires-Dist: pytesseract>=0.3.10; extra == 'ocr'
Provides-Extra: sandbox
Provides-Extra: search
Provides-Extra: semantic
Requires-Dist: sentence-transformers>=3.0; (sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.14') and extra == 'semantic'
Provides-Extra: tunnel
Provides-Extra: visualization
Requires-Dist: scikit-learn>=1.4; (sys_platform != 'darwin' or platform_machine != 'arm64' or platform_release >= '21') and extra == 'visualization'
Requires-Dist: umap-learn>=0.5; ((sys_platform != 'darwin' or platform_machine != 'x86_64' or python_version < '3.14') and (sys_platform != 'darwin' or platform_machine != 'arm64' or platform_release >= '21')) and extra == 'visualization'
Provides-Extra: voice
Provides-Extra: wallet
Requires-Dist: solders>=0.21; extra == 'wallet'
Description-Content-Type: text/markdown

# Snippbot

**Your own AI agents that actually do the work.**

Snippbot is a **self-hosted autonomous AI agent platform**. Install it on your own
machine or server, connect your AI providers, and let agents research, build,
automate, and execute — while you focus on strategy. Everything runs on your
infrastructure; your prompts, data, and API keys never leave your control.

It ships as a single, self-contained daemon — a Starlette API server **and** a
bundled React UI in one process on port **18781**. The only runtime requirement
is **Python 3.11+**: the compiled UI and the agent gateway are bundled inside the
package, so there's no Node, pnpm, or repo checkout to manage.

## Install

```bash
pipx install snippbot      # recommended — isolated environment, `snippbot` on PATH
```

`pipx` works the same on macOS, Linux, and Windows. Don't have it? Install it from
[pipx.pypa.io](https://pipx.pypa.io/stable/installation/). Prefer pip? Use a
virtualenv (modern macOS/Debian block a system `pip install` per
[PEP 668](https://peps.python.org/pep-0668/)):

```bash
python3 -m venv ~/.snippbot-venv && ~/.snippbot-venv/bin/pip install snippbot
```

One install includes the full feature set: local voice (speech-to-text and
text-to-speech), the agent browser tool, Gmail, web search, OCR, and semantic
memory recall. Two pieces download on first use because they're large:

- **Chromium** for the browser tool (~280 MB: the browser plus its headless shell) — *Settings → Browser → Install Chromium*.
- **Memory visualization pack** (scikit-learn + UMAP, ~70–110 MB) for the Memory
  Nebula map — *Memory → Explore → Install visualization pack*.

Snippbot shows you exactly what each one installs and asks before it changes
anything. `snippbot doctor` lists which features this install has.

## Quick start

```bash
snippbot setup       # create your account + awaken your first agent (browser wizard)
snippbot start       # start the daemon (API + UI on :18781)
```

Then open <http://localhost:18781/>. A quick health check:

```bash
curl http://127.0.0.1:18781/health     # {"status": "ok", "service": "snippbot"}
```

`snippbot start` runs in the **foreground**. To launch on login and auto-restart
on crash, register it as a user-level service (systemd on Linux, launchd on
macOS, Task Scheduler on Windows) — no `sudo` required:

```bash
snippbot service install     # install + start
snippbot service status      # check it
```

To reach it from other machines (server/VM), bind to all interfaces and open
ports **18781** (API + UI) and **8787** (agent gateway) in your firewall:

```bash
snippbot start --host 0.0.0.0
```

## What Snippbot does

- **Multi-agent orchestration** — Architect → Executor → Reviewer team loop, each
  agent configurable with its own identity, memory, tools, and trust tier. Spawn
  sub-agents on demand for research, coding, or analysis.
- **Projects & workflows** — AI-generated plans with phases, tasks, and approval
  gates; a drag-and-drop DAG workflow builder with conditional branching and
  parallel execution.
- **Scheduler** — Cron, natural language (`every day at 9am`), one-time triggers,
  chains, conditions, and auto-pause on failure.
- **Goal-seeking loops** — Autonomous runs that iterate until a goal is met
  (verifiable shell check, LLM judge, or hybrid) or a budget rail stops them;
  manual / scheduled / event triggers, 7 built-in templates, chaining, and
  push/Slack notifications.
- **Persistent memory** — Layered context with episodic store, full-text +
  vector search, knowledge graph, automatic consolidation, and end-of-conversation
  reflection that updates the agent's notebook.
- **Thinking engine & proactivity** — Autonomous reasoning cycles that generate
  insights and track goals, with quiet hours and rate limits.
- **Browser automation** — Full Chrome DevTools control with recording/replay,
  stealth mode, and persistent sessions.
- **Multi-channel messaging** — Slack, Discord, Telegram, WhatsApp, Microsoft
  Teams, and Google Chat. Plus email and push notifications.
- **Security & sandboxing** — 5 permission tiers plus two isolation layers: a
  container engine (Docker/Podman) for untrusted code and an OS-level fence
  (macOS Seatbelt / Linux bubblewrap or firejail) for the agent's own commands.
  DLP scanning, encrypted secret storage, and a security scanner.
- **Voice & devices** — Local and cloud STT/TTS; pair and drive remote devices
  over a WebSocket protocol.
- **Marketplace** — The Singularity marketplace for installing skills, tools, and
  agent packages, buying packages, and funding bounties in USD via Stripe.

> **Coming soon:** USDC payments + agent autonomy — bounded autonomous agent
> payments (USDC/x402 on Solana) with per-transaction/daily caps, allowlists, and
> escrow. *In development.*

## Optional: Claude CLI agent backend

To run agents on your Claude Pro/Team account via the local **Claude CLI**, you
also need **Node.js 18+** and the `@anthropic-ai/claude-code` package:

```bash
npm install -g @anthropic-ai/claude-code   # global install needs sudo on a server
claude login                               # then authenticate
```

This is optional — you can skip it and run on an Anthropic (or other provider)
API key instead.

## Configuration & data

All state lives under `~/.snippbot/` (config, SQLite database, agent workspaces):

- `~/.snippbot/config.toml` — main config
- `SNIPPBOT_DATA_DIR` — override the data directory
- `SNIPPBOT_HOST` / `SNIPPBOT_PORT` — override the bind address / port (default `127.0.0.1:18781`)

Resolution order: environment variables → `~/.snippbot/config.toml` → built-in defaults.

## CLI

```bash
snippbot setup        # first-run wizard            snippbot start|stop|status
snippbot doctor       # diagnose system health      snippbot service install
snippbot config list  # view config                 snippbot secrets set KEY
snippbot project ...  # projects                    snippbot marketplace ...
snippbot --version    snippbot uninstall            snippbot --help
```

Full command reference: **[docs.snippbot.com/cli](https://docs.snippbot.com/cli/)**.

## Upgrading

```bash
pipx upgrade snippbot
```

## Links

- Home: <https://snippbot.com>
- Install guide: <https://snippbot.com/install>
- Documentation: <https://docs.snippbot.com>
- CLI reference: <https://docs.snippbot.com/cli/>

## License

Free for personal, educational, and non-commercial use. **Commercial use requires
a license** — see the [Terms of Service](https://snippbot.com/terms).
