Devin

Devin is an autonomous AI software engineer by Cognition that can independently write, run, debug, and deploy code.

With Devin, you can:

  • Automate coding tasks: Assign software engineering tasks and let Devin autonomously write, test, and iterate on code
  • Manage sessions: Create, monitor, and interact with Devin sessions to track progress on assigned tasks
  • Guide active work: Send messages to running sessions to provide additional context, redirect efforts, or answer questions
  • Retrieve structured output: Poll completed sessions for pull requests, structured results, and detailed status
  • Control costs: Set ACU (Autonomous Compute Unit) limits to cap spending on long-running tasks
  • Standardize workflows: Use playbook IDs to apply repeatable task patterns across sessions

In Sim, the Devin integration enables your agents to programmatically manage Devin sessions as part of their workflows:

  • Create sessions: Kick off new Devin sessions with a prompt describing the task, optional playbook, ACU limits, and tags
  • Get session details: Retrieve the full state of a session including status, pull requests, structured output, and resource consumption
  • List sessions: Query all sessions in your organization with optional pagination
  • Send messages: Communicate with active or suspended sessions to provide guidance, and automatically resume suspended sessions

This allows for powerful automation scenarios such as triggering code generation from upstream events, polling for completion before consuming results, orchestrating multi-step development pipelines, and integrating Devin's output into broader agent workflows.

Usage Instructions

Integrate Devin into your workflow. Create sessions to assign coding tasks, send messages to guide active sessions, and retrieve session status and results. Devin autonomously writes, runs, and tests code.

Actions

devin_create_session

Create a new Devin session with a prompt. Devin will autonomously work on the task described in the prompt.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
promptstringYesThe task prompt for Devin to work on
playbookIdstringNoOptional playbook ID to guide the session
maxAcuLimitnumberNoMaximum ACU limit for the session
tagsstringNoComma-separated tags for the session

Output

ParameterTypeDescription
sessionIdstringUnique identifier for the session
urlstringURL to view the session in the Devin UI
statusstringSession status (new, claimed, running, exit, error, suspended, resuming)
statusDetailstringDetailed status (working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.)
titlestringSession title
createdAtnumberUnix timestamp when the session was created
updatedAtnumberUnix timestamp when the session was last updated
acusConsumednumberACUs consumed by the session
tagsjsonTags associated with the session (array of strings)
pullRequestsjsonPull requests created during the session ([{pr_url, pr_state}])
structuredOutputjsonStructured output from the session
playbookIdstringAssociated playbook ID
isArchivedbooleanWhether the session is archived

devin_get_session

Retrieve details of an existing Devin session including status, tags, pull requests, and structured output.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to retrieve

Output

ParameterTypeDescription
sessionIdstringUnique identifier for the session
urlstringURL to view the session in the Devin UI
statusstringSession status (new, claimed, running, exit, error, suspended, resuming)
statusDetailstringDetailed status (working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.)
titlestringSession title
createdAtnumberUnix timestamp when the session was created
updatedAtnumberUnix timestamp when the session was last updated
acusConsumednumberACUs consumed by the session
tagsjsonTags associated with the session (array of strings)
pullRequestsjsonPull requests created during the session ([{pr_url, pr_state}])
structuredOutputjsonStructured output from the session
playbookIdstringAssociated playbook ID
isArchivedbooleanWhether the session is archived

devin_list_sessions

List Devin sessions in the organization. Returns up to 100 sessions by default.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
limitnumberNoMaximum number of sessions to return (1-200, default: 100)
afterstringNoPagination cursor (endCursor from a previous response) to fetch the next page

Output

ParameterTypeDescription
sessionsarrayList of Devin sessions
sessionIdstringUnique identifier for the session
urlstringURL to view the session
statusstringSession status
statusDetailstringDetailed status
titlestringSession title
createdAtnumberCreation timestamp (Unix)
updatedAtnumberLast updated timestamp (Unix)
tagsjsonSession tags (array of strings)
acusConsumednumberACUs consumed by the session
pullRequestsjsonPull requests created during the session ([{pr_url, pr_state}])
playbookIdstringAssociated playbook ID
isArchivedbooleanWhether the session is archived
endCursorstringPagination cursor for the next page, or null if last page
hasNextPagebooleanWhether more sessions are available
totalnumberTotal number of sessions, if provided

devin_send_message

Send a message to a Devin session. If the session is suspended, it will be automatically resumed. Returns the updated session state.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to send the message to
messagestringYesThe message to send to Devin

