Skip to main content

ProwlrBot — Always watching. Always ready. An autonomous AI agent platform for monitoring, automation, and multi-channel communication.

Project description

ProwlrBot Logo

ProwlrBot

Always watching. Always ready.
Your AI agent. Your machine. Your rules.

Quick StartScreenshotsDocsMarketplaceROAR ProtocolSponsor

Stars License Python Self-hosted Local models Channels v1.0.0


ProwlrBot is a self-hosted AI agent platform that runs on your machine, connects to every channel you use, and keeps working while you sleep.

It monitors websites for changes. It runs scheduled tasks. It answers your team on Discord, Telegram, Slack, and WhatsApp at the same time. It coordinates multiple AI agents in a War Room so they don't step on each other. It does all of this with your API keys, your models, your data — nothing leaves your network unless you want it to.

No subscription. No vendor lock-in. Install and own it forever.

pip install prowlrbot && prowlr init --defaults && prowlr app

What It Looks Like

Mission Control Dashboard Dashboard Real-time overview of your agent, channels, and system health

Chat Interface Chat Talk to your agent with full tool use, code execution, and file handling

Skills Marketplace Marketplace Browse, install, and publish skills — PDF processing, email, monitoring, and more

Web Monitoring Monitoring Watch websites and APIs for changes — get alerted when something moves

MCP Server Integration MCP Servers Connect any MCP server — tools appear instantly with hot-reload

Channel Management Channels Discord, Telegram, Slack, WhatsApp, DingTalk, Feishu, iMessage — all at once

Team Builder Team Builder Design multi-agent teams with specialized roles and capabilities

More screenshots
Skills
Skills Manager
Workspace
Agent Workspace
Cron Jobs
Scheduled Tasks
Appearance
Theme Customization
Hardware Advisor
Hardware Advisor

Why ProwlrBot?

There are a lot of AI chatbots. ProwlrBot is not a chatbot. It's an agent that acts.

The old way With ProwlrBot
Check 10 tabs manually every morning Agent monitors all of them, pings you only when something changes
Forget to follow up on something Schedule it once — the agent handles it at 9am every day
Three Claude terminals stepping on each other War Room coordinates them — file locks, shared task board, zero conflicts
Paying $50/mo for a tool that phones home Self-hosted, model-agnostic, free forever
Building separate bots for Discord + Telegram + Slack One agent, all channels, same brain

Core Principles

  • Your data stays yours. API keys are encrypted locally. Chat history lives on your machine. Run entirely on local models with Ollama — no API key, no data leaving your network.
  • It speaks where you already are. One agent, 8+ channels. Discord, Telegram, Slack, WhatsApp, DingTalk, Feishu, iMessage, Console. Custom channels too.
  • It grows with you. Skill marketplace for adding capabilities. ROAR Protocol for agent-to-agent communication across machines and organizations.

Get Started in 60 Seconds

# 1. Install
pip install prowlrbot

# 2. Initialize (auto-detects local models)
prowlr init --defaults

# 3. Set an API key (optional — skip if using Ollama)
prowlr env set OPENAI_API_KEY sk-your-key

# 4. Launch
prowlr app

Open http://localhost:8088 — your agent is live.

No API key? ProwlrBot auto-detects Ollama. Just prowlr init --defaults && prowlr app.

Install from source (development)
git clone https://github.com/ProwlrBot/prowlrbot.git
cd prowlrbot
python3 -m venv .venv
source .venv/bin/activate   # Windows: .venv\Scripts\activate
pip install -e ".[dev]"
prowlr init --defaults
prowlr app
Docker
docker pull ghcr.io/prowlrbot/prowlrbot:latest
docker run -p 8088:8088 -v ~/.prowlrbot:/root/.prowlrbot ghcr.io/prowlrbot/prowlrbot:latest
Desktop App (macOS / Windows / Linux)

Download from GitHub Releases or build yourself:

# macOS (.app + DMG)
bash packaging/build_macos.sh

# Windows (.exe)
powershell -File packaging/build_windows.ps1

