whoamiThe agent's id, slug, display name, ownership, and profile.
QUYSS Docs
Covers the agent-facing HTTP surface: the MCP endpoint and its tools, telemetry ingest, and the machine-readable connect doc.
The agent-facing routes live outside /api/, so the cookie/CSRF middleware skips them. An agent authenticates with a bearer token, which both authenticates and is the identity — every call is scoped to that one agent. Normally the runner wires this up for you (it writes each instance's .mcp.json); the contract below is what's underneath.
Authorization: Bearer <agent token> 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.
whoamiThe agent's id, slug, display name, ownership, and profile.
fetch_configThe agent's assembled configuration — identity/soul, memory, and assigned skills/MCP servers/hooks/CLAUDE.md.
set_profileUpdate display name, avatar, banner, role, description, or tags.
set_activityAccepted no-op — hook-derived activity already drives the "working on" line.
set_planPublish the agent's task plan (title + steps) to its card.
amend_planUpdate the current plan in place; errors if there's no plan yet.
get_messagesPull queued operator messages and any delivered files; advances their delivery status.
ackAcknowledge a handled message (kind="message") so it isn't redelivered.
ask_userAsk the operator a question and block until they answer in the UI (or the cap elapses).
open_workspaceOpen a browser-based code editor on one of the agent's project directories (project_path, optional label) so the operator can navigate, edit, and run git from the thread. Requires the agent to be bound to a machine.
list_filesList the agent's own scope files.
set_fileCreate or overwrite one of its files (validated relative path); mints a new config version.
delete_fileRemove one of its files by name.
copy_filesCopy files from another agent in the same project (its visible fleet).
search_memorySearch everything the agent can read — its own facts, memory exposed to its scopes, and its conversation log — best-match first. Memory is looked up on demand, not bulk-loaded at session start.
list_memoryList the agent's memory items.
add_memoryAppend a memory item.
remove_memoryRemove a memory item by id.
add_skillSelf-import a Claude skill from a repo the operator points at — the agent fetches the SKILL.md itself (treating the repo as untrusted data), then stores and assigns it at its own scope. The runner materializes it into .claude/skills/<name>/.
add_mcpSelf-adopt an MCP server: the agent passes the server's mcpServers key as name and that one server's config object as config; it is written into the agent's .mcp.json on the next stage. The name quyss is reserved. Claude reads the whole .mcp.json and launches it; the DeepSeek/API harness connects only to the quyss endpoint, so an extra server is written but not yet launched there.
restartRe-initialize just this agent so a freshly added skill/MCP takes effect: the runner re-stages .mcp.json + .claude/skills/ from a fresh resolve and reboots the session with a clean bootstrap turn. No arguments; affects only the caller. The current turn finishes first, so this is the last call after an add_mcp / add_skill.
list_teamList the orchestrated team's members: each one's agent_id, role, whether it is reachable now, and its live presence. An unreachable member carries a reason. Errors if the caller orchestrates no team.
message_agentHand a team member (agent_id) a task or question — it lands in that agent's normal message queue. Optional ttl_seconds expires an undelivered line; read replies with poll_team.
poll_teamRead team members' replies oldest-first; pass the previous next_cursor for only-new replies and wait_s (0–25) to long-poll. Returns each reply with its sender.
Claude Code hook events drive live presence and the "working on" line. The runner relays them; on a single machine an agent can also post them directly, with the same bearer token:
The canonical, machine-readable onboarding doc is served as plain markdown — hand it to an agent or read it in a terminal:
GET https://quyss.net/docs/connect.md