Output

ParameterTypeDescription
sessionIdstringUnique identifier for the session
urlstringURL to view the session in the Devin UI
statusstringSession status (new, claimed, running, exit, error, suspended, resuming)
statusDetailstringDetailed status (working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.)
titlestringSession title
createdAtnumberUnix timestamp when the session was created
updatedAtnumberUnix timestamp when the session was last updated
acusConsumednumberACUs consumed by the session
tagsjsonTags associated with the session (array of strings)
pullRequestsjsonPull requests created during the session ([{pr_url, pr_state}])
structuredOutputjsonStructured output from the session
playbookIdstringAssociated playbook ID
isArchivedbooleanWhether the session is archived

devin_list_session_messages

List the messages exchanged in a Devin session, including messages from both the user and Devin.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to list messages for
limitnumberNoMaximum number of messages to return (1-200, default: 100)
afterstringNoPagination cursor (endCursor from a previous response) to fetch the next page

Output

ParameterTypeDescription
messagesarrayMessages exchanged in the session
eventIdstringUnique identifier for the message event
sourcestringOrigin of the message (devin or user)
messagestringThe message content
createdAtnumberUnix timestamp when the message was created
endCursorstringPagination cursor for the next page, or null if last page
hasNextPagebooleanWhether more messages are available
totalnumberTotal number of messages, if provided

devin_list_session_attachments

List the files uploaded to or produced by a Devin session.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to list attachments for

Output

ParameterTypeDescription
attachmentsarrayAttachments associated with the session
attachmentIdstringUnique identifier for the attachment
namestringAttachment file name
urlstringURL to download the attachment
sourcestringOrigin of the attachment (devin or user)
contentTypestringMIME type of the attachment

devin_get_session_tags

Retrieve the tags currently applied to a Devin session.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to retrieve tags for

Output

ParameterTypeDescription
tagsjsonTags applied to the session (array of strings)

devin_append_session_tags

Add tags to a Devin session without removing existing tags (max 50 tags total).

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to add tags to
tagsstringYesTags to append to the session (comma-separated string or array of strings)

Output

ParameterTypeDescription
tagsjsonUpdated list of tags on the session (array of strings)

devin_replace_session_tags

Replace all tags on a Devin session with a new set of tags (max 50 tags).

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to replace tags on
tagsstringYesTags that will overwrite the existing tags (comma-separated string or array of strings)

Output

ParameterTypeDescription
tagsjsonUpdated list of tags on the session (array of strings)

devin_archive_session

Archive a Devin session. Archived sessions can still be viewed but cannot be modified or resumed.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to archive

Output

ParameterTypeDescription
sessionIdstringUnique identifier for the session
urlstringURL to view the session in the Devin UI
statusstringSession status (new, claimed, running, exit, error, suspended, resuming)
statusDetailstringDetailed status (working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.)
titlestringSession title
createdAtnumberUnix timestamp when the session was created
updatedAtnumberUnix timestamp when the session was last updated
acusConsumednumberACUs consumed by the session
tagsjsonTags associated with the session (array of strings)
pullRequestsjsonPull requests created during the session ([{pr_url, pr_state}])
structuredOutputjsonStructured output from the session
playbookIdstringAssociated playbook ID
isArchivedbooleanWhether the session is archived

devin_terminate_session

Terminate a Devin session. Optionally archive the session instead of permanently terminating it.

Input

ParameterTypeRequiredDescription
apiKeystringYesDevin API key (service user credential starting with cog_)
orgIdstringYesDevin organization ID (prefixed with org-)
sessionIdstringYesThe session ID to terminate
archivebooleanNoArchive the session instead of permanently terminating it (default: false)

Output

ParameterTypeDescription
sessionIdstringUnique identifier for the session
urlstringURL to view the session in the Devin UI
statusstringSession status (new, claimed, running, exit, error, suspended, resuming)
statusDetailstringDetailed status (working, waiting_for_user, waiting_for_approval, finished, inactivity, etc.)
titlestringSession title
createdAtnumberUnix timestamp when the session was created
updatedAtnumberUnix timestamp when the session was last updated
acusConsumednumberACUs consumed by the session
tagsjsonTags associated with the session (array of strings)
pullRequestsjsonPull requests created during the session ([{pr_url, pr_state}])
structuredOutputjsonStructured output from the session
playbookIdstringAssociated playbook ID
isArchivedbooleanWhether the session is archived

On this page