Skip to content

quackd

One CLI to command a flock of robots with an LLM per robot, plus an optional decision LLM such as Jev that picks among known skills.

CLIbetaApache-2.0

Overview

quackd is a command line for the robots you own. Each robot joins through an adapter manifest declaring its body and skills, and you give a goal from a terminal, a chat with Claude, or a .duck task file. An LLM picks one skill at a time, quackd runs it, checks the camera, and repeats until done; a flock gives each robot its own model and they divide the work. A contract enforces which skills are allowed, how many steps, when a human must approve, and when to abort. Seven robots are supported today, one on real hardware.

The Jev role is the optional --decision-llm flag: a decision model that generates no text and scores the fixed set of skill calls against the state, answering turns that are a choice among calls the robot already has. TypeSafe's Jev is the hosted option and open servers or local checkpoints are alternatives. A shadow mode records what the decision model would have chosen without acting on it.

What the decision model decides

TypeQuestionAnswers
ChoiceWhich of this robot's declared skills should run next for the goal?(inferred)—

How it works

  1. Register each robot by name via its adapter manifest
  2. Give a goal to a robot or flock
  3. On each turn the decision LLM (if enabled) or the pilot LLM picks a skill from the manifest
  4. quackd runs it under the contract (step limits, human approval, abort)
  5. Optionally run the decision model in shadow mode to compare

Strengths

  • Decision model can only pick existing skills, never invent motor commands
  • Shadow mode allows evaluation before trusting it
  • Works with many hosted and local LLMs

Caveats

  • Only one of seven robots runs on real hardware; others are simulated or mocked
  • Decision LLM is off by default and the LLM remains the pilot

At a glance

Type
CLI
Status
beta
Language
Python
Runtime
CLI and MCP server
Has code
yes
Has tests
yes
License
Apache-2.0

Use cases and integrations

How curated lists describe it

Frequently asked questions

What does Jev decide in quackd?

With --decision-llm, it chooses which already-declared robot skill to call on a turn, returning a probability for each.

Can I try it before trusting the decision model?

Yes, --decision-mode shadow records the decision model's choice without changing what happens.

Does it need a TypeSafe key?

Only if you pick Jev; open decision servers and local checkpoints are supported, and the feature is off by default.

Related projects

  • Simulated Perseverance rover demo where Jev makes fast onboard hazard and science judgments, Claude plans, and code owns geometry.

    AppprototypeJavaScript
  • ROS 2 robot diagnostics CLI where an optional agent uses Jev to choose which read-only evidence tool to call next.

    CLIbetaPython
  • Simulated Franka arm that follows plain-English goals by having Jev chain about 30 hardcoded motion primitives, one per step.

    Agent skillprototypePython
  • Camera-only MuJoCo quadrotor where Jev makes 2.5 Hz tactical judgments while code keeps flight control and a safety veto.

    ProjectprototypePython
  • Multi-drone simulation where Jev makes fast reflex decisions per drone and an optional slower LLM may advise but never takes control.

    AppprototypeTypeScript
  • SO-101 robot-arm workbench where a Jev decision runner picks bounded joint steps from typed candidates under a spend cap.

    ProjectprototypeTypeScript