Capability Reference

Every capability an experience can request in its manifest grants. Granted tools are called from script as atlas.call("<id>", params); declarative packs reference workflow-surface tools in run definitions.

This page mirrors docs/experiences/reference/capabilities.md, which is GENERATED from tools.yaml by scripts/generate_experience_docs.sh and freshness-checked in CI — regenerate there, then re-run docs-site/generate_reference.py.

Permission classes

IdTitle
calendarCalendar
cameraCamera
clipboardClipboard
contactsContacts
documentsDocuments
keychainKeychain
llmLocal LLM
locationLocation
memoryMemory
microphoneMicrophone
networkNetwork
notificationsNotifications
phonePhone Calls
photosPhotos
remindersReminders
speechSpeech
storageStorage

Workflow tools (run definitions + atlas.call)

action.create

Create action

ParameterTypeDescription
assignee_member_idstringOptional member UUID.
due_timestampstringOptional Unix timestamp.
notesstringOptional notes.
prioritystringcritical, important, or normal.
titlestringAction title.

action.delete

Delete action

ParameterTypeDescription
action_idstringAction UUID.

action.update

Update action

ParameterTypeDescription
action_idstringAction UUID.
notesstringOptional notes update.
prioritystringOptional priority update.
statusstringOptional status update.
titlestringOptional title update.

calendar.event_compose

Compose calendar event — requires permission grant: calendar

ParameterTypeDescription
endstringISO date, unix timestamp, or yyyy-MM-dd HH:mm end.
locationstringOptional event location.
notesstringOptional event notes.
startstringISO date, unix timestamp, or yyyy-MM-dd HH:mm start.
titlestringEvent title.

clipboard.read_text

Read clipboard text — requires permission grant: clipboard

ParameterTypeDescription
outputstringWorkflow state key that receives clipboard text.

collection.clear

Clear collection — requires permission grant: storage

ParameterTypeDescription
collectionstringYAML collection id declared by the active workflow.

collection.count

Count collection records — requires permission grant: storage

ParameterTypeDescription
collectionstringYAML collection id declared by the active workflow.
containsstringOptional substring to match in the where field.
equalsstringOptional value to match.
maxstringOptional maximum value for the where field.
minstringOptional minimum value for the where field.
outputstringWorkflow state key that receives the count.
wherestringOptional field to match.

collection.delete

Delete collection record — requires permission grant: storage

ParameterTypeDescription
collectionstringYAML collection id declared by the active workflow.
idstringRecord id or primary-key value to delete.

collection.insert

Insert collection record — requires permission grant: storage

ParameterTypeDescription
collectionstringYAML collection id declared by the active workflow.
idstringOptional stable record id.
outputstringOptional workflow state key that receives the inserted record JSON.
valuesobjectField values to validate and store.

collection.query

Query collection — requires permission grant: storage

ParameterTypeDescription
collectionstringYAML collection id declared by the active workflow.
containsstringOptional substring to match in the where field.
descendingstringSort descending when true.
equalsstringOptional value to match.
limitstringOptional maximum number of records.
maxstringOptional maximum value for the where field.
minstringOptional minimum value for the where field.
outputstringWorkflow state key that receives record JSON.
sort_bystringOptional collection field to sort by.
wherestringOptional field to match.

collection.update

Update collection record — requires permission grant: storage

ParameterTypeDescription
collectionstringYAML collection id declared by the active workflow.
idstringRecord id or primary-key value.
outputstringOptional workflow state key that receives the updated record JSON.
valuesobjectField values to validate and merge.

contacts.pick_contact

Pick contact — requires permission grant: contacts

ParameterTypeDescription
outputstringWorkflow state key that receives contact JSON.

diagnostics.snapshot

Capture device logs — requires permission grant: storage

ParameterTypeDescription
limitstringOptional maximum number of recent log lines (default 200).
outputstringWorkflow state key that receives the diagnostics JSON.

document.preview

Preview document — requires permission grant: documents

ParameterTypeDescription
filestringWorkflowFileBinding or local file URL.
urlstringOptional document URL.

document.share

Share document — requires permission grant: documents

ParameterTypeDescription
filestringWorkflowFileBinding or local file URL.
textstringOptional text to share.
urlstringOptional URL to share.

http.request

HTTP request — requires permission grants: keychain, network

