[Feature]: Devin (local CLI / Desktop) host adapter for agent-hook-plugin — capture from sessions.db
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 35/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Tech stack
- javascript, node.js, sqlite
- Domain
- ai-infra-agents, tooling
Research direction
Read the linked DESIGN.md and compare the proposed adapter layout with the existing Kimi Code host adapter. The proposed implementation lives in a separate community repository, with capture reading Devin's local sessions.db and using incremental-turn-capture; this issue does not name files or tests in OpenViking to change. Done means the maintainers answer whether they welcome an upstream adapter and clarify the Node version and turn_id questions.
Written by the indexing model from the issue text.
Description
中文见下
Issue Origin
Observed or reproduced in a real environment
Problem Statement
agent-hook-plugin has host adapters for Cursor, Kimi Code, Trae and ZCode, but none for Devin (local CLI / Desktop).
Devin for Terminal can install the Claude Code plugin (#6880), but capture does not work there. The Claude plugin's auto-capture.mjs needs transcript_path in Stop stdin and skips without it. Devin's Stop stdin only has hook_event_name, session_id, prompt_id, stop_hook_active and last_assistant_message.
Devin keeps the full conversation in a local SQLite store, ~/.local/share/devin/cli/sessions.db (WAL mode), shared by the CLI and Desktop.
Observed on 2026-11-09 with Devin CLI 3000.11.205, Desktop bundled 3000.11.238 and store schema migration 20:
- Every message is already in the store when Stop fires, in both CLI and Desktop.
- Each message has a stable
message_id. Context rebuilds copy nodes but keep the samemessage_id. /compactstarts a new chain. The summary node points back to the old chain throughsummarized_from./exit, Ctrl-C,-pand quitting Desktop all fireSessionEnd.
Details: https://github.com/zyaiire/openviking-devin-memory/blob/main/DESIGN.md
Proposed Solution
We'll build a community adapter in https://github.com/zyaiire/openviking-devin-memory, laid out like Kimi Code's:
- A
.devin-pluginwith hooks,.mcp.jsonand skills. memory-plugin-sharedandscripts/vendored from a pinned commit, unmodified.- Our own
hosts/devin.mjsandhosts/devin-turns.mjs.
Capture reads only sessions.db. It opens the file read-only with node:sqlite so WAL content is included, and walks the main chain. It turns user input and assistant text into {role, content, turn_id}, using message_id as turn_id, and sends them through the shared incremental-turn-capture with addAgentMessages. It commits on SessionEnd and PreCompact, following the Kimi policy. Stop stdin is only the trigger. Local only, no Devin Cloud. We don't use ATIF or --export.
Once it works, we'd like to upstream it as hosts/devin if maintainers want it.
Questions for maintainers
- Is an upstream
hosts/devinwelcome, or should it stay a community plugin? - Capture needs a Node version with built-in
node:sqlite(tested on v26.11.1). Recall and MCP still run on Node 18. Is that split acceptable? - Does using a host message id (not a per-turn id) as
turn_idfitincremental-turn-captureas intended?
Alternatives Considered
- Installing the Claude Code plugin in Devin: recall works, capture is skipped (see above).
- Using Stop's
last_assistant_message: it has only the final reply and loses user input and earlier messages. - ATIF /
--export: a second file format, out of scope for v1.
Feature Area
Other
Use Case
Using Devin (CLI and Desktop) alongside other agents on the same machine, all sharing one OpenViking memory: profile at session start, recall on prompt submit, capture at session end, plus OpenViking MCP tools.
Contribution
- I am willing to contribute to implementing this feature
中文
agent-hook-plugin 现在没有 Devin(本机 CLI / Desktop)的宿主适配。在 Devin 里装 Claude Code 插件(#6880),召回可用,但抓对话会被跳过:Claude 插件需要 Stop 事件里有 transcript_path,而 Devin 的 Stop 事件里没有这个字段。
Devin 把完整对话存在本机的 ~/.local/share/devin/cli/sessions.db(SQLite,WAL 模式),CLI 和 Desktop 共用这个库。2026-11-09 实测确认了四点:Stop 触发时消息已经入库;每条消息有稳定的 message_id;压缩后摘要节点会通过 summarized_from 指回旧链;各种退出方式都会触发 SessionEnd。
我们先在 https://github.com/zyaiire/openviking-devin-memory 做社区版,结构仿照 Kimi Code。抓对话只读 sessions.db,用 message_id 当 turn_id,在 SessionEnd 和 PreCompact 时提交。只支持本机,不做 Cloud,不用 ATIF。跑通后,如果维护者愿意,再提 hosts/devin 的 PR。
想请维护者回答的问题:
- 是否欢迎上游收录
hosts/devin,还是保持社区插件? - 抓对话需要自带
node:sqlite的 Node 版本(实测 v26.11.1),召回和 MCP 仍可在 Node 18 运行。这样拆分能接受吗? - 用宿主的消息 id(而不是按轮的 id)当
turn_id,符合incremental-turn-capture的设计吗?
- Dominant language
- Python
- Stars
- 41.8k
- Forks
- 3.4k
- Avg merge
- 19h 29m
- Merged PRs (30d)
- 500
Getting set up
- Ships a Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from volcengine/OpenViking
-
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
volcengine/OpenViking#7485 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
volcengine/OpenViking#7210 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
volcengine/OpenViking#7205 · 1 comment ·
Maintainers usually reply within 1 day
-
[Bug]: Retrieval rerank fallback statistics stay zero after provider failurePossibly taken @97Three claimed this 8 days ago. Openbug kernel
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
volcengine/OpenViking#7014 ·
Maintainers usually reply within 1 day
-
[Bug]: memory.prefetch_search_topn is inert above 5 (call site omits limit), plus two docstrings state the wrong defaultsPossibly taken @peterzhang987723 claimed this 8 days ago. Openkernel
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
volcengine/OpenViking#6923 · 2 comments ·
Maintainers usually reply within 1 day
All issues in volcengine/OpenViking
Similar issues
-
Difficulty 2/5 1-3 hours Newbie friendliness 67/100
FinanceFlash/unvibecode#699 ·
Maintainers usually reply within 1 day
-
enhancement Website
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
OWASP/OWASP-Hunting#96 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
micropython/micropython#19942 ·
Maintainers usually reply within 1 day
-
A rebuild posts "not part of this build" success to the commit's failed `nix-build` gate and effectsPossibly taken @Padraic-O-Mhuiris claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
`epoch.Integer` raises a raw OverflowError for integers too large to convert to a floatPossibly taken @arindam77 claimed this today. Open
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
pydantic/pydantic-extra-types#479 ·
Maintainers usually reply within 1 day