Skip to content
cccskills
FreePublished on GitHub

yao-daemon

Start and manage long-running background services such as development servers. Check their status and output logs, verify listening ports, retrieve local URLs, and restart services while keeping the same service ID.

OriginalShow the original description

Daemon process management — start, monitor, restart, stop long-running services. ALWAYS invoke this skill when the user asks to start, check, restart, or stop background services, dev servers, or daemon processes.

See how to install

Good for

  • Starting a development server in the background
  • Checking service status and output logs
  • Restarting a service while keeping its ID
  • Checking local connection URLs and stopping services

Files included (1)

  • SKILL.md4.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Daemon Management

Tools

  • yao_daemon_start — Start a long-running service. Always runs in background; returns daemon_id immediately.
  • yao_daemon_list — List daemons. Supports --status filter and --limit/--offset pagination.
  • yao_daemon_status — Get full details for a daemon (daemon_port, daemon_url, started_at, daemon_restarts).
  • yao_daemon_stop — Stop a running daemon.
  • yao_daemon_restart — Restart a daemon (preserves the same ID, increments daemon_restarts).
  • yao_job_output — Read daemon output (pass daemon_id as job_id).

Parameters

yao_daemon_start

ParamRequiredDefaultDescription
commandyes—Shell command to execute
descriptionyes—Concise 5–10 word summary
portnoauto-detectExpected listen port; the system verifies the port is ready before reporting it
argsno—Additional arguments
working_dirnoworkspaceWorking directory

yao_daemon_list

ParamDefaultDescription
statusallFilter: running, stopping, completed, failed, cancelled, port_detecting, all
limit20Max items per page
offset0Skip first N items

yao_daemon_restart / yao_daemon_status / yao_daemon_stop

ParamRequiredDescription
daemon_idyesThe daemon ID

Response Fields

All responses are JSON. Daemon objects contain:

id, kind, session_id, status, description,
command, command_argv, command_line, pid, pgid, user,
started_at, finished_at, duration_ms, exit_code, signal, detail,
daemon_port, daemon_url, daemon_restarts, seq
  • daemon_port — The verified listen port (0 if not yet detected or not specified).
  • daemon_url — http://localhost:<port> (empty until port is verified as listening by the daemon's own process tree).
  • daemon_restarts — Number of restarts via yao_daemon_restart.
  • started_at — Unix millisecond timestamp of the most recent start.

Port detection behavior:

Both modes start by returning port_detecting with daemon_port: 0 if the port is not confirmed within the initial ~2s settle window. If the port is confirmed within ~2s, start returns running with daemon_port/daemon_url directly.

  • --port N (explicit): Verifies port N is listening AND owned by this daemon's process tree. If not confirmed within ~2s, returns status: "port_detecting". Poll yao_daemon_status until status changes to running — either with daemon_port: N and daemon_url (port confirmed), or with daemon_port: 0 and detail: "specified port N not detected within timeout" (~60s).
  • No --port (auto-detect): Scans the daemon's process tree for any listening TCP port. If not found within ~2s, returns status: "port_detecting". The scan continues in background (~60s); if a port is found, status changes to running with daemon_port/daemon_url and a <BackgroundJobReceipt> is delivered. If no port is found after ~60s, status changes to running with daemon_port: 0.

List (paginated)

{ "daemons": [...], "total": 5, "offset": 0, "limit": 20, "has_more": false }

Stop (already terminal)

{ "job": { ... }, "detail": "already in terminal state (cancelled); no action taken" }

Errors

Structured JSON with code and message:

{ "error": { "code": "not_found", "message": "daemon \"dmn_xxx\" not found" } }

Codes: invalid_argument, not_found, internal.

Usage Rules

  1. Always provide a description.
  2. Specify port when starting a server — the system confirms the port is actually listening before reporting daemon_url.
  3. Daemons run indefinitely — use yao_daemon_stop to terminate.
  4. Use yao_daemon_restart to restart a crashed or misconfigured daemon without losing its ID.
  5. Monitor output with yao_job_output passing the daemon_id as job_id.

BackgroundJobReceipt

When a daemon's port becomes ready, the system delivers a <BackgroundJobReceipt> XML message containing the daemon_url. Use that URL for subsequent HTTP requests to the daemon.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

yao-agent

FreeSummary

Manage agents on a host by listing their capabilities, reading source code, and downloading or deploying agents in the smith namespace. Check available language model connections and their roles without exposing API keys.

  • Find available agents and check their capabilities
  • Study existing agent source code
  • Download and deploy smith agents for editing
YaoApp/yao8.1KUpdated Oct 18, 2026

yao-audio

FreeSummary

Turn recorded speech into text from supported audio files such as mp3, m4a, and wav. Detect the language automatically or specify it, and list available speech recognition providers and models before choosing one.

  • Transcribe a meeting recording
  • Convert an audio recording into text
  • Transcribe audio in a specified language
YaoApp/yao8.1KUpdated Oct 18, 2026

yao-board

FreeSummary

Check kanban boards, which organize tasks into columns, and retrieve task lists filtered by status, assistant, or board. Use the returned data to see task counts and review work in progress.

  • Reviewing board columns and task counts
  • Finding tasks that are running or waiting
  • Checking tasks assigned to a specific assistant
YaoApp/yao8.1KUpdated Oct 18, 2026

yao-decision

FreeSummary

Classify messages, rate content, or estimate probabilities using defined question types. Receive machine-readable answers, with confidence scores for classification and ratings, and apply the same questions to multiple inputs in a batch.

  • Routing customer inquiries to departments
  • Rating support quality against defined criteria
  • Classifying sentiment across multiple messages
YaoApp/yao8.1KUpdated Oct 18, 2026

yao-doc

FreeSummary

Look up callable processes in Yao, inspect their arguments and return types, and check whether a process name is valid. Use the documentation to prepare calls and find suggested alternatives for misspelled names.

  • Find Yao processes by keyword
  • Check arguments and return types before calling a process
  • Validate process names when a call fails
YaoApp/yao8.1KUpdated Oct 18, 2026

yao-image

FreeSummary

Describe photos, screenshots, and charts in text, generate images from written prompts, or edit existing images. Supports background replacement, transparent output, and edits limited to an area defined by a mask.

  • Get a text description of a photo or screenshot
  • Generate a landscape image from a written prompt
  • Replace a photo background or change its style
YaoApp/yao8.1KUpdated Oct 18, 2026

See all skills by YaoApp

Report a problem with this skill