Skip to main content

🦆 Extreme minimalist self-adapting AI agent - one file, self-healing, runtime dependencies

Project description

🦆 DevDuck

One file. Self-healing. Adaptive.

Minimalist AI agent that fixes itself when things break.

Install

# Minimal install
pipx install devduck

# Full install (all tools)
pipx install "devduck[all]"

Requires: Python 3.10+, Ollama running (or set MODEL_PROVIDER)

Use

# Start DevDuck (auto-starts TCP, WebSocket, MCP servers)
devduck

# CLI mode
devduck "what's the time?"

# Python
import devduck
devduck("calculate 2+2")

Auto-Started Servers

When you run devduck, three servers start automatically:

  • 🌐 Web UI: http://cagataycali.github.io/devduck (auto-connects)
  • 🔌 TCP: nc localhost 9999 (raw socket)
  • 🌊 WebSocket: ws://localhost:8080 (structured JSON)
  • 🔗 MCP: http://localhost:8000/mcp (Model Context Protocol)

Connect via MCP

Add to your MCP client (e.g., Claude Desktop):

{
  "mcpServers": {
    "devduck": {
      "command": "uvx",
      "args": [
        "strands-mcp-server",
        "--upstream-url",
        "http://localhost:8000/mcp/"
      ],
      "disabled": false
    }
  }
}

Connect via Terminal

# Direct TCP connection
nc localhost 9999
> what's the time?

Features

  • Self-healing - Auto-fixes deps, models, errors
  • Hot-reload - Create tools in ./tools/*.py, use instantly
  • Adaptive - Picks model based on OS (macOS: 1.7b, Linux: 30b)
  • 14 tools - shell, editor, files, python, calculator, tcp, etc.
  • History aware - Remembers shell/conversation context
  • Multi-protocol - TCP, WebSocket, MCP, CLI, Python

Create Tool

# ./tools/greet.py
from strands import tool

@tool
def greet(name: str) -> str:
    return f"Hello {name}!"

Save. Done. Use immediately.

Multi-Model

export MODEL_PROVIDER="bedrock"
export STRANDS_MODEL_ID="us.anthropic.claude-sonnet-4-5-20250929-v1:0"
export STRANDS_ADDITIONAL_REQUEST_FIELDS='{"anthropic_beta": ["interleaved-thinking-2025-05-14", "context-1m-2025-08-07"], "thinking": {"type": "enabled", "budget_tokens": 2048}}'
export STRANDS_MAX_TOKENS="64000"

devduck "analyze data"

Quack. 🦆

Built with Strands Agents SDK

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

devduck-0.3.0.tar.gz (76.6 kB view details)

Uploaded Source

Built Distribution

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

devduck-0.3.0-py3-none-any.whl (50.1 kB view details)

Uploaded Python 3

File details

Details for the file devduck-0.3.0.tar.gz.

File metadata

  • Download URL: devduck-0.3.0.tar.gz
  • Upload date:
  • Size: 76.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for devduck-0.3.0.tar.gz
Algorithm Hash digest
SHA256 479016a79fd3be4e1e2250f517c6709a418bd83ad3699e7687004a5827b38d06
MD5 c2c7fbe3ed9fe71a8a1708a3a43a8616
BLAKE2b-256 d5b33ede940a8973dd69b3ce940bab01c6e1509db5f3d0241967aadb325832fd

See more details on using hashes here.

File details

Details for the file devduck-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: devduck-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 50.1 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.6.5

File hashes

Hashes for devduck-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 1ddea6b59b8c7154062e50988b02919dd548944ecf7d0e371de3c3019fab335f
MD5 f0db6a2aa0e3c18c49dfb699d348b8c1
BLAKE2b-256 bf0d02c5e577de7b3e264780bddff75229e82fdd204f24cbb4a1c03906a7563c

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