Devin
Devin is a hosted AI software engineering agent. Beeps creates a Devin session when an alert fires, sends a prompt built from the alert, polls Devin until the session finishes, and surfaces the PR URL on the alert responder.
Prerequisites
Section titled “Prerequisites”- A Devin account with API access.
- A Devin API key (
apk_*prefix).
Provider-side setup
Section titled “Provider-side setup”- Sign in to Devin and visit the API settings page.
- Generate an API key. It will look like
apk_.... - Save the key; you’ll paste it into beeps as
apiKey.
Beeps-side setup
Section titled “Beeps-side setup”Create the integration:
const devinIntegration = await client.integration.create({ name: "Devin Production", provider: "devin", apiKey: process.env.DEVIN_API_KEY,});Reference it from a relay rule:
await client.relay.rules.create(relayId, { name: "Devin Auto-Triage", ruleType: "agent", config: { agentType: "devin", integrationId: devinIntegration.id, pollInterval: 30000, maxPollAttempts: 120, },});Configuration reference
Section titled “Configuration reference”Integration metadata
Section titled “Integration metadata”Devin doesn’t use metadata. Only apiKey is required.
Rule config
Section titled “Rule config”| Field | Type | Required | Default | Description |
|---|---|---|---|---|
agentType | "devin" | yes | — | Selects the Devin agent |
integrationId | string | yes | — | The Devin integration’s id |
endpoint | string (URL) | no | https://api.devin.ai/v3/organizations/sessions | Override the Devin API endpoint (rarely needed) |
The shared polling and storm-control fields are documented in Relay Rules.
Troubleshooting
Section titled “Troubleshooting”Session created but stuck “waiting for user”. Devin sometimes pauses for human input or approval mid-session. Beeps marks the job completed with a blocked result so the alert isn’t left dangling. Open the Devin session URL (logged when beeps creates the session) to unblock it.