DuoDuo docs

How DuoDuo works.

What DuoDuo is, how it learns, and the ways you reach it. Where there is something to do, these pages hand it to your DuoDuo.

Add Widgets, the macOS Manager, skills, and event-driven work.

Extend

Skills & Pipelines

The skills your DuoDuo runs itself with, and pipelines that wake it only when data arrives.

These skills are how your DuoDuo operates itself. Each one carries the commands and checks for the version you have installed, so you ask in plain language and it does the work. The agent you already use can carry them too, which is how it set DuoDuo up.

The operations skills#

npx -y skills add https://github.com/openduo/duoduo --global --yes --skill duoduo-admin duoduo-channel-admin duoduo-runtime-admin
  • duoduo-admin explains the host and routes broad maintenance work, upgrades included.
  • duoduo-runtime-admin handles daemon settings, sessions, model runtimes, usage, and upkeep of the intuition layer.
  • duoduo-channel-admin handles channel installation, lifecycle, descriptors, Feishu/Lark, and ACP.

Other skills carry one area each: duoduo-loop for recurring jobs, duoduo-pipeline for event-driven pipelines, smart-compaction for compacting long sessions, duoduo-ambient for rooms and the DuoDuo app, and duoduo-tether for connecting other assistants.

Skills upgrade separately#

The skills are published apart from the npm package, so upgrading DuoDuo does not refresh them. Manager's upgrade flow does, or you can ask your DuoDuo to refresh its skills. A skill names the versions it was written for, and an outdated one can describe commands that have since changed.

Event-driven pipelines#

A script watches for change, and a model wakes only when something needs judgment.

DuoDuo pulls a teal cord that raises a resting pen from its cradle.

watcher → session notify → job evaluates → main conversation

The watcher can be a shell script, Python process, webhook, or operating-system timer. It calls duoduo session notify when new data arrives. A waiting job evaluates the signal and contacts the main conversation only when the result deserves attention.

Examples:

  • feed or account monitoring
  • price and metric thresholds
  • file or repository change detection
  • webhook relays
  • upstream health watches

While nothing changes, no model turn is spent.

To build one, describe what to watch and when it matters. Your DuoDuo writes the watcher and the job with duoduo-pipeline.