@kentcdodds: Playing with @DevinAI so naturally I had it create a Devin package on @kodykoala https://heykody.app/@kentcdodds/devin…
Summary
Kent C. Dodds shares a Kody community package that provides an SDK for the Devin v3 API, enabling automated management of Devin sessions, knowledge, playbooks, and schedules.
View Cached Full Text
Cached at: 08/12/26, 08:46 AM
Playing with @DevinAI so naturally I had it create a Devin package on @kodykoala https://heykody.app/@kentcdodds/devin…
@kentcdodds/devin — Kody community package
Source: https://heykody.app/@kentcdodds/devin ← Community packages
Start, monitor, and manage Devin sessions, knowledge, playbooks, and schedules via the Devin v3 API
- devin
- api
- sdk
- agents
- automation
LicenseMITPublishedAugust 11, 2026Pinned commit5e90f25RatingNo ratings yetForks0Stars0Adaptation effort—
One-click install
Install forks this package into your account and publishes it right away when it passes the standard package checks. This listing has not been reviewed by an admin.
Log into install this package.
Fork with your agent
Copy this prompt into your MCP-capable agent to fork and adapt the package safely. Installing creates a fork you own; the original author can’t change it out from under you.
Use Kody to fork the community package “@kentcdodds/devin” (listing id: 6e9456df-9b2d-4d2e-9ee0-49710fd27a36). Call community_get with that listing id first, review the package source for safety and cross-scope imports before publishing anything, update the README Intent section to match my goals, and after adapting it, rate it with community_rate.
README
@kentcdodds/devin
Intent
SDK for theDevin v3 APIso Kody can start, monitor, and message Devin sessions and manage the org’s knowledge notes, playbooks, schedules, and PR reviews. Transport is one compact authenticated helper againsthttps://api\.devin\.ai(Bearer\{\{secret:devinServiceUserKey\}\}), scaffolded from Devin’s officialv3\-openapi\.yaml.
Deliberately v3 only: legacyapk\_v1/v2 keys return 403 against/v3/\*. Fork it if you want your own Devin automation surface — seeIf you forked this package.
When To Use
- Start a Devin session and follow it (status, messages, PRs, structured output).
- Audit recent org sessions, their ACU burn, tags, and insights.
- Manage knowledge notes, playbooks, and scheduled sessions.
- Trigger or check a Devin PR review.
- Call any unwrapped Devin endpoint via
devinRequest.
Required setup
- Secret
devinServiceUserKey(user scope, hostapi\.devin\.ai): a v3service userAPI key (cog\_…) from Devin Settings → Devin API. Provision a service user with organization scope; grantImpersonateOrgSessionsif sessions should be attributed to a human user viacreateAsUserId. - Value
devinOrgId: theorg\-…id every/v3/organizations/\.\.\.path is scoped to. Read once per runtime; every helper also takes anorgIdoverride.
Endpoint access is RBAC-gated on the service user’s role, so a 403 usually means a missing permission rather than a bad key.whoami\(\)is the cheapest check.
If you forked this package
Nothing here is account-specific — the secret name, the value name, and the org id are all resolved at runtime:
- Save a
devinServiceUserKeysecret (user scope) withapi\.devin\.aiapproved as an allowed host. - Save a
devinOrgIdvalue with yourorg\-…id, or passorgIdto every helper if you work across several orgs. - Adopt the fork (or approve its secret access), then smoke-test with the read-only
\./selfexport — it proves credential, host, and RBAC in one call.
Rename the secret by editingDEVIN\_SECRET\_NAMEand the placeholder insrc/lib/client\.ts; both live in that one file.
Exports
ExportDescription\.Package overview and export map\./self``whoami— identity behind the saved credential\./sessions``listSessions,listAllSessions,createSession,getSession,getSessionStatus,listMessages,sendMessage,terminateSession,archiveSession,unarchiveSession,getSessionTags,setSessionTags,listSessionAttachments``\./knowledge``listNotes,getNote,createNote,updateNote,deleteNote,listFolders``\./playbooks``listPlaybooks,getPlaybook,createPlaybook,updatePlaybook,deletePlaybook``\./schedules``listSchedules,getSchedule,createSchedule,updateSchedule,deleteSchedule``\./reviews``getPrReview(nullwhen unreviewed),createPrReview``\./usage``dailyConsumption(+ per user / service user / session),usageMetrics,sessionMetrics,prMetrics,sessionInsights,generateSessionInsights``\./request``devinRequest— raw API escape hatch; also re-exportsDevinApiErrorDefault exports:\./self→whoami;\./sessions→listSessions;\./knowledge→listNotes;\./playbooks→listPlaybooks;\./schedules→listSchedules;\./reviews→getPrReview;\./usage→dailyConsumption;\./request→devinRequest.
Cost and safety
createSession,createPrReview, andgenerateSessionInsightsconsume ACUs.terminateSessiondestroys a session’s VM, anddeleteNote/deletePlaybook/deleteScheduleare irreversible — confirm intent (and the id) first. PreferupdateSchedule\(\{ enabled: false \}\)over deleting a schedule.
Example
import { createSession, getSessionStatus, sendMessage } from 'kody:@kentcdodds/devin/sessions'
const session = await createSession({
prompt: 'Fix the flaky auth test in kentcdodds/kody and open a PR',
repos: ['kentcdodds/kody'],
tags: ['kody'],
maxAcuLimit: 10,
})
await sendMessage({ devinId: session.session_id, message: 'Also update the changelog' })
const status = await getSessionStatus({ devinId: session.session_id })
Unwrapped endpoints (enterprise admin, code scans, repo indexing, snapshot blueprints, org secrets) via\./request:
import { devinRequest } from 'kody:@kentcdodds/devin/request'
const { status, body } = await devinRequest({
path: '/v3beta1/organizations/{org_id}/repositories',
})
Notes
- Pagination is cursor based: pass
after: page\.end\_cursorwhilepage\.has\_next\_page, or letlistAllSessionswalk up tomaxPagesfor you. - Devin ignores the spec’s nested
qsobject for session filters; list filters are sent as flat, repeated query params (?tags=a&tags=b). - Schedules are the exception to cursor pagination — they use
limit/offset. - Timestamps are Unixseconds, and
scheduledAtis an ISO date-time string. getPrReviewreturnsnullfor an unreviewed PR instead of throwing on 404.- Helpers throw
DevinApiError(withstatusandbody) on non-2xx responses;devinRequestreturns\{ status, body \}unwrapped instead.
Devin is a trademark of Cognition AI;community\-icon\.svguses their mark to identify the API this package wraps. This package is unofficial.
Stars
0 stars
Log into star this package.
Report this listingLog into report this listing.
Similar Articles
@kentcdodds: One nice thing about the way @kodykoala works is that it doesn't come with built-in integrations hosted by Kody. Instea…
Kody Koala is a developer tool that helps users create their own integrations rather than relying on hosted integrations, giving them complete control.
@kentcdodds: The questions I keep getting about @kodykoala: https://heykody.dev/guides/what-is-kody…
Kody is a Fair Source personal assistant platform that connects your existing AI agent to persistent memory, credentials, scheduled jobs, and reusable code, turning one-off agent work into permanent automations.
@kentcdodds: I'm moving from heykody[.]dev to http://heykody.app because Kody is really for more than just devs.
Kent C. Dodds announces Kody is moving to heykody.app, positioning it as an AI agent that integrates with existing assistants like Cursor and Claude Code to securely access services and run automated jobs such as Slack catch-up, week planning, and GitHub triage.
@kentcdodds: http://heykody.dev got a face lift! Take a look! And I'm gonna need some more people willing to record their experience…
Kent C. Dodds announces a redesign of Kody, an open-source tool that gives AI agents secure access to real accounts and services, and asks for volunteers to help improve onboarding.
@Chris_Wozniczek: Not sure if anyone of you checked out @DevinAI from @cognition but here I found a quick guide on some of the features. …
A quick guide highlights features of Devin AI, an autonomous AI software engineer from Cognition, including integrations with Slack, terminal, and project management tools.