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
- На Mac (или Linux) запускается демон — локальный P2P-сервер
- В терминале появляется QR-код (это URL)
- Сканируете QR камерой телефона — открывается браузер
- Нажимаете Accept — подключено! Все данные зашифрованы end-to-end
- Видите и управляете 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)
git clone https://github.com/spetrosyan94/remcli.git
cd remcli
npm run setupnpm startВ терминале появится QR-код. Не закрывайте этот терминал — демон работает в нём.
- Телефон должен быть в той же Wi-Fi сети
- Откройте камеру и наведите на QR-код
- Нажмите на ссылку — откроется браузер с веб-приложением
- Нажмите Accept — подключено!
Демон сам раздаёт веб-приложение. Никакой отдельный сервер не нужен.
Можно запускать сессии с телефона (через веб-интерфейс) — терминал с 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-код повторно |
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 linkpackages/
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 эмуляторcd packages/remcli-app
npm run tauri:dev # Dev с hot reload
npm run tauri:build:production # Продакшн сборка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
- Протокол — WebSocket/HTTP API, формат сообщений, sequencing
- Шифрование — схемы шифрования, binary layouts, key wrapping
- Архитектура CLI — устройство демона, сессий, RPC
MIT