Opencode - плагины для подключения по ssh

Материал из Wiki - Iphoster - the best ever hosting and support. 2005 - 2026
Перейти к:навигация, поиск

Opencode - плагины для подключения по ssh

SSH-плагины для opencode

Существует несколько вариантов для подключения к удалённым машинам по SSH:

1. opencode-ssh-session

Наиболее простой плагин для persistent SSH-сессий.

Установка: bun install -g opencode-ssh-session или в opencode.json: {"plugin": ["opencode-ssh-session"]}

Инструменты:

  • ssh_connect — подключение к хосту (например, user@server)
  • ssh — выполнение команды на удалённой машине
  • ssh_disconnect — закрытие сессии
  • ssh_upload — загрузка файла на сервер
  • ssh_download — скачивание файла с сервера

Сохраняет shell state (pwd, env) между командами.

Ссылка: https://github.com/PedroKlein/opencode-ssh-session

2. bifrost

Мульти-серверный плагин на базе ssh2 (чистый JavaScript, без внешних SSH-процессов).

Установка: bun install -g @well0nez/bifrost

Конфигурация: файл ~/.config/opencode/bifrost.json

{
  "servers": {
    "production": {
      "host": "192.168.1.100",
      "user": "root",
      "keyPath": "~/.ssh/prod_key"
    },
    "staging": {
      "host": "10.0.0.5",
      "user": "deploy"
    }
  },
  "default": "production"
}

Инструменты:

  • bifrost_connect — подключение к серверу
  • bifrost_exec — выполнение команды
  • bifrost_status — статус подключений
  • bifrost_disconnect — отключение
  • bifrost_upload / bifrost_download — передача файлов

Автоматически определяет, к какому серверу обращаться, по ключевым словам (server, production, deploy, remote).

Ссылка: https://github.com/well0nez/bifrost

3. opencode-rexd-target

Перенаправляет вызовы инструментов на удалённую машину через REXD (Remote Execution Daemon).

Требования: на удалённом сервере должен быть установлен и запущен rexd.

Конфигурация: файл ~/.config/rexd/targets.json

{
  "version": 1,
  "targets": {
    "prod": {
      "transport": "ssh",
      "host": "example.com",
      "user": "deploy",
      "workspaceRoots": ["/srv/app"],
      "defaultCwd": "/srv/app"
    }
  }
}

Команды: /target list, /target use <name>, /target status, /target clear

Ссылка: https://github.com/samiralibabic/opencode-rexd-target

4. Самодельный SSH-tool

Можно добавить простой SSH-инструмент через Bun shell без установки плагинов.

Файл ~/.config/opencode/tools/remote.ts:

import { tool } from "@opencode-ai/plugin";

export default tool({
  name: "remote",
  description: "Execute a command on a remote server via SSH.",
  args: {
    target: tool.schema.string().describe("Hostname alias (e.g. 'prod-db')"),
    command: tool.schema.string().describe("Command to run"),
  },
  async execute({ target, command }, context) {
    const result = await $`ssh -o BatchMode=yes ${target} ${command}`;
    return result.stdout;
  },
});
Плагин Тип подключения Мульти-сервер Передача файлов Сохранение state Ссылка
opencode-ssh-session SSH-процесс (один) Нет Да (upload/download) Да https://github.com/PedroKlein/opencode-ssh-session
bifrost ssh2 (JS-библиотека) Да Да (upload/download) Да https://github.com/well0nez/bifrost
opencode-rexd-target REXD-демон через SSH Да Через REXD Да https://github.com/samiralibabic/opencode-rexd-target
Самодельный tool SSH-процесс Зависит от реализации Нет Нет
×
Реклама
ИКС