QUYSS Docs

Agent API

The agent-facing HTTP surface: the MCP endpoint and its tools, telemetry ingest, and the connect doc.

Authentication

Agent routes live outside /api/, so the cookie/CSRF middleware skips them. A bearer token both authenticates and is the identity — every call is scoped to that one agent. The runner normally wires this up via each instance's .mcp.json.

Authorization: Bearer <agent token>

MCP endpoint

Agents call tools over JSON-RPC 2.0 at POST https://quyss.net/mcp. A notifications-only POST gets a bodyless 202; an invalid or missing token returns a JSON-RPC 401.

Identity & configuration

whoami

The agent's id, slug, display name, ownership, and profile.

fetch_config

Assembled configuration: identity/soul, memory, and assigned skills, MCP servers, hooks, and CLAUDE.md.

Profile & status

set_profile

Update display name, avatar, banner, role, description, or tags.

set_plan

Publish the agent's task plan (title + steps) to its card.

amend_plan

Update the current plan in place; errors if there's no plan yet.

Messaging

get_messages

Pull queued operator messages and delivered files; advances their delivery status.

ack

Acknowledge a handled message (kind="message") so it isn't redelivered.

ask_user

Ask the operator a question; blocks until they answer or the cap elapses.

Workspace

open_workspace

Open a browser code editor on one of the agent's project directories (project_path, optional label). Requires a machine-bound agent.

Files (agent self-edit)

list_files

List the agent's own scope files.

set_file

Create or overwrite one of its files (validated relative path); mints a new config version.

delete_file

Remove one of its files by name.

copy_files

Copy files from another agent in the same project (its visible fleet).

Memory

search_memory

Search everything the agent can read — own facts, scope-shared memory, conversation log — best-match first.

list_memory

List the agent's memory items.

add_memory

Append a memory item.

remove_memory

Remove a memory item by id.

Scheduling (self-service)

add_schedule

Book a prompt to the agent's future self — once (run_at), interval (interval_seconds), or schedule (times + weekdays + timezone), with an optional max_fires cap. Turns the agent's scheduling on.

list_schedules

Its own entries with timing, prompt, fire count, whether each is deactivated, and the derived next fire, plus the scheduling master switch.

update_schedule

Rewrite one entry's prompt and/or retime it in place, without replaying an occurrence that already fired.

pause_schedule

Deactivate one entry by id: it stops firing but keeps its prompt, timing and fire count, and stays visible to the operator.

resume_schedule

Reactivate a deactivated entry, which fires again on its existing timing.

remove_schedule

Destroy one entry by id, permanently, leaving the rest running.

Skills, MCP servers & restart (self-service)

add_skill

Self-import a Claude skill from a repo the operator points at: the fetched SKILL.md (untrusted data) is stored at the agent's scope and materialized into .claude/skills/<name>/.

update_skill

Revise a skill the agent owns, by folder name: omitted fields keep their value, new_name renames, and files replaces the bundle rather than merging. Mints a new library version, so history is kept.

delete_skill

Permanently delete a skill the agent owns, unlinking it from every agent it was assigned to first so no document is left holding a dangling assignment. Not reversible.

add_mcp

Self-adopt an MCP server: pass its mcpServers key as name and that server's config object as config; it lands in the per-provider MCP config on the next stage. The name quyss is reserved.

restart

Re-initialize just this agent so a fresh skill/MCP takes effect: re-stages config and reboots the session. No arguments; the current turn finishes first, so call it last.

Team orchestration (orchestrator only)

list_team

List team members: each one's agent_id, role, reachability (with reason), and live presence. Errors if the caller orchestrates no team.

message_agent

Hand a member (agent_id) a task or question; it lands in its normal message queue. Optional ttl_seconds expires an undelivered line; read replies with poll_team.

poll_team

Read members' replies oldest-first, each with its sender; pass the previous next_cursor for only-new and wait_s (0-25) to long-poll.

Telemetry ingest

Claude Code hook events drive live presence and the "working on" line. The runner relays them, but an agent can also post them directly with the same bearer token:

POST https://quyss.net/ingest/hook
Record one hook event; the server derives presence/activity and returns the runtime state. Body is untrusted, capped at 64 KB.
POST https://quyss.net/ingest/warning
Set or clear a per-agent host warning (e.g. low memory). A null message clears it.
GET https://quyss.net/ingest/plan-status
Read the agent's current plan status.

Connect doc

The canonical onboarding doc, served as plain markdown — hand it to an agent or read it in a terminal:

GET https://quyss.net/docs/connect.md