SkillAgentSearch skills...

devduck

Minimalist AI agent that fixes itself when things break.

Install / Use

claude mcp add cagataycali -- npx -y github:cagataycali/devduck

If the server publishes to npm under a different name, use that package instead โ€” check the repo README.

About this skill
๐Ÿ”Œ

MCP Server

Model Context Protocol server

Quality Score

76/100

Supported Platforms

Claude Code
Claude Desktop

Tags

Our assessment of devduck

devduck scores 76/100 on our quality scale, 3697th of 4,617 Development & Engineering skills we index.

Its MCP Server is 36 KB long, well organised into 116 sections with 47 code examples: a thorough specification that gives an agent plenty to work with.

It has 43 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
30/30
Structure
20/20
Description
8/15
Adoption
7/20
Freshness
11/15

Maintenance, license and trust

  • The repository was last updated about 6 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
  • Our last check on 2026-10-21 found the source still online.
  • It is released under the Apache-2.0 license, a permissive license that allows use, modification and commercial use with attribution.
  • Its trust signals score 90/100, with 1 caution from licensing, adoption, age or documentation. These come from repository metadata, not a code audit โ€” read the skill file before letting an agent act on it.

Safety scan

No issues found

Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful.

AI review by kimi-k2.7-code on 2026-09-24. Automated pattern scan on 2026-09-24. It catches known dangerous patterns, not every risk โ€” read a skill before letting an agent act on it.

devduck compared with similar skills

All 4 of these similar skills score higher than devduck; compare them before choosing.

SkillScoreStarsUpdatedFormat
devduck (this skill)by cagataycali76436mo agoMCP Server
taste-skillby Leonxlnx100110.6ktodayCLAUDE.md
Agent-Reachby Panniantong100109.2ktodayCLAUDE.md
headroomby headroomlabs-ai10078.9ktodayCLAUDE.md
ai-job-searchby ai-job-search-dev10069.8ktodayCLAUDE.md

Frequently asked questions

How do I install devduck?
Run claude mcp add cagataycali -- npx -y github:cagataycali/devduck. The install tabs above show the steps for each supported agent.
Which AI agents does devduck work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is devduck safe to use?
Our scan of the whole file found no instruction hijacking, hidden characters, credential access, data exfiltration or destructive commands. An AI review of the same text found nothing harmful. It is Apache-2.0-licensed and scores 90/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is devduck still maintained?
The repository was last updated about 6 months ago. That is recent enough to be usable, but agent tooling moves fast, so check the instructions against your agent's current version.
<p align="center"> <img src="duck-animated.svg" alt="DevDuck" width="160" height="160"> </p>

๐Ÿฆ† DevDuck

PyPI

Awesome Strands Agents

One file. Self-healing. Builds itself as it runs.

An AI agent that hot-reloads its own code, fixes itself when things break, and expands capabilities at runtime. Terminal, browser, cloud โ€” or all at once.

pipx install devduck && devduck
<p align="center"> <img src="devduck-launcher.jpg" alt="DevDuck Launcher" width="700"> </p> <p align="center"> <video src="https://github.com/cagataycali/devduck/raw/main/devduck-intro.mp4" width="700" controls autoplay muted> <a href="https://redduck.dev/videos/devduck-intro.mp4">Watch the intro</a> </video> </p>

What It Does

  • Hot-reloads โ€” edit source, agent restarts instantly
  • Self-heals โ€” errors trigger automatic recovery
  • 60+ tools โ€” shell, GitHub, browser control, speech, scheduler, ML, messaging
  • Multi-protocol โ€” CLI, TUI, WebSocket, TCP, MCP, IPC, Zenoh P2P
  • Unified mesh โ€” terminal + browser + cloud agents in one network
  • Deploys anywhere โ€” devduck deploy --launch โ†’ AWS AgentCore
  • Self-replicates โ€” devduck service install --ssh host persists itself or spawns copies on any host (systemd/launchd)

Requirements: Python 3.10โ€“3.13 + any model provider (AWS, Anthropic, OpenAI, Ollama, Gemini, etc.)


Quick Start

devduck                              # interactive REPL
devduck --tui                        # multi-conversation terminal UI
devduck "create a REST API"          # one-shot
devduck --record                     # record session for replay
devduck --resume session.zip         # resume from snapshot
devduck deploy --launch              # ship to AgentCore
import devduck
devduck("analyze this code")

Power User Setup

A real-world .zshrc config for daily driving DevDuck with all the bells and whistles:

# Model โ€” Claude Opus via Bedrock bearer token (fastest auth, no STS calls)
export AWS_BEARER_TOKEN_BEDROCK="ABSK..."
export STRANDS_MODEL_ID="global.anthropic.claude-opus-4-6-v1"
export STRANDS_MAX_TOKENS="64000"

# Tools โ€” curated toolset (loads faster than all 60+)
export DEVDUCK_TOOLS="devduck.tools:use_github,editor,system_prompt,store_in_kb,manage_tools,websocket,zenoh_peer,agentcore_proxy,manage_messages,sqlite_memory,dialog,listen,use_computer,tasks,scheduler,telegram;strands_tools:retrieve,shell,file_read,file_write,use_agent"

