Skip to main content

llm-devin

PyPI Changelog Tests License

Installation

Install this plugin in the same environment as LLM.

llm install llm-devin

Usage

Devin API

prerequisite: Devin API key and Organization ID (Devin Team Plan)
https://docs.devin.ai/api-reference/overview

Set up a service user and get your organization ID from Settings > Service users.

export LLM_DEVIN_KEY=your_api_key_here
export LLM_DEVIN_ORG_ID=your_org_id_here

llm -m devin "Hello, Devin"

Options for creating a new session (all optional; see the API reference):

llm -m devin \
  -o title "Release notes" \
  -o tags "release-notes,owner-repo" \
  -o repos "owner/repo" \
  -o max_acu_limit 5 \
  -o playbook_id playbook-xxxx \
  -o devin_mode fast \
  "Explain the changes in the latest release of https://github.com/owner/repo"

tags and repos are comma-separated. These options only apply when a new session is created; they are ignored when continuing a conversation.

Continue that Devin conversation with llm -c immediately after the previous command, or specify the model explicitly:

llm -m devin -c "Follow-up message"

Send a message to an existing Devin session by ID or URL, even when there is no local llm conversation history for it (e.g. a session started from the Devin web app or on another machine):

llm -m devin -o session devin-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "Follow-up message"
llm -m devin -o session https://app.devin.ai/sessions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx "Follow-up message"

Before sending, Continuing Devin session: <URL> is printed. If the value is not a valid session ID/URL, or the session does not exist or is not accessible with your API key, the command fails without creating a new session. The session is recorded in the llm log, so you can keep going with llm -c afterwards.

session cannot be combined with -c/--cid when that conversation already has history for a different (or unknown) Devin session, because the destination would be ambiguous; such a command is rejected. Use -c/--cid alone to continue the logged conversation, or -o session alone to target a specific session. If the logged conversation already belongs to the same session, the combination is allowed (this is what llm chat -m devin -o session ... does on every turn after the first).

Start an interactive chat session:

llm chat -m devin

Reading an existing Devin session

llm devin status and llm devin messages read an existing session without sending anything to Devin. They only call read-only Devin API endpoints (get session, list session messages): no session is created, no message is sent, and no suspended session is resumed. They need no local llm conversation history, so they work after the CLI exited or the connection dropped, and for sessions started from the Devin web app or another machine. Each command fetches once and exits; it does not poll until the session finishes.

Both commands accept a session ID or an app.devin.ai session URL (the same values as -o session), and read LLM_DEVIN_KEY (or llm keys set devin, or --key) and LLM_DEVIN_ORG_ID.

llm devin status devin-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
llm devin status https://app.devin.ai/sessions/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
llm devin status devin-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --json

status shows what the API returns for the session: status and status detail, title, tags, creation/update timestamps (raw values from the API), consumed ACUs, structured output, pull request URLs with their state, plus the latest message from Devin. Fields the API does not provide are omitted.

llm devin messages devin-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
llm devin messages devin-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --source devin --limit 3
llm devin messages devin-xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx --json

messages lists the session messages oldest first, following the API pagination to the end so that --limit N returns the N most recent ones. --source devin|user filters by sender.

With --json, only JSON is written to standard output, so it can be piped into jq or another script. Invalid session IDs/URLs, a missing key or organization ID, sessions that are not accessible, and API or network failures are reported on standard error and exit with a non-zero status.

DeepWiki

llm -m deepwiki -o repository ftnext/llm-devin "Summarize this repository"

Development

To set up this plugin locally, first checkout the code:

cd llm-devin

Then create a new virtual environment and install the dependencies and test dependencies:

uv sync --extra test

To run the tests:

uv run pytest

Release files for llm-devin 0.0.7

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for llm-devin 0.0.7
File Size Uploaded
llm_devin-0.0.7.tar.gz 24.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for llm-devin 0.0.7
File Interpreter ABI Platform
llm_devin-0.0.7-py3-none-any.whl Python 3 none any Details

Total release size: 40.9 kB

Release files / llm_devin-0.0.7.tar.gz

Download URL llm_devin-0.0.7.tar.gz
Size 24.7 kB
Tags Source
SHA-256 checksum
How to use checksums
7d228f750d0bec5077ab563cfdfe0690c5d2b824196142402b4cfdcd61518ccd
BLAKE2b-256 checksum
How to use checksums
e71338b56edfa74a0adab7fcee166fd254f22804670e5be7b5372564b5697d18
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release files / llm_devin-0.0.7-py3-none-any.whl

Download URL llm_devin-0.0.7-py3-none-any.whl
Size 16.2 kB
Tags Python 3
SHA-256 checksum
How to use checksums
42c4bb801435b0d272bf99f65fdfeb7e852b5e2d3906ae2c2b3009552a268a72
BLAKE2b-256 checksum
How to use checksums
8db460a4200f130c130bf569eedd536bd551d115e6bab0a0d647eb955c468081
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.13

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Sep 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.0.7 This release

2 release files

0.0.6

2 release files

0.0.5

2 release files

0.0.4

2 release files

0.0.3

2 release files

0.0.2

2 release files

0.0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page