Skip to content

MW0705/remcli

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Remcli

Remote CLI for Claude Code, Codex & Gemini CLI, Cursor

Open-source Remote CLI для удалённого управления AI агентами. Управляйте сессиями Claude Code, Cursor, Codex и Gemini CLI прямо с телефона — со сквозным шифрованием и без облачных серверов.

Проект вдохновлён Happy — open-source решением той же задачи, но реализует другой подход: вместо облачной архитектуры Remcli использует прямое P2P-соединение, где демон на вашей машине выступает сервером.

Телефон  ←── WebSocket (LAN / cloudflared) ──→  CLI Daemon  ←──→  Claude Code / Cursor / Codex / Gemini CLI

Как это работает

  1. На Mac (или Linux) запускается демон — локальный P2P-сервер
  2. В терминале появляется QR-код (это URL)
  3. Сканируете QR камерой телефона — открывается браузер
  4. Нажимаете Accept — подключено! Все данные зашифрованы end-to-end
  5. Видите и управляете AI-сессиями прямо с телефона

Демон работает на вашей машине. Никаких облачных серверов.


Быстрый старт

Требования

  • Node.js 20+
  • tmux (brew install tmux на macOS, apt install tmux на Linux)
  • Claude Code (npm install -g @anthropic-ai/claude-code) и/или Cursor CLI / Codex / Gemini CLI
  • macOS или Linux (Windows через WSL)

1. Установка и сборка

git clone https://github.com/spetrosyan94/remcli.git
cd remcli
npm run setup

2. Запуск

npm start

В терминале появится QR-код. Не закрывайте этот терминал — демон работает в нём.

4. Подключение с телефона

  1. Телефон должен быть в той же Wi-Fi сети
  2. Откройте камеру и наведите на QR-код
  3. Нажмите на ссылку — откроется браузер с веб-приложением
  4. Нажмите Accept — подключено!

Демон сам раздаёт веб-приложение. Никакой отдельный сервер не нужен.

5. Запуск AI-сессии

Можно запускать сессии с телефона (через веб-интерфейс) — терминал с tmux откроется автоматически. Каждая новая сессия появится как отдельное окно в tmux (переключение: Ctrl-B n / Ctrl-B p).

Или запустите сессию из терминала вручную:

npm run claude              # Claude Code
npm run cursor              # Cursor
npm run codex               # Codex
npm run gemini              # Gemini CLI

Сессия появится и в терминале Mac, и на телефоне. Управлять можно с обоих устройств.


Доступ через интернет

Для подключения за пределами локальной сети (через cloudflared-туннель):

npm run start:tunnel

Команды

Команда Описание
npm run setup Первоначальная установка (install + сборка)
npm run build:web Пересборка CLI + веб-приложения
npm start Запуск демона (LAN)
npm run start:tunnel Запуск демона через интернет (cloudflared)
npm run claude Сессия Claude Code (видна на Mac и телефоне)
npm run cursor Сессия Cursor
npm run codex Сессия Codex
npm run gemini Сессия Gemini CLI
npm run stop Остановить демон
npm run status Статус демона
npm run qr Показать QR-код повторно

CLI (после глобальной установки)

remcli                        # Сессия Claude Code
remcli cursor                 # Сессия Cursor
remcli codex                  # Сессия Codex
remcli gemini                 # Сессия Gemini CLI
remcli daemon start           # Запустить демон
remcli daemon start --tunnel  # Запустить с cloudflared
remcli daemon stop            # Остановить демон
remcli daemon status          # Статус
remcli daemon qr              # Показать QR повторно
remcli doctor                 # Диагностика
remcli doctor clean           # Убить зависшие процессы

Глобальная установка (опционально)

Чтобы команда remcli работала из любой директории:

npm run build
cd packages/remcli-cli && npm link

Структура проекта

packages/
  remcli-cli/     CLI + демон (публикуется как remcli в npm)
  remcli-app/     React Native + Expo — мобильное/веб приложение
docs/             Документация (протокол, шифрование, архитектура)

Разработка

Все команды для разработки имеют префикс dev::

Команда Описание
npm run dev:app Expo dev server (мобильное приложение, hot reload)
npm run dev:web Expo dev server (веб-версия, hot reload)
npm run dev:cli Сборка CLI
npm run dev:typecheck Проверка типов приложения

Пакетные команды

npm run dev --workspace=remcli             # CLI dev-режим (TSX, без сборки)
npm run test --workspace=remcli            # CLI тесты
npm run ios --workspace=remcli-app         # iOS симулятор
npm run android --workspace=remcli-app     # Android эмулятор

macOS десктоп (Tauri)

cd packages/remcli-app
npm run tauri:dev                          # Dev с hot reload
npm run tauri:build:production             # Продакшн сборка

Голосовой ввод (Whisper STT)

Remcli поддерживает голосовой ввод — нажмите кнопку микрофона в сессии, произнесите команду, и транскрибированный текст отправится AI-агенту.

  • Полностью локальная транскрипция — данные не покидают вашу машину
  • whisper.cpp через native N-API bindings (smart-whisper) — скорость ~1-3 сек на модели base
  • Модель ggml-base.bin (~142MB) скачивается автоматически при первом использовании в ~/.remcli/models/
  • ffmpeg необходим для конвертации аудио (brew install ffmpeg)

Голосовые сообщения отмечаются в чате иконкой 🎤 и фиолетовым пузырём.


Безопасность

  • QR-код — демон генерирует случайный 32-байтный секрет. Он передаётся только через QR-код в вашем терминале
  • Аутентификация — обе стороны вычисляют Bearer-токен через HMAC-SHA256(secret, "p2p-auth"). Секрет никогда не передаётся по сети
  • Шифрование — все данные сессий зашифрованы AES-256-GCM (ключи на сессию) или XSalsa20-Poly1305
  • Локальность — P2P-сервер работает на вашей машине. Данные не покидают локальную сеть (кроме режима --tunnel)

Подробнее: docs/encryption.md


Документация


Лицензия

MIT

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages

  • TypeScript 97.7%
  • JavaScript 2.0%
  • Shell 0.2%
  • Python 0.1%
  • CSS 0.0%
  • Rust 0.0%