From 136d1605c04ce930d2b310c5e8ff374b7ca58a62 Mon Sep 17 00:00:00 2001 From: Codex Date: Wed, 11 Mar 2026 19:31:16 +0000 Subject: [PATCH] docs: refresh Claude Codex and Gemini integration guides --- CODEX_SKILL_SETUP.md | 26 ++++++------- GEMINI_SKILL_SETUP.md | 86 +++++++++++++++++++++++++++++++++++++++++++ README.md | 45 ++++++++++++---------- 3 files changed, 124 insertions(+), 33 deletions(-) create mode 100644 GEMINI_SKILL_SETUP.md diff --git a/CODEX_SKILL_SETUP.md b/CODEX_SKILL_SETUP.md index 7a2ed94..79a0529 100644 --- a/CODEX_SKILL_SETUP.md +++ b/CODEX_SKILL_SETUP.md @@ -24,13 +24,13 @@ В репозитории исходники skill лежат здесь: -- [SKILL.md](/home/code/CODING/server-manager/.codex/skills/server-manager/SKILL.md) -- [command-matrix.md](/home/code/CODING/server-manager/.codex/skills/server-manager/references/command-matrix.md) -- [project.md](/home/code/CODING/server-manager/.codex/skills/server-manager/references/project.md) -- [server-manager-doctor.sh](/home/code/CODING/server-manager/.codex/skills/server-manager/scripts/server-manager-doctor.sh) -- [server-manager-doctor.cmd](/home/code/CODING/server-manager/.codex/skills/server-manager/scripts/server-manager-doctor.cmd) -- [codex-ssh-wrapper.sh](/home/code/CODING/server-manager/.codex/skills/server-manager/scripts/codex-ssh-wrapper.sh) -- [codex-ssh-wrapper.cmd](/home/code/CODING/server-manager/.codex/skills/server-manager/scripts/codex-ssh-wrapper.cmd) +- [SKILL.md](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/SKILL.md) +- [command-matrix.md](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/references/command-matrix.md) +- [project.md](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/references/project.md) +- [server-manager-doctor.sh](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/scripts/server-manager-doctor.sh) +- [server-manager-doctor.cmd](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/scripts/server-manager-doctor.cmd) +- [codex-ssh-wrapper.sh](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/scripts/codex-ssh-wrapper.sh) +- [codex-ssh-wrapper.cmd](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/scripts/codex-ssh-wrapper.cmd) ## Как это работает @@ -200,12 +200,12 @@ $HOME/.server-connections/codex-ssh --status Если меняется поведение интеграции, проверять нужно в таком порядке: -1. [tools/ssh.py](/home/code/CODING/server-manager/tools/ssh.py) -2. [tools/skill-ssh.md](/home/code/CODING/server-manager/tools/skill-ssh.md) -3. [core/claude_setup.py](/home/code/CODING/server-manager/core/claude_setup.py) -4. [build.py](/home/code/CODING/server-manager/build.py) -5. [SKILL.md](/home/code/CODING/server-manager/.codex/skills/server-manager/SKILL.md) -6. [command-matrix.md](/home/code/CODING/server-manager/.codex/skills/server-manager/references/command-matrix.md) +1. [tools/ssh.py](/home/code/Desktop/CODING/server-manager/tools/ssh.py) +2. [tools/skill-ssh.md](/home/code/Desktop/CODING/server-manager/tools/skill-ssh.md) +3. [core/claude_setup.py](/home/code/Desktop/CODING/server-manager/core/claude_setup.py) +4. [build.py](/home/code/Desktop/CODING/server-manager/build.py) +5. [SKILL.md](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/SKILL.md) +6. [command-matrix.md](/home/code/Desktop/CODING/server-manager/.codex/skills/server-manager/references/command-matrix.md) Если меняется семантика `ssh.py`, нужно обновлять и Claude skill, и Codex skill. diff --git a/GEMINI_SKILL_SETUP.md b/GEMINI_SKILL_SETUP.md new file mode 100644 index 0000000..9b078c3 --- /dev/null +++ b/GEMINI_SKILL_SETUP.md @@ -0,0 +1,86 @@ +# Развёртывание Gemini Skill Для ServerManager + +Этот документ описывает, как ServerManager интегрируется с Gemini CLI. + +## Что устанавливается + +Для каждого target home устанавливаются: + +1. Общий backend: + - `~/.server-connections/ssh.py` + - `~/.server-connections/encryption.py` +2. Gemini skill package: + - `~/.gemini/skills/server-manager/` +3. Безопасный runtime wrapper: + - `~/.server-connections/gemini-ssh` +4. Глобальный Gemini context: + - `~/.gemini/GEMINI.md` + +## Skill workflow + +Gemini должен начинать discovery так: + +```bash +$HOME/.server-connections/gemini-ssh --list +``` + +Далее: + +- определить `Type` +- выбрать команду строго по типу +- выполнить ровно одно действие +- не раскрывать IP, логины, пароли, порты + +## Рекомендуемая установка + +### Через GUI + +Вкладка `Setup` теперь умеет ставить: + +- Claude skill +- Codex skill +- Gemini skill +- shared backend и wrappers + +### Через Python installer + +```bash +python3 tools/install_ai_integrations.py +python3 tools/install_ai_integrations.py --target-home /root +python3 tools/install_ai_integrations.py --all-users +``` + +### Через shell installer (Linux/macOS) + +```bash +bash tools/install.sh --source-dir /path/to/server-manager +bash tools/install.sh --source-dir /path/to/server-manager --target-home /root +bash tools/install.sh --source-dir /path/to/server-manager --all-users +``` + +## Проверка + +### 1. Проверить skill discovery + +```bash +gemini skills list +``` + +### 2. Проверить wrapper + +```bash +$HOME/.server-connections/gemini-ssh --list +``` + +### 3. Проверить doctor script + +```bash +$HOME/.gemini/skills/server-manager/scripts/server-manager-gemini-doctor.sh +``` + +## Важные замечания + +- `servers.json` не размножается автоматически в `--all-users` режиме — это сделано намеренно, чтобы не копировать credentials между пользователями. +- Для root / service accounts используйте отдельную установку в нужный `target home`. +- Gemini skill source в репозитории лежит в `.gemini/skills/server-manager/`. +- При необходимости можно дополнительно ставить mirror в `~/.agents/skills/server-manager/`, но по умолчанию это отключено, чтобы Gemini не ругался на duplicate skill conflict. diff --git a/README.md b/README.md index e3ad22d..161b77a 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@

