B0Bot is a cybersecurity news intelligence platform built around a three-service architecture: an ingestion service that polls RSS feeds and enriches articles with CVE/severity metadata, an api-service that runs a LangGraph agent pipeline for search, analysis, and a grounded Ask AI chat, and a notification service that sends digest emails to subscribers.

The project has three services, using PostgreSQL (with pgvector for embeddings) and Redis to share data and handle caching, sessions, and job queues:
/chat request through a LangGraph agent pipelineAll three run together via Docker Compose, alongside Postgres and Redis.
cp .env.example .env
Fill in the values - see .env.example for what each one is for. At minimum you'll need a HuggingFace token - used for the local embedding/sentiment models, and to authenticate HuggingFace's InferenceClient, which is how the app reaches the hosted Cohere model for summaries, intent classification, and Ask AI.
docker compose up -d
This starts Postgres (pgvector), Redis, and all three services. The api-service will be available at http://localhost:5000.
(Optional) Configure social connectors - see the Social Connectors section below.
(Optional) Configure SMTP settings in .env if you want digest emails to actually send. Subscribing/unsubscribing itself doesn't depend on SMTP - that just updates the subscriber record. Without SMTP configured, the digest worker will fail to send and roll back that delivery attempt rather than crash, so it's safe to leave unset for local development.
Layer 1 - RSS Feeds: Pulls cybersecurity news from curated RSS feeds (KrebsOnSecurity, BleepingComputer, CISA, etc.) with no API key required.
Layer 2 - Opt-in API Connectors: Supports YouTube Data API v3 and NewsAPI.org for additional coverage. Both use free tiers and silently skip if keys are absent. See .env.example for setup.
Every /chat request runs through a LangGraph pipeline of agents, each reading and updating a shared state object:
grounded intent (Ask AI), calls out to Cohere with the specific article's content instead of running the full search pipelineEvery /chat request accepts a session_id. Chat history for that session is stored in Redis with a 1 hour TTL and capped at 10 messages, so follow-up questions have context from previous turns. Ask AI grounding is single-turn only - it applies to the exact message sent right after clicking "Ask AI" on an article, not to later follow-ups in the same session.
Landing page

Dashboard - CVE watchlist, top news, and article feed

Ask AI - grounded answers on a specific article

Search - hybrid search with sentiment per article

Sources - manage RSS feeds powering ingestion

The MIT License 2023
3 followers · starred Mar 2023
B0Bot is a cybersecurity news intelligence platform built around a three-service architecture: an ingestion service that polls RSS feeds and enriches articles with CVE/severity metadata, an api-service that runs a LangGraph agent pipeline for search, analysis, and a grounded Ask AI chat, and a notification service that sends digest emails to subscribers.

The project has three services, using PostgreSQL (with pgvector for embeddings) and Redis to share data and handle caching, sessions, and job queues:
/chat request through a LangGraph agent pipelineAll three run together via Docker Compose, alongside Postgres and Redis.
cp .env.example .env
Fill in the values - see .env.example for what each one is for. At minimum you'll need a HuggingFace token - used for the local embedding/sentiment models, and to authenticate HuggingFace's InferenceClient, which is how the app reaches the hosted Cohere model for summaries, intent classification, and Ask AI.
docker compose up -d
This starts Postgres (pgvector), Redis, and all three services. The api-service will be available at http://localhost:5000.
(Optional) Configure social connectors - see the Social Connectors section below.
(Optional) Configure SMTP settings in .env if you want digest emails to actually send. Subscribing/unsubscribing itself doesn't depend on SMTP - that just updates the subscriber record. Without SMTP configured, the digest worker will fail to send and roll back that delivery attempt rather than crash, so it's safe to leave unset for local development.
Layer 1 - RSS Feeds: Pulls cybersecurity news from curated RSS feeds (KrebsOnSecurity, BleepingComputer, CISA, etc.) with no API key required.
Layer 2 - Opt-in API Connectors: Supports YouTube Data API v3 and NewsAPI.org for additional coverage. Both use free tiers and silently skip if keys are absent. See .env.example for setup.
Every /chat request runs through a LangGraph pipeline of agents, each reading and updating a shared state object:
grounded intent (Ask AI), calls out to Cohere with the specific article's content instead of running the full search pipelineEvery /chat request accepts a session_id. Chat history for that session is stored in Redis with a 1 hour TTL and capped at 10 messages, so follow-up questions have context from previous turns. Ask AI grounding is single-turn only - it applies to the exact message sent right after clicking "Ask AI" on an article, not to later follow-ups in the same session.
Landing page

Dashboard - CVE watchlist, top news, and article feed

Ask AI - grounded answers on a specific article

Search - hybrid search with sentiment per article

Sources - manage RSS feeds powering ingestion

The MIT License 2023
3 followers · starred Mar 2023