feat(devin): add Devin CLI as a harness

Offen
#81 0 Kommentare 0 Reaktionen 1 zugewiesene Person Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

@ryzizub arbeitet bereits daran.

Seit 15.10.2026.

  • #95 von @ryzizub — offen

Bewertung

Dieses Issue wurde noch nicht bewertet.

Beschreibung

feature spike

Devin CLI is a local harness we do not configure yet

Cognition's Devin CLI (devin) is a local terminal agent with user-level skills, MCP servers, hooks, rules and subagents, so the VGV plugins can reach it the way they reach Copilot and Codex.

What the docs say

Everything below comes from docs.devin.ai. Nothing has been run against the binary yet.

  • Binary devin, installed with curl -fsSL https://cli.devin.ai/install.sh | bash or brew install --cask devin-cli. devin version "is equivalent to devin --version" (commands).
  • User-level config lives in ~/.config/devin/, and "On Windows, this path is %APPDATA%\devin\ instead" (extensibility).
  • Skills: ~/.config/devin/skills/<name>/SKILL.md, the same SKILL.md format, frontmatter name, description, argument-hint, allowed-tools, triggers, model (creating skills).
  • MCP: ~/.config/devin/mcp_config.json, standard mcpServers shape. Before v3000.3 servers lived under the mcpServers key of config.json and are migrated on startup (MCP configuration).
  • Hooks: Claude Code's format, user-level under the "hooks" key of ~/.config/devin/config.json, with decision, reason, hookSpecificOutput and exit code 2 to block (hooks).
  • Rules: ~/.config/devin/AGENTS.md applies to every project (rules).
  • Subagents: ~/.config/devin/agents/<name>.md, or <name>/AGENT.md (subagents).
Two calls to make first, which is why this is a spike

1. Devin already reads Claude Code's config. With read_config_from.claude on by default it imports rules from ~/.claude/CLAUDE.md, MCP servers from ~/.claude.json, ~/.claude/settings.json and ~/.claude/settings.local.json, and hooks from those same files (configuration import). Someone who installed for Claude too would get our MCP servers and hooks twice. Skills are the real gap: Claude skills are imported from .claude/skills/** in the project only, never from ~/.claude/skills. Decide what we write for Devin and what we leave to the import.

2. Devin installs Claude plugins natively. With no .devin-plugin/plugin.json, devin plugins install <owner/repo> falls back to .claude-plugin/plugin.json and honors the root .mcp.json and ${CLAUDE_PLUGIN_ROOT} (plugins). Same question we answered for Codex: is a translator the right shape, or do we shell out to devin plugins install? Note the docs call plugin hooks "best effort and fail open".

Scope
  • Install the CLI, confirm the version banner, and check every path above against the binary before any of it is written down as fact.
  • Add devin to Harness and follow the four steps in its doc comment: enum entry, DevinTranslator registered in harnessTranslators, brick var plus a __brick__ folder, regenerate the bundle.
  • Translate skills, MCP servers, agents and rules, and override hooks(), since the Claude Code hook format carries over nearly verbatim.
  • %APPDATA%\devin does not fit Harness._config, which is home-relative with / separators. Decide whether Devin ships macOS and Linux only for now.
Acceptance criteria
  • vgv_ai install --harness devin writes the plugins' skills, MCP servers and agents where Devin reads them, without clobbering what the user already has.
  • A translated skill appears in a real devin session and the MCP servers connect.
  • The plugins' hooks run on a Dart edit, proven with /hooks and a captured payload, or the hooks surface is left out with a note saying why.
  • vgv_ai doctor and vgv_ai uninstall cover Devin.
  • No duplicated MCP server or hook when Claude Code is installed on the same machine.
Verified on

Nothing yet. Docs read 2026-10-15, the CLI is not installed on the machine this was written from.

Vorherrschende Sprache
Dart
Sterne
3
Forks
0
Ø Merge
2 T. 4 Std.
Gemergte PRs (30 T.)
40

Entwicklungsumgebung

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus VeryGoodOpenSource/vgv_ai_cli

Alle Issues in VeryGoodOpenSource/vgv_ai_cli

Ähnliche Issues

Weitere Issues zu Dart

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.