Desktop GUI for managing remote servers
- CustomTkinter + Paramiko | Dark Theme | Claude Code + Codex Integration + CustomTkinter + Paramiko | Dark Theme | Claude Code + Codex + Gemini Integration

@@ -22,7 +22,7 @@ - **SFTP Transfer** — upload/download files with progress bar - **SSH Keys** — generate ed25519, install on server, copy to clipboard - **Status Monitor** — background check every 60 sec (online/offline badges) -- **Claude Code + Codex Integration** — one-click setup, shared config with `/ssh` skill and Codex skill +- **Claude Code + Codex + Gemini Integration** — one-click setup, shared config with `/ssh`, Codex skill, and Gemini skill - **TOTP / 2FA** — Google Authenticator compatible codes with live countdown, one-click copy - **Encryption** — servers.json encrypted with Fernet (passwords never stored in plaintext) - **Backups** — manual and automatic backups with one-click restore @@ -62,10 +62,10 @@ Output goes to `releases/ServerManager-vX.Y.Z-{platform}.exe` 3. **Terminal** — select server → Terminal tab → type command → Run 4. **Files** — select server → Files tab → set paths → Upload/Download 5. **Keys** — Keys tab → Generate Key → Install on Server -6. **Setup** — Setup tab → "Install Everything" → Claude Code and Codex ready +6. **Setup** — Setup tab → "Install Everything" → Claude Code, Codex, and Gemini ready 7. Status badges update automatically (green = online, red = offline) -### Claude Code + Codex Integration +### Claude Code + Codex + Gemini Integration ServerManager, Claude Code, and Codex share the same config file: `~/.server-connections/servers.json` @@ -75,11 +75,11 @@ For Codex deployment and operational edge cases, see [`CODEX_SKILL_SETUP.md`](CO ``` ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py backend ↕ ↕ - Add/edit/delete Claude /ssh + Codex skill + Add/edit/delete Claude /ssh + Codex + Gemini skill servers in GUI execute commands ``` -- Add a server in GUI → Claude Code and Codex see it immediately +- Add a server in GUI → Claude Code, Codex, and Gemini see it immediately - Both agents use the same `ssh.py` + `servers.json` - Passwords **never** pass through the AI API @@ -95,14 +95,17 @@ ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py ba **Setup on a new machine:** 1. Install ServerManager (clone repo or download binary) 2. Open Setup tab → click "Install Everything" -3. Done. Claude Code now has `/ssh`, and Codex now has the `server-manager` skill with access to your servers +3. Done. Claude Code now has `/ssh`, Codex now has the `server-manager` skill, and Gemini now has the `server-manager` skill with access to your servers The Setup tab installs: - `ssh.py` → `~/.server-connections/` (SSH utility) - `encryption.py` → `~/.server-connections/` (encryption module for CLI) - `/ssh` skill → `~/.claude/commands/ssh.md` (Claude Code skill) - `server-manager` skill → `~/.codex/skills/server-manager/` (Codex skill package) +- `server-manager` skill → `~/.gemini/skills/server-manager/` (Gemini skill package) +- optional mirror → `~/.agents/skills/server-manager/` (off by default to avoid Gemini duplicate-skill warnings) - `codex-ssh` wrapper → `~/.server-connections/` (safe Codex entry point) +- `gemini-ssh` wrapper → `~/.server-connections/` (safe Gemini entry point) - SSH key (ed25519) — if not exists - Checks for duplicates — safe to run multiple times @@ -158,7 +161,7 @@ ServerManager/ │ ├── server_store.py # CRUD + encrypted JSON + observer + backups │ ├── encryption.py # Fernet encryption module │ ├── ssh_client.py # Paramiko SSH/SFTP wrapper -│ ├── claude_setup.py # Claude Code + Codex integration installer +│ ├── claude_setup.py # Claude Code + Codex + Gemini integration installer │ ├── status_checker.py # Background monitoring │ ├── totp.py # TOTP/2FA module (pyotp) │ ├── logger.py # Rotating file logger @@ -205,7 +208,7 @@ python main.py - **SFTP** — загрузка и скачивание файлов с прогресс-баром - **SSH-ключи** — генерация ed25519, установка на сервер, копирование - **Мониторинг** — фоновая проверка каждые 60 сек (бейджи online/offline) -- **Интеграция с Claude Code + Codex** — установка в один клик, общий конфиг со скиллом `/ssh` и Codex skill +- **Интеграция с Claude Code + Codex + Gemini** — установка в один клик, общий конфиг со скиллом `/ssh`, Codex skill и Gemini skill - **TOTP / 2FA** — коды Google Authenticator с обратным отсчётом, копирование в один клик - **Шифрование** — servers.json зашифрован Fernet (пароли не хранятся в открытом виде) - **Бэкапы** — ручные и автоматические с восстановлением в один клик @@ -245,22 +248,22 @@ python build.py 3. **Терминал** — выберите сервер → вкладка Terminal → введите команду → Run 4. **Файлы** — выберите сервер → вкладка Files → укажите пути → Upload/Download 5. **Ключи** — вкладка Keys → Generate Key → Install on Server -6. **Настройка** — вкладка Setup → "Install Everything" → Claude Code и Codex готовы +6. **Настройка** — вкладка Setup → "Install Everything" → Claude Code, Codex и Gemini готовы 7. Бейджи статуса обновляются автоматически (зелёный = online, красный = offline) -### Интеграция с Claude Code + Codex +### Интеграция с Claude Code + Codex + Gemini -ServerManager, Claude Code и Codex используют **один и тот же файл конфигурации**: `~/.server-connections/servers.json` +ServerManager, Claude Code, Codex и Gemini используют **один и тот же файл конфигурации**: `~/.server-connections/servers.json` **Как это работает:** ``` ServerManager GUI ←→ ~/.server-connections/servers.json ←→ backend ssh.py ↕ ↕ - Добавил/изменил Claude /ssh + Codex skill + Добавил/изменил Claude /ssh + Codex + Gemini skill серверы в GUI выполняют команды ``` -- Добавил сервер в GUI → Claude Code и Codex сразу видят его +- Добавил сервер в GUI → Claude Code, Codex и Gemini сразу видят его - Оба агента используют один `ssh.py` + `servers.json` - Пароли **никогда** не проходят через API нейронки @@ -276,14 +279,16 @@ ServerManager GUI ←→ ~/.server-connections/servers.json ←→ backend s **Настройка на новой машине:** 1. Установить ServerManager (клонировать репо или скачать бинарник) 2. Открыть вкладку Setup → нажать "Install Everything" -3. Готово. Claude Code получает скилл `/ssh`, а Codex получает skill `server-manager` и доступ к серверам +3. Готово. Claude Code получает скилл `/ssh`, а Codex и Gemini получают skill `server-manager` и доступ к серверам Вкладка Setup устанавливает: - `ssh.py` → `~/.server-connections/` (SSH-утилита) - `encryption.py` → `~/.server-connections/` (модуль шифрования для CLI) - скилл `/ssh` → `~/.claude/commands/ssh.md` (скилл Claude Code) - skill `server-manager` → `~/.codex/skills/server-manager/` (скилл Codex) +- skill `server-manager` → `~/.gemini/skills/server-manager/` (скилл Gemini) - wrapper `codex-ssh` → `~/.server-connections/` (безопасная точка входа для Codex) +- wrapper `gemini-ssh` → `~/.server-connections/` (безопасная точка входа для Gemini) - SSH-ключ (ed25519) — если ещё не создан - Проверяет дубли — безопасно запускать повторно @@ -342,7 +347,7 @@ pip install -r requirements.txt python main.py # → Вкладка Setup → Install Everything # → Добавить серверы через + Add -# → Готово! GUI, Claude Code и Codex работают с одним конфигом +# → Готово! GUI, Claude Code, Codex и Gemini работают с одним конфигом ``` --- @@ -356,7 +361,7 @@ python main.py - **SFTP传输** — 带进度条的文件上传/下载 - **SSH密钥** — 生成ed25519、安装到服务器、复制到剪贴板 - **状态监控** — 每60秒后台检查(在线/离线徽标) -- **Claude Code + Codex 集成** — 一键设置,与 `/ssh` 技能和 Codex skill 共享配置 +- **Claude Code + Codex + Gemini 集成** — 一键设置,与 `/ssh` 技能、Codex skill 和 Gemini skill 共享配置 - **TOTP / 2FA** — 兼容Google Authenticator的验证码,实时倒计时,一键复制 - **加密** — servers.json使用Fernet加密(密码不再以明文存储) - **备份** — 手动和自动备份,一键恢复 @@ -399,7 +404,7 @@ python build.py 6. **设置** — Setup标签 → "Install Everything" → Claude Code 和 Codex 就绪 7. 状态徽标自动更新(绿色 = 在线,红色 = 离线) -### Claude Code + Codex 集成 +### Claude Code + Codex + Gemini 集成 ServerManager、Claude Code 和 Codex 共享**同一个配置文件**:`~/.server-connections/servers.json` @@ -407,12 +412,12 @@ ServerManager、Claude Code 和 Codex 共享**同一个配置文件**:`~/.serv ``` ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py 后端 ↕ ↕ - 在GUI中添加/编辑 Claude /ssh + Codex skill + 在GUI中添加/编辑 Claude /ssh + Codex + Gemini skill 服务器 执行命令 ``` - 在GUI中添加服务器 → Claude Code 和 Codex 都会立即看到 -- 两个代理都使用同一个 `ssh.py` + `servers.json` +- Claude Code、Codex 和 Gemini 都使用同一个 `ssh.py` + `servers.json` - 密码**绝不**通过AI API传递 **在新机器上设置:**