Skip to main content
Curia ships with 75+ skills organized into functional categories. Every skill declares an action_risk level that determines the minimum autonomy score required to invoke it. Skills with action_risk: none can always run; higher-risk skills trigger the approval workflow when the score is below their floor.

Contact management

Skillaction_riskDescription
contact-createlowCreate a new contact record
contact-lookupnoneLook up a contact by name (supports partial matching)
contact-listnoneList all contacts
contact-renamelowRename a contact
contact-set-rolelowSet a contact’s role (e.g., CFO, board member)
contact-set-trustlowSet a contact’s trust level
contact-link-identitylowLink a channel identity (email, phone) to a contact
contact-unlink-identitylowRemove a channel identity from a contact
contact-grant-permissionlowGrant a specific permission to a contact
contact-revoke-permissionlowRevoke a permission from a contact
contact-mergelowMerge duplicate contacts (supports dry-run preview)
contact-find-duplicatesnoneScan for potential duplicate contacts
contact-registerlowRegister or resolve a contact from outside the dispatcher pipeline (used by direct-channel agents such as ceo-inbox)
contact-set-identity-statuslowMark a channel identity as active, defunct, or bounced
contact-updatelowSet a contact’s canonical attributes (title, organization, primary email/phone, timezone, location, pronouns, and more); phone numbers are normalized to E.164

Email

