🦆 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
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
479016a79fd3be4e1e2250f517c6709a418bd83ad3699e7687004a5827b38d06
|
|
| MD5 |
c2c7fbe3ed9fe71a8a1708a3a43a8616
|
|
| BLAKE2b-256 |
d5b33ede940a8973dd69b3ce940bab01c6e1509db5f3d0241967aadb325832fd
|
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1ddea6b59b8c7154062e50988b02919dd548944ecf7d0e371de3c3019fab335f
|
|
| MD5 |
f0db6a2aa0e3c18c49dfb699d348b8c1
|
|
| BLAKE2b-256 |
bf0d02c5e577de7b3e264780bddff75229e82fdd204f24cbb4a1c03906a7563c
|