json.extract

Extract JSON into workflow state

ParameterTypeDescription
fromstringWorkflow state key containing JSON, commonly http.body.
mappingsobjectState-key to JSON dot-path mappings.

llm.prompt

Await Atlas prompt — requires permission grant: llm

ParameterTypeDescription
allow_toolsbooleanWhether the model may use Atlas tools while answering.
outputstringWorkflow state key that receives the model response.
promptstringPrompt template to send to the local model.

llm.send

Send to Atlas — requires permission grant: llm

location.current

Read current location — requires permission grant: location

ParameterTypeDescription
outputstringWorkflow state key that receives location JSON.

mail.compose

Compose email — requires permission grant: documents

ParameterTypeDescription
bccstringOptional BCC recipients.
bodystringEmail body.
ccstringOptional CC recipients.
filestringOptional WorkflowFileBinding or file URL.
subjectstringEmail subject.
tostringComma-separated recipients.

maps.open

Open Maps — requires permission grant: location

ParameterTypeDescription
addressstringOptional address query.
labelstringOptional map item label.
latitudestringOptional latitude.
longitudestringOptional longitude.

memory.store

Store memory — requires permission grant: memory

message.archive

Archive message

ParameterTypeDescription
message_idstringMessage UUID.

message.copy

Copy message

ParameterTypeDescription
message_idstringMessage UUID.

message.create

Create message

message.delete_for_everyone

Delete for everyone

ParameterTypeDescription
message_idstringMessage UUID.

message.edit

Edit message

ParameterTypeDescription
message_idstringMessage UUID.

message.react

React

ParameterTypeDescription
keystringEmoji reaction key. Defaults to a heart.
message_idstringMessage UUID.

message.save

Save message

ParameterTypeDescription
message_idstringMessage UUID.

message.trash

Trash message

ParameterTypeDescription
message_idstringMessage UUID.

message.update

Update message

ParameterTypeDescription
message_idstringMessage UUID.
textstringComplete non-empty replacement message text.

notification.cancel

Cancel notification — requires permission grant: notifications

ParameterTypeDescription
allbooleanCancel all pending and delivered local notifications.
idstringNotification identifier to cancel.

notification.permission_request

Request notification permission — requires permission grant: notifications

notification.schedule_local

Schedule local notification — requires permission grant: notifications

ParameterTypeDescription
bodystringNotification body.
datestringDelivery date.
idstringStable notification identifier.
titlestringNotification title.

phone.call

Call phone number — requires permission grant: phone

ParameterTypeDescription
keystringOptional workflow state key to call when phone_number is empty.
phone_numberstringPhone number or template to call.
scopestringOptional schema scope to call when phone_number is empty.

reminder.create

Create reminder — requires permission grant: reminders

ParameterTypeDescription
duestringOptional due date.
notesstringOptional reminder notes.
titlestringReminder title.

scanner.scan_code

Scan code — requires permission grant: camera

ParameterTypeDescription
outputstringWorkflow state key that receives scanned code JSON.

sms.compose

Compose message

ParameterTypeDescription
bodystringMessage body.
tostringComma-separated phone recipients.

speech.speak

Speak text — requires permission grant: speech

ParameterTypeDescription
keystringOptional workflow state key to speak when text is empty.
scopestringOptional schema scope to speak when text is empty.
textstringText or template to speak.

speech.stop

Stop speaking — requires permission grant: speech

state.append

Append workflow state

ParameterTypeDescription
keystringWorkflow state key to append to.
valuestringValue to append.

state.backspace

Backspace workflow state

ParameterTypeDescription
keystringWorkflow state key to trim.

state.clear

Clear workflow state

ParameterTypeDescription
keystringWorkflow state key to clear.

state.increment

Increment workflow state

ParameterTypeDescription
amountstringAmount to add.
keystringWorkflow state key to increment.
maxstringOptional maximum.
minstringOptional minimum.

state.set

Set workflow state

ParameterTypeDescription
keystringWorkflow state key to write.
valuestringValue or template to store.

state.toggle

Toggle workflow state

ParameterTypeDescription
keystringWorkflow state key to toggle between true and false.

sync.poll

Poll sync resource — requires permission grants: network, storage

ParameterTypeDescription
outputstringWorkflow state key that receives sync status JSON.
sync_resourcestringYAML sync resource id to refresh.

