> ## Documentation Index
> Fetch the complete documentation index at: https://docs.getbindu.com/llms.txt
> Use this file to discover all available pages before exploring further.

# 2.5 Cybersecurity Newsletter Editor

> AI agent that researches threats and generates security newsletters

AI agent that researches threats and generates security newsletters.

## Code

Create `cybersecurity-newsletter-editor.py` with the code below, or save it directly from your editor.

```python theme={null}
"""Cybersecurity Newsletter Editor Agent — powered by Bindu"""

import os
from dotenv import load_dotenv
from agno.agent import Agent
from agno.models.openrouter import OpenRouter
from agno.tools.duckduckgo import DuckDuckGoTools
from bindu.penguin.bindufy import bindufy

# Environment
load_dotenv(os.path.join(os.path.dirname(os.path.abspath(__file__)), ".env"))

OPENROUTER_API_KEY: str = os.environ["OPENROUTER_API_KEY"]

# Agent
agent = Agent(
    name="Cybersecurity Newsletter Editor",
    instructions="""
    You are an expert Cybersecurity Newsletter Editor. When given a topic or request:
    1. Search the web for the latest cybersecurity news and CVEs
    2. Write a professional newsletter section in this format:

    # 🔐 Cybersecurity Newsletter — [Topic/Date]

    ## 🔥 Top Threats This Week
    - Critical active threats with actor names, sectors, and attack vectors

    ## 🛡️ CVE Spotlight
    - 2–3 high-severity CVEs: **CVE-YYYY-XXXXX** | Affected: `software` | CVSS: `score` | Status: `patched/unpatched` 

    ## 📰 News Digest
    - 3–5 short summaries: bold headline + 1–2 sentence summary + source link

    ## ✅ Recommendations
    - 3–5 actionable recommendations for security teams

    ---
    *Newsletter generated by Cybersecurity Newsletter Editor — powered by Bindu*

    Rules: Always search before writing. Return clean Markdown only.
    """,
    model=OpenRouter(id="openai/gpt-oss-120b", api_key=OPENROUTER_API_KEY),
    tools=[DuckDuckGoTools()],
    markdown=True,
)

# Bindu Configuration
config = {
    "author": "your.email@example.com",
    "name": "cybersecurity-newsletter-editor",
    "description": "AI-powered cybersecurity newsletter editor that researches threats, CVEs, and security news.",
    "deployment": {
        "url": "http://localhost:3773",
        "expose": True,
        "cors_origins": ["http://localhost:5173"],
    },
    "skills": [
        "skills/cybersecurity-newsletter-editor",
    ],
}

# Handler
def handler(messages: list[dict[str, str]]):
    return agent.run(input=messages)

# Start
bindufy(config, handler)
```

## Skill Configuration

Create `skills/cybersecurity-newsletter-editor/skill.yaml`:

```yaml theme={null}
# Cybersecurity Newsletter Editor Skill
# Provides intelligent newsletter generation capabilities for cybersecurity topics

id: cybersecurity-newsletter-editor-v1
name: cybersecurity-newsletter-editor
version: 1.0.0
author: your.email@example.com

description: |
  Provides intelligent newsletter generation capabilities for cybersecurity topics.
  Use when users need professional cybersecurity newsletters with threat intelligence,
  CVE analysis, and security recommendations.

tags:
  - newsletter
  - cybersecurity
  - threat-intelligence
  - content-generation
  - cve-analysis

input_modes:
  - text/plain
  - application/json

output_modes:
  - text/plain
  - application/json

examples:
  - "Generate this week's cybersecurity newsletter"
  - "Create newsletter focusing on ransomware threats"
  - "Write newsletter about latest CVEs"

requirements:
  packages: []
  system: []
  min_memory_mb: 100

assessment:
  keywords:
    - newsletter
    - cybersecurity
    - threats
    - cve
    - ransomware
    - security
    - newsletter-generation
```

## How It Works

**Newsletter Structure**

* `Top Threats This Week`: Critical active threats with actor details
* `CVE Spotlight`: High-severity vulnerabilities with CVSS scores
* `News Digest`: 3-5 summarized security news items
* `Recommendations`: Actionable security team guidance

**Research Process**

* `DuckDuckGoTools()`: Searches for latest cybersecurity news
* Web research before content generation
* Source verification and link inclusion

**Content Generation**

* Professional newsletter formatting with Markdown
* Structured sections with emoji headers
* CVE details in standardized format
* Clean, publication-ready output

**Agent Capabilities**

* Expert Cybersecurity Editor persona
* Proactive threat intelligence gathering
* Automated newsletter composition
* Consistent formatting and style

## Dependencies

```bash theme={null}
uv init
uv add bindu agno python-dotenv
```

## Environment Setup

Create `.env` file:

```bash theme={null}
OPENROUTER_API_KEY=your_openrouter_api_key_here
```

## Run

```bash theme={null}
uv run cybersecurity-newsletter-editor.py
```

**Examples:**

* "Generate this week's cybersecurity newsletter focusing on ransomware threats"
* "Create a monthly security briefing for our executive team"
* "Summarize the latest phishing attack trends and prevention measures"

## Example API Calls

<AccordionGroup>
  <Accordion title="Message Send Request">
    ```json theme={null}
    {
      "jsonrpc": "2.0",
      "method": "message/send",
      "params": {
        "message": {
          "role": "user",
          "kind": "message",
          "messageId": "9f11c870-5616-49ad-b187-d93cbb100001",
          "contextId": "9f11c870-5616-49ad-b187-d93cbb100002",
          "taskId": "9f11c870-5616-49ad-b187-d93cbb100003",
          "parts": [
            {
              "kind": "text",
              "text": "Generate this week's cybersecurity newsletter focusing on ransomware threats"
            }
          ]
        },
         "skillId": "cybersecurity-newsletter-editor-v1",
        "configuration": {
          "acceptedOutputModes": ["application/json"]
        }
      },
      "id": "9f11c870-5616-49ad-b187-d93cbb100003"
    }
    ```
  </Accordion>

  <Accordion title="Task get Request">
    ```json theme={null}
    {
      "jsonrpc": "2.0",
      "method": "tasks/get",
      "params": {
        "taskId": "9f11c870-5616-49ad-b187-d93cbb100003"
      },
      "id": "9f11c870-5616-49ad-b187-d93cbb100004"
    }
    ```
  </Accordion>
</AccordionGroup>

## Frontend Setup

```bash theme={null}
# Clone the Bindu repository
git clone https://github.com/GetBindu/Bindu

# Navigate to frontend directory
cd frontend

# Install dependencies
npm install

# Start frontend development server
npm run dev
```

Open [http://localhost:5173](http://localhost:5173) and try to chat with the cybersecurity newsletter editor