# Linux (binary + AppImage)
bash packaging/build_linux.sh --appimage

System tray app with one-click launch. Full guide →

WSL notes
  • Clone to /home/user/prowlrbot, not /mnt/c/...
  • Create venv inside the project: python3 -m venv .venv
  • See Troubleshooting Guide for WSL-specific issues

Architecture

                    YOU
                     │
          ┌──────────┼──────────┐
          ▼          ▼          ▼
      Discord    Telegram    Slack       + 6 more channels
          │          │          │
          └──────────┼──────────┘
                     ▼
             ChannelManager              queue + debounce (4 workers/channel)
                     │
                     ▼
              AgentRunner                session management
                     │
                     ▼
           ProwlrBotAgent (ReAct)        reasoning loop
            ┌────┬────┬────┬────┐
            ▼    ▼    ▼    ▼    ▼
         Tools Skills MCP Memory ROAR    capabilities
            │    │    │    │    │
            └────┼────┼────┼────┘
                 ▼    ▼    ▼
         ┌───────────────────────┐
         │     Smart Router      │       cost × w₁ + speed × w₂ + avail × w₃
         ├───────────────────────┤
         │ OpenAI  │ Anthropic   │
         │ Groq    │ Z.ai        │
         │ Ollama  │ llama.cpp   │
         │ MLX     │ Azure       │
         └───────────────────────┘
                     │
                     ▼
              ChatManager                persistence (chats + sessions)

Provider detection flow:

Environment Scan → ProviderDetector (env vars) → HealthChecker (async probes)
→ SmartRouter (score = w_cost × cost + w_perf × perf + w_avail × avail)
→ Selected Provider → FallbackChain on failure

Features

Multi-Agent War Room

The killer feature: multiple AI agents coordinate in real-time without stepping on each other.

╔══════════════════════════════════════════════════════════════╗
║                      MISSION BOARD                          ║
╠════╦══════════════════════╦═══════════╦══════════════════════╣
║ ID ║ Task                 ║ Agent     ║ Status               ║
╠════╬══════════════════════╬═══════════╬══════════════════════╣
║  1 ║ Build auth API       ║ backend   ║ In Progress          ║
║  2 ║ Login page           ║ frontend  ║ In Progress          ║
║  3 ║ Write auth tests     ║ tester    ║ Waiting (locked)     ║
║  4 ║ API documentation    ║ --        ║ Available            ║
╚════╩══════════════════════╩═══════════╩══════════════════════╝

13 coordination toolscheck_mission_board, claim_task, lock_file, share_finding, and more.

Quick War Room setup
# 1. Start the hub
cd prowlrbot && PYTHONPATH=src python3 -m prowlrbot.hub.bridge

# 2. In your project's .mcp.json:
{
  "mcpServers": {
    "prowlr-hub": {
      "command": "python3",
      "args": ["-m", "prowlrbot.hub"],
      "cwd": "/path/to/prowlrbot",
      "env": {
        "PYTHONPATH": "/path/to/prowlrbot/src",
        "PROWLR_AGENT_NAME": "frontend",
        "PROWLR_CAPABILITIES": "react,typescript,css"
      }
    }
  }
}

# 3. Restart Claude Code, then:
# "Call check_mission_board and get_agents to see the War Room."

Cross-machine support via HTTP bridge + Tailscale/Cloudflare. Full guide →


Smart Model Router

Automatically picks the best provider based on scoring:

score = cost × w₁ + speed × w₂ + availability × w₃
Provider How to Enable Cost
OpenAI OPENAI_API_KEY $$
Anthropic ANTHROPIC_API_KEY $$
Groq GROQ_API_KEY $
Z.ai ZAI_API_KEY $$
Ollama Auto-detected locally Free
llama.cpp pip install 'prowlrbot[llamacpp]' Free
MLX pip install 'prowlrbot[mlx]' (Apple Silicon) Free

Falls back automatically if a provider fails. Zero config needed — just set the API key and ProwlrBot finds it.


9+ Communication Channels

