devboxes

Operations

Run any operation with devboxes invoke <operation> --input @<file>, or ask your coding agent to run it. devboxes describe <operation> shows what the operation takes and returns.

Account and Organization

OperationWhat it does
account.inspectShows the account you are signed in with.
organizations.createCreates an Organization with you as owner.
organizations.listLists your Organizations.
organizations.inspectShows one Organization, the managed regions devboxes offers, and the hosts it allows its managed tasks to reach.
organizations.updateRenames an Organization, or changes where its tasks run or which hosts they reach, or whether Chat threads can take tasks over with sessions.handoff.
organizations.deleteDeletes an Organization you own, with everything it holds, once its Sessions are erased or marked for erasure and no Chat conversations remain. Its paid plan ends at once.
roadmap.interestsLists the roadmap features your Organization asked for.
roadmap.mark-interestTells devboxes your Organization wants a roadmap feature, such as Redis-compatible stores.

Members and invitations

See Create an Organization and invite your team.

OperationWhat it does
members.listLists the members and their roles.
members.change-roleChanges a member's role.
members.removeRemoves a member.
members.update-setupSaves how setup guides you and whether you skipped connecting a model subscription.
invitations.createInvites a person by email address.
invitations.listLists the Organization's invitations.
invitations.receivedLists the invitations sent to you.
invitations.respondAccepts or declines an invitation.
invitations.cancelWithdraws an invitation.

Delegations

A delegation token has fine-grained permissions. The token runs only the operations in its operations list, in one Organization.

With expiresInSeconds, the token expires after that many seconds, from one minute to ten years. Without it, the token never expires and works until you revoke it with delegations.revoke. The result of delegations.create then contains a warning. The CLI prints it on stderr, and with --json it stays in the result. delegations.list shows expiresAt as null for such a token, and for the delegation of a queued Run until the Run starts. A Run's delegation is revoked when the Run ends, and erasing its Session deletes it. Store a token without an expiry as a secret, and revoke it when you no longer need it.

An owner sees the delegations of every member in delegations.list, and can revoke any of them with delegations.revoke. The member stays in the Organization, and the token stops working at once. An owner's list also includes the delegation of every Run. Revoking the delegation of a running Run cuts that Run off from the API before it ends. Other members see and revoke only their own delegations. The list never contains a token.

See Connect Claude Code or Codex and Start tasks from CI.

OperationWhat it does
delegations.createCreates a token that can run only the operations you list.
delegations.listLists your delegations, or every member's for an owner.
delegations.revokeEnds one of your delegations, or any member's for an owner.

Approvals

In Chat, an operation that changes access, acts outside devboxes, or can't be undone waits for a person's approval, for up to an hour. A member with a role the request names decides it, signed in within the last 10 minutes; a delegation token can't. A request asked in a direct conversation with devboxes is only for the person who asked.

OperationWhat it does
elevation.inspectShows a request you may decide: the operation, its input, and who asked.
elevation.approveApproves a request, so the same call from Chat runs once within 10 minutes.
elevation.refuseRefuses a request.

Model accounts

See Connect a model account.

OperationWhat it does
connections.addConnects a model account with an API key.
connections.listLists your model accounts.
connections.inspectShows one model account.
connections.usageShows the usage limits the provider reports for a model account, and the Runs that started on it in the last 30 days with their tokens.
connections.updateRenames a model account or replaces its key.
connections.deleteDeletes a model account and frees its name. Refused while a Project or the Chat policy selects the account, or while queued or running work uses it. Past Runs and Chat turns keep the account's id.
providers.listLists the model providers you can connect.
providers.connect-startStarts signing in to a model provider.
providers.connect-completeFinishes signing in to a model provider.
providers.modelsLists the models your accounts offer.
providers.selectShows a model that a model selection could use for new work: one weighted pick, without the account a task or thread keeps.

Repositories

See Connect a repository.

OperationWhat it does
repositories.connectConnects GitHub with an access token.
repositories.github-connect-startStarts installing the devboxes GitHub App.
repositories.github-connect-statusReads how connecting the devboxes GitHub App went.
repositories.github-connect-completeConnects one of the GitHub accounts that the devboxes GitHub App offers.
repositories.connectionsLists your repository connections.
repositories.disconnectRemoves a repository connection.
repositories.catalogLists the repositories a connection can reach.
repositories.pullsLists open pull requests.
repositories.reviewShows a pull request with its description, changes, and review comments.
repositories.checksShows the checks of a pull request.
repositories.github-writeOpens, updates, closes, and comments on GitHub pull requests.
repositories.mergeMerges a reviewed or approved GitHub pull request on request.

Issues of every tracker, GitHub included, go through issues.read and issues.write.

Projects

See Create a Project.

