auth | principal() | { kind: "user" | "service_account", id, name, email } |
users | list() | { id, kind, name, role }[] for the bound workspace |
workspace | list() | { id, name, organization_id }[] the identity can reach in the workspace’s organization; no create, update or delete |
fs | read(path, options?), readJSON(path, options?), readBytes(path, options?), readFile(path, options?) and their ById forms | Text, parsed JSON, bytes, or { content, encoding, mimeType, size, revision, ... }; fresh: true bypasses read caches |
fs | dataUrl(path), assetUrl(path) and ById forms | An inline data URL, or { url, expiresAt, size, contentType }; an asset URL is not a share link |
fs | info(path), infoById(id), exists(path), resolveId(id), getId(path) | Metadata, existence and id resolution; ids are cloud-only |
fs | list(path?), glob(pattern, { cwd? }), search(query, { path?, include? }) | Entries, matching paths, or { path, line, text } hits, bounded by the transport |
fs | write(path, content, { encoding?, baseRevision?, createOnly? }), writeJSON(path, value, condition?) | { path, revision }; conditions are honoured over HTTP and refused, never ignored, elsewhere |
fs | mkdir(path), move(from, to), copy(from, to), remove(path) / delete(path) | Need write authority; targets are literal file paths |
fs | watch(path, callback, { emitInitial?, intervalMs? }), watchById(id, ...) | Returns a synchronous stop function; polling transports go no faster than 250 ms |
host / fs | open(path), openById(id) | Opens the file in Arg; needs an application host |
db | query(path, sql, params?), exec(path, sql, params?), tables(path), schema(path, table) | File-backed SQLite inside an Arg preview only |
actions | list(options?), schema(id), describe(id, options?) | Discover ids and input contracts before running |
actions | run(id, input, { idempotencyKey? }), runBatch(calls), getRun(id), listRuns(options?) | { runId, status, output?, error? }; check status, never retry an accepted write blindly |
actions | ready, enabled, readOnly | What the host granted |
agents | run(message, options?) | The agent_run Action; both the Action’s and the agent’s status must be terminal |
chat | create({ title?, agent? }), send(id, message, { model?, openPanel? }), start(message, options), continue(id, message, options) | An accepted or queued turn with panelOpened; agent is arg, claude_code or codex |
chat | list({ limit?, offset? }), search(query, { limit? }), get(id), status(id, callId), open(id) | Workspace-bound chats for this identity; nothing is streamed |
comments | list(path, { includeResolved? }), create({ path, body, parentId?, metadata? }), update(id, body), resolve(id, resolved?), remove(id) | Cloud file paths, even under arg serve |
permissions | share({ path, kind, userId, permission }), shareFile(path, options), shareFolder(path, options) | Permission is read, write or manage; caller needs manage, and recipient must be in the workspace organization |
notifications | list({ limit?, offset?, unreadOnly? }), send(input), sendToMe(input), sendToUser(userId, input), markRead(id), markAllRead() | A title or target is required; recipient preferences and channel selection still apply |
integrations | providers(), connections({ organizationId?, providerId? }), triggers(providerId), proxy(alias, path, { method?, body? }) | Discovery never returns credentials; proxy needs a server integration capability |
automations | run({ filePath, document?, input? }), getRun(id), stop(id), history({ limit?, offset?, filePath? }), deployments(), pause(filePath), resume(filePath) | Automation files and their runs |
code | run(command, { sandboxId? }) | { status: "completed" | "failed", stdout, stderr, duration_ms } |
sites | list(), create({ slug, sourcePath, framework, access, displayName? }), get(id), build(id, { autoPromote? }), version(id, versionId), promote(id, versionId), remove(id) | Framework static, vite, astro, next, worker; access public or workspace |
servers | list(), start({ command, port, name?, access?, actions? }), get(id), stop(id) | Long-running server lifecycle |
ui | register(registration, handlers?), available, readOnly, ready | Returns { update, dispose }; app chrome inside an Arg preview only |