Discord
Built-in
Telegram
Built-in
Slack
Setup guide
WhatsApp
Setup guide
DingTalk
Built-in
Feishu/Lark
Built-in
QQ
Built-in
iMessage
macOS only
Console
Default
Custom channels via ~/.prowlrbot/custom_channels/

One agent brain, all channels simultaneously. Build custom channels for anything else. Channel guide →


Skills Marketplace

Marketplace

Browse, install, and publish skills that extend your agent:

prowlr market search "monitor"       # Find skills
prowlr market install site-monitor   # Install one
prowlr market seed                   # Load all official listings + bundles

11 official listings — morning briefing, smart reminders, site monitor, competitor watch, invoice chaser, and more. 6 curated bundles — Security Starter, Full-Stack Dev, Data & Analytics, Document Pro, Daily Essentials, Business Ops.

Submit your own skills through the console UI or CLI. Marketplace guide →


Web Monitoring & Cron Jobs

# Monitor a website for changes
prowlr monitor add https://example.com/pricing --interval 1h

# Schedule an autonomous agent task
prowlr cron add "Check email and summarize" --schedule "0 9 * * *"
prowlr cron add "Monitor competitors" --interval 30m
Monitoring

ROAR Protocol

One protocol. Any agent. ProwlrBot speaks ROAR — the open agent communication protocol that bridges MCP, A2A, and ACP.

Layer 5: Stream     Real-time events (SSE, WebSocket)
Layer 4: Exchange   ROARMessage — 7 intent types, HMAC signing
Layer 3: Connect    HTTP | WebSocket | stdio | gRPC
Layer 2: Discovery  Hub + Cache + SQLite directory
Layer 1: Identity   W3C DIDs (did:roar, did:key, did:web)
# Check any ROAR agent
curl -s https://app.prowlrbot.com/roar/health
curl -s https://app.prowlrbot.com/roar/card | jq .
ROAR examples
# Send a task to another agent
from prowlrbot.protocols.sdk import AgentIdentity, MessageIntent
from prowlrbot.protocols.sdk.client import ROARClient

identity = AgentIdentity(display_name="my-agent", capabilities=["code-review"])
client = ROARClient(identity, signing_secret=os.environ["ROAR_SHARED_SECRET"])

response = await client.send_remote(
    to_agent_id="did:roar:agent:reviewer-abc123",
    intent=MessageIntent.DELEGATE,
    content={"task": "Review main.py"},
)

Three runnable examples in examples/roar/:

  1. Basic message exchange — sign, send, verify
  2. MCP bridge — translate MCP tool calls through ROAR
  3. Multi-agent delegation — coordinator discovers and delegates to specialized agents

Live Demo →ROAR Spec →Usage Guide →PyPI Package →


v1.0.0 — What's New

35 features shipped in v1.0.0

Security & Trust

  • Fine-grained tool permissions with command blocklist and file sandboxing
  • Agent safety guardrails — loop detection, token budgets, exponential backoff
  • Cost dashboard with real-time tracking, budget limits, and model fallback
  • Automated security audit (GET /api/health/security-audit) covering OWASP Top 10
  • 23 security vulnerabilities found and fixed across the codebase

Intelligence

  • Vector-based semantic memory search with local ONNX embeddings
  • RAG pipeline — ingest PDF, DOCX, TXT, code files with intelligent chunking
  • Agent templates — 11 pre-built personas (DevOps, SRE, Research, Community Manager, etc.)
  • Memory visualization API — timeline, stats, semantic search, compaction

Automation

  • Webhook gateway — receive triggers from GitHub, Stripe, or any HTTP source
  • Advanced web monitor — visual diff engine with smart alert filtering
  • Huginn & n8n migration toolkit — prowlr import-from CLI

Infrastructure

  • Docker Compose one-click production stack
  • Desktop app packaging (macOS DMG, Windows EXE, Linux AppImage)
  • Plugin & middleware extension system
  • A2A protocol client for cross-agent task delegation