ui.close_dialog

Close dialog

ui.close_page

Close workflow page

ui.close_sheet

Close sheet

ui.open_dialog

Open dialog

ParameterTypeDescription
targetstringYAML Dialog element id to present.

ui.open_page

Open workflow page

ParameterTypeDescription
targetstringYAML Page element id to open.

ui.open_sheet

Open sheet

ParameterTypeDescription
targetstringYAML Sheet element id to present.

ui.toast

Show toast

ParameterTypeDescription
messagestringMessage to display in a transient toast.

url.open

Open URL — requires permission grant: network

ParameterTypeDescription
urlstringExternal URL using an allowed scheme.

web.open

Open web page — requires permission grant: network

ParameterTypeDescription
urlstringHTTPS or HTTP URL to present in-app.

System tools

attachment.delete

Delete attachment — requires permission grant: storage

ParameterTypeDescription
attachment_idstringAttachment record id.

auth.session.restore

Restore app sign-in — requires permission grants: keychain, network

contacts.sync

Sync contacts — requires permission grants: contacts, storage

device.context.get

Get device context

eval.cleanup_artifacts

Clean eval artifacts — requires permission grants: memory, storage

ParameterTypeDescription
eval_cleanupnativeNative eval cleanup payload.
stream_idstringEval stream UUID.

eval.fixture.store

Store eval fixture — requires permission grant: storage

ParameterTypeDescription
eval_attachment_fixturenativeNative eval attachment fixture payload.
stream_idstringDestination stream UUID.

eval.fixtures.delete_prior

Delete prior eval fixtures — requires permission grant: storage

experience.state_set

Update experience state — requires permission grant: storage

ParameterTypeDescription
keystringState key inside the calling experience's namespace
valuestringNew value; an empty string removes the key

memory.search

Search memory — requires permission grant: memory

share.destinations.publish

Publish share destinations

share.incoming.process

Process incoming shares — requires permission grant: storage

share.suggestion.donate

Donate share suggestion

share.url.handle

Handle Atlas URL

ParameterTypeDescription
urlstringIncoming atlas:// URL.

Agent tools (also callable where granted)

experience.create

Create experience — requires permission grant: storage

ParameterTypeDescription
canvas_htmlstringOptional full-canvas index.html (sets canvas mode)
idstringKebab-case experience id, e.g. habit-tracker
permissionsstringComma-separated permission classes the granted tools need (e.g. storage)
scriptstringJavaScript source for main.js (onLaunch/onEvent/onStateChange; call granted tools via atlas.call)
summarystringOne-line description shown on the install sheet
titlestringDisplay name shown in the launcher
toolsstringComma-separated tool ids to grant (e.g. experience.state_set,message.create)
ui_yamlstringOptional declarative views (workflows.yaml vocabulary; every id prefixed exp.<id>.)

llm.action_create

Create action

ParameterTypeDescription
assigneestringDisplay name of a stream member to assign to.
notesstringOptional longer notes.
prioritystringOne of "critical", "important", "normal".
titlestringShort title of the action.

llm.action_list

List actions

ParameterTypeDescription
scopestringEmpty for the current chat, "all" for every chat.

llm.action_update

Update action

ParameterTypeDescription
prioritystringOptional new priority.
statusstringOptional: open, in progress, done, or cancelled.
title_querystringPart of the action's title to find it.

llm.agent_checkpoint_resume

Resume Luna task — requires permission grant: llm

llm.agent_job_approve

Approve Luna job — requires permission grant: llm

ParameterTypeDescription
confirmstringLegacy internal field replaced by the gateway's bound approval_token.
expected_revisionintegerRevision from the latest list/get result.
job_idstringJob id.

llm.agent_job_create

Schedule Luna job — requires permission grant: llm

ParameterTypeDescription
approval_modestring"never" to activate immediately or "always" to hold until explicit approval.
promptstringComplete instructions for each scheduled run.
recurrencestringOne of: none, daily, weekly. Default none.
scheduled_atstringFirst run as ISO 8601 with timezone, e.g. 2026-08-13T09:00:00-04:00.
time_zonestringIANA timezone such as America/New_York; default device timezone.
titlestringShort human-readable job title.

llm.agent_job_delete

Archive Luna job — requires permission grant: llm

