duckduckgo · v0.1.2 · 2026-06-05 · sha256 350a4e9a15a4135d

duckduckgo v0.1.2A

Immutable. This exact content never changes and is served at /api/v1/blob/350a4e9a15a4135d.

---
name: duckduckgo
description: Web search via DuckDuckGo — free, no API key required. Returns titles, URLs, and snippets.
version: 0.1.2
type: extension
runtime: python3
entry: plugin.py
permissions: [net, tool, route, widget]
env_from_settings: []
dependencies:
  - ddgs
when_to_use: User asks to search the web, find information, look up facts, or research a topic — and no OpenAI key is available for web_search.
timeout_sec: 60
ui_tab:
  tab_id: search
  title: DuckDuckGo Search
  icon: search
  render:
    kind: declarative
    schema_version: 1
    components:
      - type: form
        route: search
        method: POST
        target: search_results
        fields:
          - name: query
            label: Search query
            type: text
            placeholder: "Search the web..."
            required: true
          - name: max_results
            label: Max results
            type: text
            placeholder: "5"
        submit_label: Search
      - type: json
        target: search_results
---

# DuckDuckGo Search

A zero-config web search extension using the DuckDuckGo search engine.
No API keys required — works with any Ouroboros configuration.

## Capabilities

- **Agent tool**: `ext_..._duckduckgo_search` — the LLM can call this to search the web
- **HTTP route**: `POST /api/extensions/duckduckgo/search` — JSON body `{"query": "...", "max_results": 5}`
- **Widget**: declarative form on the Widgets page for manual searches

## Dependencies

Requires the `ddgs` Python package. Ouroboros installs it automatically
from the manifest `dependencies` declaration during review/install.

## Network policy

Connects to DuckDuckGo servers only. No other external hosts are contacted.