# Knowledge Base โ€” automatic RAG (stores & retrieves every conversation)
export STRANDS_KNOWLEDGE_BASE_ID="YOUR_KB_ID"

# MCP โ€” auto-load Strands docs server
export MCP_SERVERS='{"mcpServers":{"strands-docs":{"command":"uvx","args":["strands-agents-mcp-server"]}}}'

# Messaging โ€” Telegram & Slack bots
export TELEGRAM_BOT_TOKEN="your-telegram-bot-token"
export SLACK_BOT_TOKEN="xoxbโ€ฆ[redacted]"
export SLACK_APP_TOKEN="xappโ€ฆ[redacted]"

# Spotify control
export SPOTIFY_CLIENT_ID="your-client-id"
export SPOTIFY_CLIENT_SECRET="your-client-secret"
export SPOTIFY_REDIRECT_URI="http://127.0.0.1:8888/callback"

# Gemini as fallback/sub-agent model
export GEMINI_API_KEY="your-gemini-key"

This gives you:

  • ๐Ÿง  Opus on Bedrock as primary model with bearer token (zero-latency auth)
  • ๐Ÿ“š Auto-RAG โ€” every conversation stored in Knowledge Base, context retrieved before each query
  • ๐Ÿ“– Strands docs available as MCP tools (search + fetch)
  • ๐Ÿ“ฑ Telegram + Slack + WhatsApp โ€” three messaging channels ready
    • Telegram & Slack: set tokens above, then telegram(action="start_listener")
    • WhatsApp: no token needed โ€” uses local wacli pairing, just whatsapp(action="start_listener")
  • ๐ŸŽต Spotify control via use_spotify
  • ๐Ÿ”— Zenoh P2P + mesh auto-enabled (multi-terminal awareness)
  • ๐Ÿ’ฌ 26 tools loaded on startup, expandable to 60+ on demand via manage_tools

Model Detection

Set your key. DevDuck figures out the rest.

export ANTHROPIC_API_KEY=sk-ant-...   # โ†’ uses Anthropic
export OPENAI_API_KEY=sk-...          # โ†’ uses OpenAI
export GOOGLE_API_KEY=...             # โ†’ uses Gemini
# or just have AWS credentials        # โ†’ uses Bedrock
# or nothing at all                   # โ†’ uses Ollama

Priority: Bedrock โ†’ Anthropic โ†’ OpenAI โ†’ GitHub โ†’ Gemini โ†’ Cohere โ†’ Writer โ†’ Mistral โ†’ LiteLLM โ†’ LlamaAPI โ†’ MLX โ†’ Ollama

Override: MODEL_PROVIDER=bedrock STRANDS_MODEL_ID=us.anthropic.claude-sonnet-4-20250514-v1:0 devduck


Tools

Runtime โ€” no restart needed

manage_tools(action="add", tools="strands_fun_tools.cursor")
manage_tools(action="create", code='...')
manage_tools(action="fetch", url="https://github.com/user/repo/blob/main/tool.py")

Hot-reload from disk

Drop a .py file in ./tools/ โ†’ it's available immediately.

# ./tools/weather.py
from strands import tool
import requests

@tool
def weather(city: str) -> str:
    """Get weather for a city."""
    return requests.get(f"https://wttr.in/{city}?format=%C+%t").text

Static config

export DEVDUCK_TOOLS="strands_tools:shell,editor;devduck.tools:use_github,scheduler"

๐Ÿ” Code Inspection

Built-in inspect tool (powered by strands-inspect) โ€” turn any Python package into an interactive tool.

inspect(action="scan", target="json")                    # deep-scan package API
inspect(action="call", target="json.dumps", args='[{"hi": 1}]')  # call anything
inspect(action="search", target="pathlib", query="read file")
inspect(action="generate", target="requests.post")       # working code example
inspect(action="profile", target="myfunc")               # memory + CPU timeline
inspect(action="graph", target="mypkg")                  # call-graph + hotspots

No wrappers, no stubs โ€” point it at any installed package and start calling.


Architecture

devduck/
โ”œโ”€โ”€ __init__.py       # the whole agent โ€” single file
โ”œโ”€โ”€ tui.py            # multi-conversation Textual UI
โ”œโ”€โ”€ tools/            # 60+ built-in tools (hot-reloadable)
โ””โ”€โ”€ agentcore_handler.py  # AWS AgentCore deployment handler
graph LR
    User([๐Ÿ‘ค User]) --> Interface
    subgraph Interface[" "]
        CLI["CLI / REPL"]
        TUI["TUI"]
        WS["WebSocket"]
        TCP["TCP"]
        MCP["MCP"]
    end
    Interface --> Core["๐Ÿฆ† DevDuck Core"]
    Core --> Tools["๐Ÿ”ง Tools"]
    Core <--> Zenoh["๐Ÿ”— Zenoh P2P"]
    Core <--> KB["๐Ÿ“š Knowledge Base"]
    Core <--> Mesh["๐ŸŒ Unified Mesh"]
    Mesh --> Browser["๐Ÿ–ฅ๏ธ Browser"]
    Mesh --> Cloud["โ˜๏ธ AgentCore"]

    style Core fill:#f5a623,stroke:#333,color:#000
    style Mesh fill:#4a90d9,stroke:#333,color:#fff
    style Zenoh fill:#7ed321,stroke:#333,color:#000
    style KB fill:#9b59b6,stroke:#333,color:#fff

