Skip to content

rison1337/opencode-vkbot

Repository files navigation

opencode VK bot

VK bot bridge for opencode with ChatGPT/OpenAI account login, VK commands, web search, image input batching, and rendered Markdown/LaTeX answers as VK photos.

This repository is a public sanitized copy. Real tokens, accounts, sessions, logs, pid files, and local runtime data are intentionally not included.

English

Features

  • VK Callback API endpoint: /vk/callback.
  • Health check: /vk/health.
  • Direct JSON chat endpoint: /vk/chat.
  • ChatGPT/OpenAI OAuth and API-key account management through VK commands.
  • Markdown, tables, code blocks, LaTeX/KaTeX, physics formulas, and chemistry/mhchem rendering into VK photo cards.
  • Web search support without a noisy intermediate "searching" message.
  • Multiple VK photo messages are batched into one model request when they arrive together.

Requirements

  • Linux server or VPS.
  • Bun 1.3+.
  • VK group token with message permissions.
  • VK Callback API confirmation string and optional secret.
  • Public HTTPS URL for VK Callback API, for example VK_BOT_PUBLIC_URL=https://your-domain.example.
  • Playwright Chromium dependencies for answer-card rendering.

Setup

  1. Install dependencies:
bun install
bun --cwd packages/opencode playwright install chromium
  1. Copy the env example and fill your own values:
cp .env.example .env
  1. Start the server:
bun --cwd packages/opencode --conditions=browser src/index.ts serve --hostname 0.0.0.0 --port "${PORT:-29562}"
  1. Configure VK Callback API to point to:
https://your-domain.example/vk/callback
  1. In VK, use /login to add a ChatGPT/OpenAI account, then /account, /model, /intellect, /new, and /chats to manage the bot.

VPS helper scripts

The included scripts are examples for a /server/opencode-vk deployment layout:

  • run-opencode-vk.sh starts the opencode server.
  • spawn-opencode.py starts it in the background and writes opencode.pid.
  • start-all.sh starts the server plus Cloudflare tunnel helpers.
  • stop-all.sh stops local helper processes.

Adjust paths before using them on a different server.

Checks

bun --cwd packages/opencode prettier --check src/server/routes/instance/vk.ts
bun --cwd packages/opencode typecheck

Русский

Возможности

  • VK Callback API: /vk/callback.
  • Проверка состояния: /vk/health.
  • Прямой JSON endpoint для чата: /vk/chat.
  • Управление аккаунтами ChatGPT/OpenAI через VK: OAuth-вход и API key.
  • Рендер Markdown, таблиц, кода, LaTeX/KaTeX, физических формул и химии/mhchem в фото-карточки VK.
  • Web search без лишнего промежуточного сообщения "ищу данные".
  • Несколько фото, отправленных подряд, объединяются в один запрос к модели.

Требования

  • Linux-сервер или VPS.
  • Bun 1.3+.
  • Токен группы VK с правами на сообщения.
  • Confirmation string и, желательно, secret для VK Callback API.
  • Публичный HTTPS URL для VK Callback API, например VK_BOT_PUBLIC_URL=https://your-domain.example.
  • Playwright Chromium и системные зависимости для рендера карточек.

Запуск

  1. Установи зависимости:
bun install
bun --cwd packages/opencode playwright install chromium
  1. Скопируй пример окружения и заполни своими значениями:
cp .env.example .env
  1. Запусти сервер:
bun --cwd packages/opencode --conditions=browser src/index.ts serve --hostname 0.0.0.0 --port "${PORT:-29562}"
  1. В настройках VK Callback API укажи:
https://your-domain.example/vk/callback
  1. В VK напиши /login, войди в ChatGPT/OpenAI, затем используй /account, /model, /intellect, /new и /chats.

Скрипты для VPS

Скрипты рассчитаны на layout /server/opencode-vk:

  • run-opencode-vk.sh запускает сервер opencode.
  • spawn-opencode.py запускает сервер в фоне и пишет opencode.pid.
  • start-all.sh запускает сервер и Cloudflare tunnel helpers.
  • stop-all.sh останавливает локальные helper-процессы.

Если путь на сервере другой, поправь скрипты перед запуском.

Проверки

bun --cwd packages/opencode prettier --check src/server/routes/instance/vk.ts
bun --cwd packages/opencode typecheck

About

VK bot bridge for opencode with rendered Markdown and LaTeX answers

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages