Слово "plugin" в Devin Desktop опасно тем, что звучит как одно, а означает три разные вещи. От того, какое из трёх вы имеете в виду, зависит и что именно расширяется, и чью цепочку доверия вы подключаете. Пока тип не назван, разговор об установке идёт вслепую.
Наивная модель - "плагин это плагин": нашёл нужную возможность, поставил, пользуешься, как в любом редакторе. Из неё растёт привычка ставить не глядя и ожидание, что всё из мира VS Code встанет и заработает здесь так же. За этой привычкой стоит верное на первый взгляд обобщение: во всех редакторах плагины и правда устанавливаются похоже. Здесь оно ломается не на механике установки, а на том, что именно установленное получает в руки.
Ломается это сразу на трёх фронтах, потому что за словом стоят три независимые сущности. Editor extensions ставятся внутри Desktop и расширяют IDE; в stable 3.7.16 прежний раздел Plugins так и переименован в Extensions, а каталог основан на Open VSX, причём marketplace может настраиваться. Windsurf Plugins - это другое: они приносят возможности Cognition в JetBrains, VS Code и другие редакторы, то есть живут вне Desktop. Devin agent plugins - третье: это устанавливаемые пакеты, которые вносят в агента skills, rules, hooks, MCP-серверы и subagents, то есть расширяют не редактор, а самого исполнителя.
Отсюда первое следствие для extensions. Каталог на базе Open VSX - это не тот же индекс, что у проприетарного marketplace VS Code, поэтому не каждое проприетарное расширение VS Code здесь доступно или совместимо. Ожидание "поставлю тот же плагин, что и в VS Code" иногда сбывается, а иногда нет, и это не поломка, а другой источник каталога. То, что marketplace настраивается, добавляет ещё одну переменную: индекс, из которого вы ставите, может быть не тем, что по умолчанию. Понимать это стоит заранее, чтобы не читать несовместимость как поломку и не идти искать расширение на стороне, за пределами проверенного каталога.
Второе следствие важнее и общее для всех трёх типов: установка расширения или плагина - это исполнение чужого кода в вашей среде. Поэтому перед установкой проверяют издателя, запрашиваемые разрешения, источник обновлений и область действия. Это не бюрократия, а признание того, что установленный пакет получает доступ к тому же, к чему и вы, - к файлам, а в случае агентного плагина и к инструментам агента.
Agent plugin требует отдельного, более глубокого ревью, потому что он расширяет самого исполнителя. Прежде чем включить его, смотрят, что именно он приносит: какие rules становятся постоянными инструкциями, какие hooks встают вокруг вызовов инструментов, какие MCP-серверы получают grants, какие subagents появляются со своим контекстом. Editor extension в худшем случае мешает редактору; agent plugin меняет поведение и полномочия автономного агента, и цена ошибки здесь выше на порядок.
Цена смешения типов конкретна. Приняв agent plugin за обычное расширение, вы пропускаете ревью прав агента и отдаёте автономному исполнителю инструменты и правила, которых не читали. Приняв Windsurf Plugin за editor extension, вы ищете его не там и настраиваете не ту среду. Это три независимые цепочки доверия, и доверие, выданное в одной, не переносится на другие.
Проверять стоит по типу, названному полностью. Для editor extension - издатель, разрешения, источник обновлений и то, из какого marketplace он пришёл. Для Windsurf Plugin - какой внешний редактор он расширяет и на каких условиях. Для agent plugin - построчно, что он вносит в rules, hooks, MCP и subagents, и совпадает ли это с тем, что вы готовы дать агенту. Один вопрос под каждым типом: чью среду и чьи полномочия вы сейчас расширяете.
Инженерный вывод: "plugin" в Devin Desktop - не одна сущность, а три, и первый шаг любой установки - назвать тип полностью. От типа зависит, что расширяется - IDE, внешний редактор или агент, откуда берётся код - Open VSX, экосистема стороннего редактора или пакет агента, и какое ревью нужно - совместимость, условия или права агента. Держать эти три вопроса раздельными - и есть вся дисциплина: тип определяет и место, и источник, и глубину проверки, и ни один из ответов не переносится с одного типа на другой.
Типичные провалы растут из одной подмены. Ставят agent plugin как "просто расширение" и потом удивляются, что агент повёл себя иначе, - хотя это плагин переопределил его rules и hooks. Ищут возможность Cognition в каталоге Extensions, хотя она приходит Windsurf Plugin в другом редакторе. Считают, что раз в VS Code расширение есть, оно встанет и здесь, - и упираются в границу Open VSX. Признак один: тип plugin не назвали до установки. Назовите его первым - и цепочка доверия, которую вы подключаете, станет видимой заранее.