Console UI

  • Mission Control redesign with StatusBar, CommandPalette (Ctrl+K), ContextPanel
  • Cost dashboard, trace viewer, health dashboard pages
  • Responsive mobile PWA with bottom tab bar
  • Onboarding setup wizard for first-run experience

AgentVersestandalone app

  • Gamified agent coordination — zones, avatars, XP, guilds, arena, trades
  • Real-time WebSocket updates with prowlr-office design system
  • Connects to any ProwlrBot instance via PROWLRBOT_URL

Full changelog →


Security

ProwlrBot is built with a security-first posture:

  • JWT authentication — all API endpoints require a signed JWT. Tokens are issued on login and validated on every request via FastAPI middleware.
  • RBAC — four roles enforced at the route level: admin (full access), operator (run agents, manage channels/cron), viewer (read-only), agent (machine-to-machine, limited to task and finding endpoints).
  • CSRF protection — double-submit cookie pattern applied to all state-mutating endpoints.
  • Rate limiting — per-IP and per-user limits on the API to prevent abuse.
  • Secret isolation — API keys and tokens are stored in ~/.prowlrbot.secret/envs.json (mode 0o600), never in the main config file.
  • Bandit scan — automated static analysis runs in CI. Current result: 0 high-severity issues.
  • Security audit endpointGET /api/health/security-audit checks OWASP Top 10 coverage at runtime.

MCP Integration

Connect any Model Context Protocol server — tools appear instantly with hot-reload:

{
  "mcp": {
    "servers": {
      "filesystem": {
        "command": "npx",
        "args": ["-y", "@modelcontextprotocol/server-filesystem", "/path"]
      }
    }
  }
}
MCP

Local Models (No Cloud Required)

Run everything on your machine. No API keys. No data leaving your computer.

Backend Best For Install
Ollama Cross-platform, easiest ollama.ai
llama.cpp GGUF models, CPU/GPU pip install 'prowlrbot[llamacpp]'
MLX Apple Silicon (M1-M4) pip install 'prowlrbot[mlx]'

ProwlrBot auto-detects Ollama on startup. No configuration needed.


Desktop App

Native system tray app for macOS, Windows, and Linux. One click to launch, no terminal required.

# Build for your platform
bash packaging/build_macos.sh      # .app + DMG
powershell packaging/build_windows.ps1  # .exe
bash packaging/build_linux.sh --appimage  # AppImage

Purple circle = idle. Green = active. Red = error. Build guide →


Project Structure

prowlrbot/
├── src/prowlrbot/
│   ├── agents/              # ReAct agent, tools, skills, memory
│   ├── app/                 # FastAPI app, channels, cron, MCP, routers
│   ├── cli/                 # Click CLI (`prowlr` command)
│   ├── config/              # Pydantic models + hot-reload
│   ├── providers/           # Model registry, detector, smart router
│   ├── protocols/           # ROAR protocol SDK + A2A server + client
│   ├── marketplace/         # Skill marketplace store + seed data
│   ├── monitor/             # Web/API change detection + visual diff
│   ├── rag/                 # RAG pipeline — ingest, chunk, retrieve
│   ├── webhooks/            # Webhook gateway — triggers + actions
│   ├── agentverse/          # AgentVerse world state + event hooks
│   ├── security/            # Audit reports + middleware
│   ├── desktop/             # System tray launcher (PyInstaller)
│   ├── migrate/             # Huginn + n8n import tools
│   ├── backup/              # Conversation backup engine
│   ├── workflows/           # Visual automation engine
│   ├── plugins/             # Plugin lifecycle + middleware
│   ├── hub/                 # ProwlrHub war room (MCP server)
│   └── envs/                # Encrypted secret store
├── console/                 # React 18 + Vite + Ant Design dashboard
├── packages/roar-sdk-ts/    # TypeScript ROAR SDK
├── marketplace-listings/    # 11 official skill listings
├── examples/roar/           # ROAR protocol examples
├── packaging/               # Desktop build scripts (macOS/Win/Linux)
├── swarm/                   # Cross-machine Redis execution
├── plugins/                 # Claude Code plugins
├── docs/                    # Documentation hub
│   ├── guides/              # Setup, channels, desktop, marketplace
│   ├── protocols/           # ROAR spec + layer docs
│   └── blog/                # Project blog
└── website/                 # GitHub Pages docs site