ParameterTypeDescription
confirmstringLegacy internal field replaced by the gateway's bound approval_token.
expected_revisionintegerRevision from the latest list/get result.
job_idstringJob id.

llm.agent_job_get

Get Luna job — requires permission grant: llm

ParameterTypeDescription
job_idstringJob id from agent_job_list or a prior receipt.

llm.agent_job_list

List Luna jobs — requires permission grant: llm

llm.agent_job_run

Run Luna job now — requires permission grant: llm

ParameterTypeDescription
expected_revisionintegerRevision from the latest list/get result.
job_idstringJob id.

llm.agent_job_update

Update Luna job — requires permission grant: llm

ParameterTypeDescription
approval_modestringOptional: never or always.
enabledstringOptional true to resume or false to pause.
expected_revisionintegerRevision from the latest list/get result.
job_idstringJob id.
promptstringOptional replacement run instructions.
recurrencestringOptional: none, daily, or weekly.
scheduled_atstringOptional replacement next run as ISO 8601 with timezone.
time_zonestringOptional IANA timezone.
titlestringOptional replacement title.

llm.agent_run_list

Luna job run history — requires permission grant: llm

ParameterTypeDescription
countintegerNumber of recent runs from 1 to 100; default 20.
job_idstringJob id.

llm.annotate

Annotate item — requires permission grant: memory

ParameterTypeDescription
item_querystringPhrase identifying the existing item.
notestringThe correction or extra context as a complete sentence.

llm.app_action

Run app action

ParameterTypeDescription
action_idstringThe action id, e.g. "activity.mark_all_read" or "maps.open".
argsstringOptional JSON object string containing the action's parameters.
confirmstring"true" only after the user explicitly confirmed a destructive action.

llm.app_capabilities

App capabilities

ParameterTypeDescription
filterstringOptional keyword to narrow the list (e.g. "wallpaper", "notification", "pin").

llm.atlas_toggle

Toggle Atlas

ParameterTypeDescription
enabledstring"on" to enable Atlas in this chat, "off" to disable it.

llm.call_camera

Call camera

ParameterTypeDescription
enabledstring"on" or "off".

llm.call_mute

Mute call

ParameterTypeDescription
mutedstring"on" to mute, "off" to unmute.

llm.capability_execute

Execute capability

ParameterTypeDescription
arguments_jsonstringJSON object string with the capability arguments, or "{}" when it takes no arguments.
capability_idstringExact capability_id returned by capability_search.

llm.capability_search

Search capabilities

ParameterTypeDescription
limitintegerNumber of matches from 1 to 8. Default 5.
querystringFocused capability query such as "create action", "schedule recurring research", "rename stream", or "store memory".

llm.contact_lookup

Contact lookup — requires permission grant: contacts

ParameterTypeDescription
namestringContact name (or part of it). Empty string lists contact names.

llm.create_chat

Create chat

ParameterTypeDescription
membersstringComma or "and" separated contact names to add (e.g. "Rowhel and Kyle").
namestringOptional chat title. Leave empty to name it after the members.

llm.custom_instructions_reset

Reset custom instructions

llm.custom_instructions_set

Set custom instructions

ParameterTypeDescription
instructionstringThe standing instruction in the user's words.

llm.device_context

Device context

ParameterTypeDescription
includestringOptional CSV of time, date, timezone, location. Omit for clock only. Pass location only when the user's question needs their current place.

llm.dictionary_refine

Refine dictionary

ParameterTypeDescription
definitionstringConcise final definition grounded only in what the user explained.
precisionstringYour confidence from 0 to 1, for example 0.8.
termstringThe dictionary term being defined.

llm.end_call

End call

llm.entity_list

List entities — requires permission grant: memory

ParameterTypeDescription
kindstringOne of "person", "place", "org".

llm.file_retrieve

Retrieve file — requires permission grants: memory, storage

ParameterTypeDescription
date_fromstringISO-8601 start date.
date_tostringISO-8601 end date.
limitstringDefault 3. Use "1" for the first/latest and "20" for all.
orderstring"oldest" or "newest"; default is newest.
querystringDescription of the file. Use "" when filtering only by type/date.
typestringMIME prefix such as "image/", "application/pdf", "text/vcard", "application/location", or "audio/".

llm.forget_about

Forget about — requires permission grant: memory

