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.
← GuidesPermissions
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.readSee who is in the workspace (names, handles, avatars).
files.readRead files the installing user can access.
files.writeCreate and update files on behalf of users.
drives.appUse its own app drive for files it creates.
storage.appStore app data (key-value state and records) in the workspace.
search.indexAdd its content to workspace search.
search.querySearch the workspace on behalf of users.
notifications.writeSend notifications to workspace members.
ai.generateUse Coline AI models (billed to the workspace).
ai.toolsOffer tools that Kairo and agents can run.
events.emitEmit ambient events into the workspace.
webhooks.subscribeReceive workspace events at its backend.
commands.registerAdd commands to the command palette.
realtime.subscribeReceive live updates for its own surfaces.
network.externalCall 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.
readReads workspace data. Auto-approved when Kairo runs the tool.
writeCreates or updates data. Approval depends on the session's permission mode.
destructiveDeletes or irreversibly changes data. Always requires explicit approval.
externalCauses 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.generatedrives
drives.getAppDrivereaddrives.appevents
events.emitwriteevents.emitfiles
files.createwritefiles.writefiles.getreadfiles.readfiles.getDocumentreadfiles.readfiles.listreadfiles.readfiles.trashdestructivefiles.writefiles.updatewritefiles.writefiles.updateDocumentwritefiles.writemembers
members.getreadmembers.readmembers.listreadmembers.readnavigation
navigation.navigatereadno permission requirednavigation.openAppHomereadno permission requirednavigation.openFilereadno permission requirednavigation.openReferencereadno permission requirednet
net.fetchreadnetwork.externalnotifications
notifications.createwritenotifications.writepickers
pickers.confirmreadno permission requiredpickers.filereadno permission requiredpickers.memberreadno permission requiredrealtime
realtime.publishwriterealtime.subscriberealtime.subscribereadrealtime.subscribesearch
search.index.deletewritesearch.indexsearch.index.upsertwritesearch.indexsearch.queryreadsearch.querystorage
storage.kv.deletewritestorage.appstorage.kv.getreadstorage.appstorage.kv.listreadstorage.appstorage.kv.setwritestorage.appstorage.records.deletedestructivestorage.appstorage.records.getreadstorage.appstorage.records.insertwritestorage.appstorage.records.queryreadstorage.appstorage.records.updatewritestorage.appworkspace
workspace.getreadno permission requiredChat 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.
Runtime ceilings
Generous by default, env-tunable, and always failing closed with a named error your execution log shows.