Skillaction_riskDescription
email-sendmediumSend a new email to specified recipients. Accepts an optional list of attachments (file:// URLs, 20 MB / 10 files) and an optional context_bridge JSON for delegation-aware reply routing.
email-replymediumReply to an existing email thread. Appends the quoted original message body to the reply (matching standard email-client behaviour). Accepts optional attachments and a context_bridge JSON.
email-listnoneList recent messages in an inbox
email-getnoneFetch the full body of a specific message
email-draft-savelowSave a draft reply for CEO review
send-draftmediumSend a previously saved draft
email-archivelowArchive a message
context-for-emailnoneAssemble context for composing an email
email-labellowApply one or more labels to an email message (creates the label if it doesn’t exist)
email-mark-readlowMark an email message as read
email-list-foldersnoneList all folders and labels in an email account
email-create-folderlowCreate a new folder or label in an email account
email-download-attachmentlowDownload an email attachment and return content as base64 (10 MB limit)
drive-download-filelowDownload a Google Drive file (native or Google-native export) to the temp-file store and return a file:// URL, so Drive files can be attached to outbound email

CEO Inbox

Skills for the CEO Inbox agent to manage the CEO’s personal email account. These skills are pinned exclusively to the ceo-inbox agent — they access the CEO’s personal email and should not be called from other agents.
Skillaction_riskDescription
ceo-inbox-listnoneList recent unread messages from the CEO’s personal inbox
ceo-inbox-readnoneRead a specific message, returning plain text and HTML body
ceo-inbox-searchnoneSearch the CEO’s inbox using Gmail-native query syntax. When unread_only is set alongside a search query, is:unread is embedded into the search string so the filter actually applies.
ceo-inbox-draft-composelowCompose a cold-outreach (new, non-reply) draft into the CEO’s Gmail Drafts for review
ceo-inbox-draft-replylowCreate a reply-all draft for CEO review (never sent automatically)
ceo-inbox-draft-editlowUpdate an existing draft’s recipients, subject, or body, so a wrong-recipient or stale draft can be fixed without recreating it
ceo-inbox-download-attachmentlowDownload an attachment from the CEO’s inbox by its Nylas ID (10 MB limit)
ceo-inbox-archivelowArchive a message by removing it from the INBOX folder
ceo-inbox-labellowApply one or more labels to a message, creating labels that don’t yet exist
ceo-inbox-mark-readlowMark a message as read to prevent re-processing on the next triage run
ceo-inbox-mark-starredlowStar (or unstar) a message in the CEO’s inbox. Triage auto-stars anything labelled 🚨 Urgent so it surfaces in the native client.
ceo-inbox-update-folderslowAdd or remove folders/labels on a message (e.g. star, move between folders). Falls back to the computed folder list when Nylas omits folders from the response, guarding against accidental folder wipes.

Calendar

Skillaction_riskDescription
calendar-list-calendarsnoneList all registered calendars
calendar-registerlowRegister a new calendar
calendar-list-eventsnoneList events in a date range
calendar-create-eventhighCreate a new calendar event
calendar-update-eventhighUpdate an existing event
calendar-delete-eventhighDelete a calendar event
calendar-find-free-timenoneFind available time slots
calendar-check-conflictsnoneCheck for scheduling conflicts

Memory and knowledge graph

Skillaction_riskDescription
memory-storelowStore a fact in the knowledge graph; auto-creates the entity if it doesn’t exist
memory-querynoneQuery the knowledge graph
memory-confirmlowConfirm or dismiss a decay-warned KG node, resetting or triggering its archive
decay-warnings-listnoneList KG nodes currently in the warned state with days remaining until auto-archive
query-relationshipsnoneLook up stored relationships for an entity
delete-relationshiplowRemove a relationship from the knowledge graph
entity-contextnoneAssemble entity context (facts, relationships, history) for a contact
extract-factslowExtract structured facts from text (system skill)
extract-relationshipslowExtract relationships from text (system skill)

Scheduling

Skillaction_riskDescription
scheduler-createhighCreate a recurring or one-shot scheduled task
scheduler-listnoneList active scheduled jobs
scheduler-cancelhighCancel a scheduled job
scheduler-reportnoneGenerate a report on scheduled task activity (system skill)

Tasks

Track deferred, multi-step, and waiting work in the unified tasks backlog. These are usually auto-pinned onto an agent via the enable_task_management capability rather than listed individually.
Skillaction_riskDescription
task-createlowCreate a task with an owner (you / the CEO / external), priority, optional due date, and an optional wake_at that schedules a future nudge
task-listnoneList tasks filtered by status, owner, or tag — the source for “what’s open?”, “what’s waiting on me?”
task-updatelowUpdate a task’s status, priority, owner, or wake time; append a progress note
task-completelowMark a task done (cancels any pending wake-up)

Communication

Skillaction_riskDescription
signal-sendmediumSend a Signal message. Accepts an optional context_bridge JSON for delegation-aware reply routing.
bullpenlowOpen or contribute to an inter-agent discussion thread
request-clarificationnonePause a delegated task mid-execution to ask the CEO a clarifying question; the runtime short-circuits the tool loop and returns a typed result with a resume token so the coordinator can re-delegate seamlessly once the CEO replies
context-bridge-releasenoneCoordinator-only — explicitly close an active outbound-context entry once the LLM detects a conversation thread has ended, freeing the slot before TTL expiry

Web research

Skillaction_riskDescription
web-searchnoneSearch the web via Tavily. Requires tavily_api_key in the vault — declared in install.requires_secrets, so the registry will not enable the skill until the key is provisioned.
web-fetchnoneFetch and extract content from a URL
web-browsernoneInteract with JavaScript-rendered pages via Playwright

File parsing

Skillaction_riskDescription
file-parsenoneExtract structured data from CSV, PDF, HTML, and image files. Accepts either inline content_base64 or a temp_file_url pointing at a file in the configured CURIA_TEMPFILE_DIR (paths are validated against the base directory).

Templates

Skillaction_riskDescription
template-doc-requestmediumGenerate a document request

Autonomy

Skillaction_riskDescription
get-autonomynoneRead the current autonomy score, trend, and history
set-autonomycriticalChange the autonomy score (CEO only)
list-pending-actionsnoneList all open approval requests
approve-actionnoneApprove a pending Curia action request
deny-actionnoneDeny a pending action request
dismiss-actionnoneDismiss a pending request without approving or denying

System and utility

Skillaction_riskDescription
delegatenoneDelegate a task to a specialist agent
held-messages-listnoneList messages held for CEO review
held-messages-processlowProcess a held message (identify, dismiss, or block)
executive-profile-getnoneGet the CEO’s writing voice profile
executive-profile-updatelowUpdate the CEO’s writing voice profile
behavioral-preferences-updatelowAppend or replace entries in OfficeIdentity.behavioralPreferences (used by the setup-wizard and any “remember that I…” turn)
config-storelowRead or write namespaced persistent configuration (company info, meeting links, travel preferences, loyalty programs, writing config, and more)
image-generatelowGenerate an image
skill-registrynoneSearch all registered skills by keyword

Building custom skills

How to create, test, and register a new skill.

Skill manifest schema

Complete reference for the skill.json manifest format.