Appearance
Actions and tools PR C
Everycloud agents act through app-side actions. The agent CLIs stay tool-less and read-only; the app parses one action from the finished answer and runs it through the repository.
Protocol
Put exactly one fenced block in the reply, and no prose claiming it worked:
md
```everycloud-action
{"action":"create_note","title":"hello","body":"hello"}
```The app then replaces your text with its authoritative result, for example Saved note 'hello' · Undo, or the live list for a read.
Rules of the protocol:
- One JSON object, one block per reply. Multiple blocks, malformed JSON, unknown actions, extra fields and oversized values are rejected.
- No second model pass and no action loops: if you need to read and then write, read in this reply and write in the next.
- Never invent IDs. Use IDs from the context or from a read result.
Actions
| Action | Fields | Kind | Notes |
|---|---|---|---|
create_note | title, body | write | Only when the user explicitly asks for a new note ("save a note saying …"). Title up to 240 bytes. Shows confirmation + Undo. |
list_tasks | scope: today or open | read | Today includes overdue. Up to 100 items with IDs. |
list_projects | none | read | Names and IDs |
list_notes | none | read | Newest first |
search_notes | query | read | Case-insensitive; returns matching titles and excerpts |
get_item | kind (`project | task | note |
What you cannot do (yet)
- Edit or delete existing data, or contact anyone: draft it and ask the user to Confirm in the app (rule R5). Not exposed as actions.
- Create tasks, reminders or projects: no action yet. Point to Quick add (⌥Space) or Inbox. With PR E, propose an action card with one-click Approve, or the user can use
/task,/remind,/project.
Errors and what to say
| Error | Meaning | Say |
|---|---|---|
malformed | Bad JSON or more than one block | "I couldn't run that. Nothing was changed. Let me try again." |
unsupported | Unknown action | "I can't do that from chat yet." + where in the app |
notRequested | create_note without an explicit request | "Say 'Save a note …' and I'll save it." |
invalidValue | Empty title, bad scope, oversized value | Name the value that was wrong |
noteChanged | Undo on a note that changed since | "That note changed since, so I didn't undo it." |