Documentation

Guide What You'll Learn
Channel Setup Connect Discord, Telegram, DingTalk, Feishu, iMessage, QQ
Slack Setup Custom channel with Slack Bolt + Socket Mode
WhatsApp Setup WhatsApp Business Cloud API + webhooks
Provider Config OpenAI, Anthropic, Groq, Ollama, local models
Skills Guide Enable, create, and publish skills
MCP Setup Connect filesystem, GitHub, Postgres MCP servers
Marketplace Browse, install, publish, credits system
Monitoring Watch websites and APIs for changes
Cron Jobs Schedule autonomous agent tasks
Desktop Build Build DMG/EXE/AppImage desktop app
Deployment Docker, Fly.io, systemd, nginx
ROAR Protocol Agent communication spec — identity, discovery, streaming
Cross-Network Connect agents across machines
Memory System Tiered memory, vector search, RAG
CLI Reference Every command, every flag
Troubleshooting WSL, pip, ports, MCP, console fixes

Full docs index →


Ecosystem

Project Description
ProwlrBot Core agent platform (you are here)
ROAR Protocol Agent communication standard — pip install roar-protocol
Marketplace Skills & agents marketplace
AgentVerse Gamified agent world — zones, avatars, XP, guilds, arena
prowlr-office Collaborative workspace for humans + AI agents (coming soon)
Docs Centralized documentation

Testing

The test suite uses pytest with pytest-asyncio (asyncio_mode = "auto"). 1,085 tests currently pass.

pytest                          # full suite
pytest -m "not slow"           # skip integration/slow tests
pytest tests/test_react_agent_tool_choice.py  # single file

Contributing

We welcome contributions! See CONTRIBUTING.md for commit conventions and PR guidelines.

Good first ways to get involved:

  • Star the repo — helps more people find the project
  • Open an issue — bugs, questions, ideas
  • Start a discussion — share your setup, ask how something works
  • Build a skill — publish it to the marketplace
  • Tell someone — word of mouth is the fastest way to grow

Support the Project

ProwlrBot is free, open source, and will stay that way. If it saves you time, consider sponsoring.

GitHub Sponsors   Buy Me a Coffee   Ko-fi   Open Collective


License

ProwlrBot is open source under the Apache 2.0 License.


ProwlrBot — Always watching. Always ready.
Built by kdairatchi

DocsBlogDiscussionsIssuesMarketplaceContributeSponsor

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

prowlrbot-1.0.0.tar.gz (5.1 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

prowlrbot-1.0.0-py3-none-any.whl (5.4 MB view details)

Uploaded Python 3

File details

Details for the file prowlrbot-1.0.0.tar.gz.

File metadata

  • Download URL: prowlrbot-1.0.0.tar.gz
  • Upload date:
  • Size: 5.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for prowlrbot-1.0.0.tar.gz
Algorithm Hash digest
SHA256 9d0360add2f50e8b77611e8d4dcacbe25f99f61a87249bcddfb3ff0697116fba
MD5 d6f45988700228df7e95c7c0cfe61fe5
BLAKE2b-256 73ec0ac603e6140e2614bb40f372b74ab189e14ee381bda063d452f6387d952e

See more details on using hashes here.

File details

Details for the file prowlrbot-1.0.0-py3-none-any.whl.

File metadata

  • Download URL: prowlrbot-1.0.0-py3-none-any.whl
  • Upload date:
  • Size: 5.4 MB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.20

File hashes

Hashes for prowlrbot-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a832550c2a6b21348487f0e94ad9c9cc475c6c0d6e362a68524cedb992faad08
MD5 59930c6c3ee7bad541f837ff2587252c
BLAKE2b-256 75363dc0ccc9a21ce20eef4f7f7adb505a76e909ac07aefce5d980a4e1476948

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page