Coline Docs
App SDK

SDK reference

Permissions, tool effects, capability operations, chat cards and runtime limits.

This reference is generated from @colineapp/sdk 0.6.0's own contract tables.

Permissions

Declared in the manifest, approved by a workspace admin at install, and shown to people with exactly this wording. Every capability call needs its permission declared and granted.

PermissionShown to people as
references.readResolve names and links for workspace objects you can access.
tasks.readRead tasks and task board statuses you can access.
tasks.writeCreate, edit, and delete tasks on your behalf.
calendar.readRead calendar events you can access.
calendar.writeCreate, edit, and cancel calendar events on your behalf.
messages.readRead conversations and task or event comments you can access.
messages.writeSend messages and comments on your behalf.
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).
jobs.runRun background work after you leave, on your behalf or its own.
endpoints.receiveReceive requests from the external services it lists at private URLs.
connections.useAsk you to connect accounts on the services it lists, and use them for you.
public.pagesPublish pages that people outside the workspace can open when an admin turns them on.

Tool effects

An effect isn't a label. The runtime enforces it as a ceiling on what a tool's code can do, on both sides of the trust boundary.

EffectMeans
readReads workspace data. Kairo runs these without asking
writeCreates or updates data. Whether Kairo asks first depends on the person's permission mode
destructiveDeletes or irreversibly changes data. Kairo asks first unless the person chose Full access
externalCauses effects outside Coline, such as email or calls to external APIs. Kairo asks first unless the person chose Full access

Capability operations

Every coline.* call maps to one operation with one required permission and one mutation class. A tool's effect must allow the operation's class, or the call fails with effect_ceiling_exceeded.

OperationMutationPermission
ai.generatereadai.generate
ai.images.generatewriteai.generate
ai.jobs.cancelwriteai.generate
ai.jobs.eventsreadai.generate
ai.jobs.getreadai.generate
ai.jobs.listreadai.generate
ai.modelsreadai.generate
ai.runwriteai.generate
calendar.createwritecalendar.write
calendar.deletedestructivecalendar.write
calendar.getreadcalendar.read
calendar.listreadcalendar.read
calendar.updatewritecalendar.write
connections.connectreadconnections.use
connections.disconnectwriteconnections.use
connections.getreadconnections.use
connections.listreadconnections.use
drives.getAppDrivereaddrives.app
endpoints.listreadendpoints.receive
endpoints.urlreadendpoints.receive
events.emitwriteevents.emit
files.completeUploadwritefiles.write
files.createwritefiles.write
files.createUploadwritefiles.write
files.getreadfiles.read
files.getDocumentreadfiles.read
files.listreadfiles.read
files.movewritefiles.write
files.previewreadfiles.read
files.readUrlreadfiles.read
files.saveAswritefiles.write
files.trashdestructivefiles.write
files.updatewritefiles.write
files.updateDocumentwritefiles.write
files.uploadwritefiles.write
jobs.cancelwritejobs.run
jobs.checkpointreadjobs.run
jobs.enqueuewritejobs.run
jobs.getreadjobs.run
jobs.listreadjobs.run
jobs.progressreadjobs.run
members.getreadmembers.read
members.listreadmembers.read
messages.listreadmessages.read
messages.sendwritemessages.write
navigation.navigatereadNone
navigation.openAppHomereadNone
navigation.openFilereadNone
navigation.openReferencereadNone
net.fetchreadnetwork.external
notifications.createwritenotifications.write
pickers.confirmreadNone
pickers.destinationreadNone
pickers.filereadNone
pickers.memberreadNone
realtime.publishwriterealtime.subscribe
realtime.subscribereadrealtime.subscribe
references.resolvereadreferences.read
search.index.deletewritesearch.index
search.index.upsertwritesearch.index
search.queryreadsearch.query
storage.batchwritestorage.app
storage.kv.deletewritestorage.app
storage.kv.getreadstorage.app
storage.kv.listreadstorage.app
storage.kv.setwritestorage.app
storage.records.aggregatereadstorage.app
storage.records.batchwritestorage.app
storage.records.countreadstorage.app
storage.records.deletedestructivestorage.app
storage.records.deleteManydestructivestorage.app
storage.records.getreadstorage.app
storage.records.insertwritestorage.app
storage.records.insertManywritestorage.app
storage.records.queryreadstorage.app
storage.records.setAccessdestructivestorage.app
storage.records.syncreadstorage.app
storage.records.updatewritestorage.app
storage.records.updateManywritestorage.app
tasks.boardreadtasks.read
tasks.createwritetasks.write
tasks.deletedestructivetasks.write
tasks.getreadtasks.read
tasks.listreadtasks.read
tasks.updatewritetasks.write
tools.invokewriteai.tools
workspace.getreadNone

Chat cards

Tool result cards and inline file surfaces render inside conversations, so they accept this subset of tree nodes. Home, preview and editor surfaces can use every node.

Alert, Avatar, Badge, Button, Card, Chart, CodeBlock, Divider, FileCard, Heading, Image, KeyValue, Link, List, Progress, Reference, Stack, Stat, Table, Text, UserChip

Runtime limits

Generous by default, and every limit fails closed with a named error that the execution log shows.

LimitValue
Capability calls120 burst, refilling 20 per second, per install
net.fetch20 burst, refilling 2 per second, per install
ai.generate200 calls per install per day
Executions10,000 per install per day (tools, renders and schedules)
Logic bundle5 MB
Client bundle8 MB
Storage5,000 key-value keys, 200,000 records per collection, 200 kB per value
Realtime events32 kB per event payload
Background job attemptUp to 15 minutes

On this page