Ports: 10000 (mesh relay) ยท 10001 (WebSocket) ยท 10002 (TCP) ยท 10003 (MCP)

TUI Concurrency Model

The TUI (devduck --tui) supports true concurrent conversations with shared awareness:

graph TB
    subgraph SharedMessages["๐Ÿ“‹ SharedMessages (thread-safe)"]
        msgs["msg1, msg2, msg3, msg4, ..."]
    end

    SharedMessages --> A1
    SharedMessages --> A2
    SharedMessages --> A3

    subgraph A1["๐ŸŸฆ Agent #1"]
        cb1["callback โ†’ panel #1"]
    end
    subgraph A2["๐ŸŸฉ Agent #2"]
        cb2["callback โ†’ panel #2"]
    end
    subgraph A3["๐ŸŸจ Agent #3"]
        cb3["callback โ†’ panel #3"]
    end

    style SharedMessages fill:#e74c3c,stroke:#333,color:#fff
    style A1 fill:#3498db,stroke:#333,color:#fff
    style A2 fill:#2ecc71,stroke:#333,color:#fff
    style A3 fill:#f1c40f,stroke:#333,color:#000

Each conversation creates a fresh Agent (like TCP/Telegram tools do), but all agents point their .messages at a single SharedMessages instance โ€” a thread-safe list subclass that serializes all reads and writes via a lock. This gives you:

  • True concurrency โ€” separate Agent instances with separate callback handlers, no conflicts
  • Real-time shared awareness โ€” when Agent #1 appends a message, Agent #2 sees it immediately on its next loop iteration
  • Correct ordering โ€” the lock ensures messages are appended in the order they're produced
  • Isolated rendering โ€” each agent's callback handler routes streaming output to its own color-coded TUI panel

The shared history is capped at 100 messages (configurable via DEVDUCK_TUI_MAX_SHARED_MESSAGES) and auto-clears on context window overflow.

Comparison across interfaces:

| Interface | Agent per request | Shared messages | Use case | |-----------|:-:|:-:|---| | CLI | No (reuse one) | N/A (single-threaded) | Sequential interactive REPL | | TUI | Yes (fresh Agent) | Yes (SharedMessages) | Concurrent conversations with shared context | | TCP | Yes (fresh DevDuck) | No (fully isolated) | External network clients | | Telegram | Yes (fresh DevDuck) | No (fully isolated) | Chat bot, each user isolated | | WebSocket | Yes (fresh DevDuck) | No (fully isolated) | Browser clients |


Multi-Agent Networking

Zenoh P2P โ€” zero config

# Terminal 1
devduck   # โ†’ Zenoh peer: hostname-abc123

# Terminal 2
devduck   # auto-discovers Terminal 1
zenoh_peer(action="broadcast", message="git pull && npm test")  # all peers
zenoh_peer(action="send", peer_id="hostname-abc123", message="status?")  # one peer

Cross-network: ZENOH_CONNECT=tcp/remote:7447 devduck

Unified Mesh โ€” everything connected

The mesh is DevDuck's shared nervous system. Every agent โ€” regardless of where it runs โ€” sees what others are doing via a ring context (a shared circular buffer of recent activity).

graph TB
    subgraph Mesh["๐ŸŒ Unified Mesh (port 10000)"]
        direction TB

        T1["๐Ÿ–ฅ๏ธ Terminal DevDuck<br/>(Zenoh)"]
        T2["๐Ÿ–ฅ๏ธ Terminal DevDuck<br/>(Zenoh)"]
        B1["๐ŸŒ Browser Tab<br/>(WebSocket)"]
        AC["โ˜๏ธ AgentCore<br/>(AWS Cloud)"]
        GH["๐Ÿ™ GitHub Actions<br/>(HTTPS)"]

        Ring[("๐Ÿ”„ Ring Context<br/>shared memory<br/>last 100 msgs")]

        T1 <--> Ring
        T2 <--> Ring
        B1 <--> Ring

Truncated for display โ€” read the full file on GitHub.

Related Skills

View on GitHub
GitHub Stars43
CategoryDevelopment
Updated5mo ago
Forks7

Languages

Python

Trust signals

90/100

From repository metadata: license, adoption, age and documentation. Not a code audit โ€” see the Safety scan above for what the skill file itself contains.

1 low2 info
devduck โ€” MCP Server: Install & Safety Check | SkillAgent