Skip to content

quackd v0.1.0 β€” Give your Microduck a brain

Choose a tag to compare

@rokbenko rokbenko released this 28 Aug 14:26
· 43 commits to main since this release

Give a small robot a brain. Tell the Microduck what you want in plain language; an LLM uses the robot's existing skills to do it. First release: sim-first, honest about hardware.

find-and-kick in the built-in simulator

uvx quackd run --goal "find the ball and kick it" --provider fake            # no key, built-in simulator
uvx --from "quackd[anthropic]" quackd run find-and-kick --provider anthropic  # with Claude
claude mcp add quackd -- uvx quackd serve-mcp --transport sim2d               # drive it from Claude Code

What's in 0.1.0

  • .duck task files β€” strict, validated frontmatter (allowlist, budgets, confirm gates, abort rules) + a Markdown body the model reads; five starters bundled; quackd run --goal "…" for ad-hoc goals.
  • 13 verbs β€” ten built-in (walk sit stand kick grab stand_up stop quack gaze get_frame) mapping 1:1 to the robot's shipped behaviours, three composite (search_scan walk_to approach_and), and a reserved interface for learned verbs.
  • Safety executor β€” allowlist, confirm gates, budgets, dry-run, machine-enforced abort_when, heartbeat, kill switch. Same layer for .duck runs and MCP sessions.
  • Built-in 2D simulator β€” deterministic under --seed, upstream-style deadman, top-down + duck-cam renders, GIF + transcript per run; find-and-kick succeeds on 10/10 seeds.
  • Providers β€” Claude (claude-opus-5), OpenAI, Gemini, Grok, and a scripted fake; vendor SDKs are optional extras.
  • MCP server β€” quackd serve-mcp for Claude Code / Claude Desktop, verified client config in docs/mcp.md.
  • Real robot β€” experimental jsonrpc transport with method names verified against upstream duck-ipc-proto v16; never run on hardware yet. WebSocket transport is a stub tracking upstream's draft.
  • quackd doctor, quackd validate, quackd list-verbs, quackd record; 124 tests, no network, no keys.

Known limitations

  • The simulator is a cartoon (it tests the agent loop, not physics); nothing has run on a real Microduck.
  • The hero GIF is the scripted pilot β€” a real-model recording is one command away once a key is available.
  • Default model IDs for OpenAI / Gemini / Grok are unverified; override with QUACKD_MODEL.

Full changelog: CHANGELOG.md. quackd is an independent community project, not affiliated with or endorsed by Pollen Robotics or Hugging Face.