API reference

The complete contract between Coline and your app — generated from the SDK's own tables, so it can't drift from what actually runs.

← Guides

Permissions

Declared in the manifest, granted at install, shown to users with exactly this copy. Every capability call requires its permission to be declared AND granted.

members.read

See who is in the workspace (names, handles, avatars).

files.read

Read files the installing user can access.

files.write

Create and update files on behalf of users.

drives.app

Use its own app drive for files it creates.

storage.app

Store app data (key-value state and records) in the workspace.

search.index

Add its content to workspace search.

search.query

Search the workspace on behalf of users.

notifications.write

Send notifications to workspace members.

ai.generate

Use Coline AI models (billed to the workspace).

ai.tools

Offer tools that Kairo and agents can run.

events.emit

Emit ambient events into the workspace.

webhooks.subscribe

Receive workspace events at its backend.

commands.register

Add commands to the command palette.

realtime.subscribe

Receive live updates for its own surfaces.

network.external

Call the external services it lists (through Coline, with the app's own credentials).

Tool effects

An effect is not metadata — the runtime enforces it as a hard ceiling on what a tool's code can do, on both sides of the trust boundary.

read

Reads workspace data. Auto-approved when Kairo runs the tool.

write

Creates or updates data. Approval depends on the session's permission mode.

destructive

Deletes or irreversibly changes data. Always requires explicit approval.

external

Causes effects outside Coline (emails, external APIs). Always requires explicit approval.

Capability operations

Every coline.* call maps to one operation with one required permission and one mutation class. A tool's effect must admit the operation's class or the call is denied.

ai

ai.generatereadai.generate

drives

drives.getAppDrivereaddrives.app

events

events.emitwriteevents.emit

files

files.createwritefiles.write
files.getreadfiles.read
files.getDocumentreadfiles.read
files.listreadfiles.read
files.trashdestructivefiles.write
files.updatewritefiles.write
files.updateDocumentwritefiles.write

members

members.getreadmembers.read
members.listreadmembers.read

navigation

navigation.navigatereadno permission required
navigation.openAppHomereadno permission required
navigation.openFilereadno permission required
navigation.openReferencereadno permission required

net

net.fetchreadnetwork.external

notifications

notifications.createwritenotifications.write

pickers

pickers.confirmreadno permission required
pickers.filereadno permission required
pickers.memberreadno permission required

realtime

realtime.publishwriterealtime.subscribe
realtime.subscribereadrealtime.subscribe

search

search.index.deletewritesearch.index
search.index.upsertwritesearch.index
search.queryreadsearch.query

storage

storage.kv.deletewritestorage.app
storage.kv.getreadstorage.app
storage.kv.listreadstorage.app
storage.kv.setwritestorage.app
storage.records.deletedestructivestorage.app
storage.records.getreadstorage.app
storage.records.insertwritestorage.app
storage.records.queryreadstorage.app
storage.records.updatewritestorage.app

workspace

workspace.getreadno permission required

Chat cards & inline surfaces

Tool result cards and inline file surfaces render inside conversations, so they use a validated subset of the UI vocabulary. Everything else is available on home, preview, and editor surfaces.

AlertAvatarBadgeButtonCardCodeBlockDividerFileCardHeadingImageLinkProgressReferenceStackTableTextUserChip

Runtime ceilings

Generous by default, env-tunable, and always failing closed with a named error your execution log shows.

Capability calls120 burst, refilling 20/second per install
net.fetch20 burst, refilling 2/second per install
ai.generate200 calls per install per day
Executions10,000 per install per day (tools + renders + schedules)
Logic bundle5 MB
Client bundle8 MB
Storage5,000 kv keys · 200,000 records per collection · 200 kB values
Realtime events32 kB per event payload