ParameterTypeDescription
kindsstringOptional CSV "text, audio, document, contact, photo, video".
limitstring"1" for precise single-fact deletion; omit for cascading topic-wide deletion.
topicstringPerson, place, fact, or topic to remove.

llm.memory_store

Store memory — requires permission grant: memory

ParameterTypeDescription
contentstringComplete statement, e.g. "User works at Spotify" rather than just "Spotify".
kindstringAlmost always "fact". Use "document" only if user says "save this document".

llm.message_action

Message action

ParameterTypeDescription
actionstringOne of: reply, save, unsave, archive, unarchive, trash, restore, copy, speak.
confirmstringLegacy internal field. Luna receives an approval_token schema for destructive variants through the capability gateway.
messagestringThe message's reference id from message_list, or a distinctive text fragment.
textstringFor reply — the reply text to send.

llm.message_list

List messages

ParameterTypeDescription
chatstringChat or contact name. Empty string uses the current chat.
countstringHow many recent messages (default 15, max 40).

llm.notes_pull

Pull notes

llm.open_chat

Open chat

ParameterTypeDescription
namestringChat title or contact name to open.

llm.phone_call

Call phone number — requires permission grant: phone

ParameterTypeDescription
phone_numberstringPhone number to call, including country code when the user provides one.

llm.profile_name_set

Set profile name

ParameterTypeDescription
namestringThe new display name, exactly as the user wants it shown.

llm.project_review

Project review

ParameterTypeDescription
lookback_daysstringHow many recent days to include. Default 7.

llm.recall_about

Recall about — requires permission grant: memory

ParameterTypeDescription
include_profile_namebooleanSet true only when the user asks for their own profile name.
kindsstringOptional CSV "text, audio, document, contact, photo, video".
modestringOperation chosen by you: search or inventory.
topicstringPerson, place, thing, or topic for mode=search. Use an empty string for mode=inventory.

llm.reply

Reply

ParameterTypeDescription
textstringThe exact text the user will see. Be concise by default, but provide the detail the user requested.

llm.retag

Retag item — requires permission grant: memory

ParameterTypeDescription
item_querystringPhrase identifying the existing item.
new_labelstringThe new tag to add.
old_labelstringThe current tag to remove.

llm.search_all

Search everywhere

ParameterTypeDescription
querystringText to search for.

llm.search_conversation

Search conversation — requires permission grant: memory

ParameterTypeDescription
orderstringResult order: relevance, newest, or oldest. You choose; it is never inferred from query wording.
querystringExact keywords or phrase to search. Use an empty string only when order is newest or oldest.
scopestringAuthor scope: user for user-authored messages only, or all for both user and assistant.
topKstringNumber of past messages to retrieve. Default 5, maximum 20.

llm.send_message

Send message

ParameterTypeDescription
textstringThe message text to send.
tostringContact or chat name. Empty string sends in the current chat.

llm.start_call

Start call

ParameterTypeDescription
contactstringContact name to call. Empty string calls the person in the current chat.
kindstring"voice" or "video".

llm.stream_list

List chats

llm.suggest_route

Suggest route

ParameterTypeDescription
reasonstringOne short phrase explaining why this message belongs there.
targetstringDestination stream title.

llm.tag

Tag item — requires permission grant: memory

ParameterTypeDescription
item_querystringPhrase identifying the existing item.
labelstringShort tag, one to three words.

llm.untag

Untag item — requires permission grant: memory

ParameterTypeDescription
item_querystringPhrase identifying the existing item.
labelstringThe tag to remove.

llm.web_fetch

Fetch a web page — requires permission grant: llm

ParameterTypeDescription
max_content_tokensintegerMaximum retrieved content budget from 500 to 20000 tokens; default 12000.
urlstringExact public HTTP or HTTPS URL to retrieve.

llm.web_search

Search the web — requires permission grant: llm

ParameterTypeDescription
allowed_domainsstringOptional comma-separated domains to search exclusively.
excluded_domainsstringOptional comma-separated domains to exclude.
max_resultsintegerNumber of results from 1 to 10; default 5.
querystringA focused web search query.

llm.wipe_all

Wipe all — requires permission grants: memory, storage

ParameterTypeDescription
scopestringOptional CSV of modalities "text, audio, document, contact, photo, video".

Total enabled tools in the registry: 232.