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-adminexplains the host and routes broad maintenance work, upgrades included.duoduo-runtime-adminhandles daemon settings, sessions, model runtimes, usage, and upkeep of the intuition layer.duoduo-channel-adminhandles 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.

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.