OperationWhat it does
projects.createCreates a Project.
projects.configureChanges a Project's Runner, machine size, models, commands, fix rounds, tool cache, and connection.
projects.configure-mergingTurns on or off whether devboxes merges a Project's pull requests after Review.
projects.listLists your Projects.
images.configureChanges the packages and services in a Project's workspace.
images.inspectShows whether a Project's workspace is ready.
secrets.setSets a variable or a secret.
secrets.listLists variables and secrets, without secret values.
secrets.inspectShows one variable or secret and its Projects.
secrets.scopeGives a Project an Organization variable or secret, or removes it.
secrets.deleteDeletes a variable or secret.

Runners

See Add a Runner.

OperationWhat it does
capacity.registerRegisters a machine as a Runner.
capacity.listLists your Runners and whether they are ready.
capacity.configureTurns a Runner on or off and sets its cost.
capacity.removeRemoves a Runner.

Billing

See Choose a plan and buy credit. Plans and billing lists the plans, their limits, and the billing errors.

OperationWhat it does
billing.inspectShows your Organization's plan, this month's included and extra usage, its prepaid credit, and what its running and parked work cost.
billing.pricesLists what Basic and Premium cost a month and a year, and the credit packs.
billing.buy-creditsOpens a Stripe Checkout page that sells your Organization a pack of prepaid credit. Owners and admins.
billing.subscribeOpens a Stripe Checkout page that subscribes your Organization to Basic or Premium, monthly or yearly. Owners and admins.
billing.complete-checkoutApplies the plan of a paid subscription Checkout page when you return from it, before Stripe's own confirmation. Owners and admins.
billing.change-planMoves your Organization's subscription to another plan or interval at once. Owners and admins.
billing.set-spending-limitLowers the most extra usage your Organization's paid plan bills a month, or raises it up to the plan's cap. Owners.
billing.portalOpens the Stripe customer portal to cancel the plan, update the payment method, or read invoices. Owners.

Catalogue

See Start from the catalogue.

OperationWhat it does
catalogue.listLists ready Blueprints, their bundles, and the tools they use, and marks which tools are connected.
catalogue.installCreates and commits your Organization's Blueprints from catalogue entries, once per entry.
catalogue.updateMoves your Organization's Blueprints from catalogue entries to the entries' newest versions.
catalogue.removeArchives your Organization's Blueprints from catalogue entries; installing an entry again brings its Blueprint back.

Integrations

See Connect an MCP server.

OperationWhat it does
integrations.detectTells how a remote MCP server lets devboxes in: without credentials, through OAuth, or by a key.
integrations.connectConnects a remote MCP server, and returns the sign-in URL for OAuth. Owners and admins.
integrations.listLists the connected servers, their status, and their tools.
integrations.toolsReturns a server's tools with their input schemas.
integrations.refresh-toolsReads a server's tools again and stores them.
integrations.callCalls one tool of a connected server.
integrations.disconnectDisconnects a server and deletes its credentials. Owners and admins.

Blueprints

See Write a Blueprint.

OperationWhat it does
blueprints.createCreates a Blueprint and its first, empty draft.
blueprints.readReturns the graph of one version.
blueprints.replace-draftReplaces the graph of a draft.
blueprints.place-groupCopies a group of nodes from any version into a draft.
blueprints.commitCommits a draft as the Blueprint's next version.
blueprints.approveApproves a committed version that reaches a sensitive integration.
blueprints.draftCopies a version into a new draft.
blueprints.discardDeletes a draft.
blueprints.listLists Blueprints, their versions, and the Projects bound to them.
blueprints.bindLimits a Blueprint to a Project, or lifts it.
blueprints.archiveRetires a Blueprint.
integrations.sensitivityLists the sensitive integrations.
integrations.configure-sensitivityMarks an integration sensitive, or not.

The Blueprint graph reference describes the graph that these operations read and write.

Sessions

See Start and follow tasks.

OperationWhat it does
sessions.dispatchStarts a task in a new Session. With grill, it first asks open decisions in batches; you or your chat thread get a question session.
sessions.continueGives an existing Session more work.
sessions.listLists recent Sessions.
sessions.inspectShows a Session, its Runs, and their progress.
sessions.refresh-pull-requestsReads the pull requests of Sessions from the code host again.
sessions.unexpected-issuesLists unexpected issues across Sessions.
sessions.eventsShows the agent's messages and tool calls.
sessions.questionsLists the agent's open questions.
sessions.inputSends the agent a message or an answer.
sessions.inputsLists your messages and answers to the agent.
question-sessions.openOpens a link and a password that let people without an account read a Session and answer its questions for 12 hours.
question-sessions.listLists a Session's question sessions and who entered each.
question-sessions.closeCloses a question session, so its link and password stop working and its waiting questions go to the Session's thread, when it has one.
sessions.cancelStops a task.
sessions.hold-mergeKeeps devboxes from merging a Session's work.
sessions.handoffMoves a Session into the Chat conversation that asks for it. Only a running Chat turn can run it.
sessions.artifactsLists the files the agent attached.
sessions.artifact-downloadReturns a download link for one attached file.
sessions.usageShows the tokens and the cost of a Session.
sessions.eraseErases a Session.

Review

See Review pull requests.

OperationWhat it does
review.requestStarts a Review of a task's pull request.
review.inspectShows a Session's Reviews and their findings.

Schedules

See Run a request on a schedule.

OperationWhat it does
schedules.createSets up a request that runs in a chat thread at the times of a cron pattern or on every new GitHub issue.
schedules.listLists Schedules with their next fire time and what the latest one did.
schedules.pauseStops a Schedule from firing.
schedules.resumeLets a paused Schedule fire again from its next fire time, or for issues opened after it resumes.
schedules.runRuns a cron Schedule's request once now.
schedules.deleteDeletes a Schedule.

Chat and issue trackers

See Connect Slack, Microsoft Teams, Google Chat, Discord, or Telegram and Connect an issue tracker.

OperationWhat it does
chat.configure-policyTurns Chat on or off and sets what it may do.
chat.policyShows the Chat policy.
chat.connect-slackStarts connecting Slack.
chat.connect-teamsStarts connecting Microsoft Teams.
chat.connect-google-chatStarts connecting Google Chat.
chat.connect-discordStarts connecting Discord.
chat.connect-telegramCreates a link that connects a Telegram group.
chat.connect-linearStarts connecting Linear.
chat.connect-jiraConnects Jira.
chat.connect-githubConnects the GitHub issues of a GitHub App installation.
chat.integrationsLists your connected chat and tracker workspaces.
chat.disconnectDisconnects a workspace.
chat.discover-slack-channelsLists the Slack channels devboxes can see.
chat.channelsLists your channels and the Projects assigned to them.
chat.configure-channelAssigns a channel to Projects.
chat.configure-ambientTurns ambient mode on or off for a Discord or Telegram workspace: devboxes answers every person's message in the Telegram group, or in the Discord channels assigned to Projects.
chat.configure-google-chat-delegationNames the Workspace member whose domain-wide delegation devboxes reads a Google Chat workspace's spaces as, to follow thread replies and read thread history, or clears it.
chat.conversationsLists Chat conversations.
chat.inspect-conversationShows a conversation and the tasks it started.
chat.zoomOpens a line of a conversation's Chat log, or of Organization memory, into its two halves, or a message whole.
chat.erase-messagesErases anyone's messages of a conversation's Chat log, their text and who wrote them, with the Organization memory entries they saved. Owners and admins call it.
chat.erase-own-messagesErases messages that you wrote in a conversation's Chat log, their text and who wrote them, with the Organization memory entries they saved.
chat.close-conversationCloses a conversation and can erase it.
chat.web-postPosts your message to devboxes in a web chat, or starts a new one.
chat.web-messagesShows the messages of your web chat and the tasks it started.
chat.tellAsks the Chat participant the questions that a work-starting turn needs answered. Only a running Chat turn can run it.
chat.cite-content-requestRecords a person's own request for code or a file, in their whole words, so that the reply and the replies that report the work it starts show code blocks and post media other than images. Only a running Chat turn can run it.
chat.skip-replyEnds a reply that needs no answer, such as thanks, without posting. When the reply must be posted, it refuses with CHAT_REPLY_OWED and a REPLY_OWED_* code in details.replyOwed. Only a running Chat turn can run it.
chat.post-artifactPosts images of the thread's work, or other media that a person asked for, into its Slack thread as one message, or at the top level of its Channel when a person asks. Only a running Chat turn can run it.
chat.link-accountSends the person who asked a private link that links their chat account. Only a running Chat turn can run it.
chat.add-waiting-workRecords a request that starts only after other work finishes. Only a running Chat turn in a chat channel can run it, when the Chat policy also allows sessions.dispatch.
chat.resolve-waiting-workRemoves a waiting request. A Chat participant removes their own requests in their thread; an owner or admin removes any.
issues.configureBinds a Project to a Linear Team, a Jira Project, or a GitHub repository.
issues.configurationShows a Project's tracker binding.
issues.disconnectRemoves a Project's tracker binding.
issues.readReads issues in the bound Team, Project, or repository.
issues.writeCreates, updates, moves, and comments on issues. From Chat, a comment with a code block needs a cited request.

Personas and memory

See Set up Personas and memory.

OperationWhat it does
personas.createCreates a Persona.
personas.listLists active Personas and their channels.
personas.configureRenames a Persona or makes it the default.
personas.assignUses a Persona in one channel.
personas.unassignReturns a channel to the default Persona.
personas.deactivateStops a Persona from shaping Chat.
memory.createAdds an entry to Organization memory.
memory.listLists Organization memory.
memory.updateReplaces an entry with new text, credited to you.
memory.eraseErases an entry's text.
people.policyShows whether personal preferences are on.
people.configure-policyTurns personal preferences on or off.
people.identifyReturns your Person, creating it on first use.
people.linkLinks the chat account in a link from Chat; with preview, only names it.
people.linksLists the chat accounts linked to your account.
people.unlinkRemoves your chat account's link, or an owner or admin removes another member's.
people.rememberStores one of your preferences.
people.preferencesLists your preferences.
people.correctChanges one of your preferences.
people.forgetDeletes one of your preferences.

Terms of ServicePrivacy Policy

On this page