v1.9.40: add Codex integration — skill setup, deploy, GUI buttons

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
IPGO Developer
2026-03-07 07:27:22 +00:00
parent ddd6951610
commit e2bdffb41e
14 changed files with 1067 additions and 130 deletions

View File

@@ -2,7 +2,7 @@
<p align="center">
<strong>Desktop GUI for managing remote servers</strong><br>
CustomTkinter + Paramiko | Dark Theme | Claude Code Integration
CustomTkinter + Paramiko | Dark Theme | Claude Code + Codex Integration
</p>
<p align="center">
@@ -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 Integration** — one-click setup, shared config with `/ssh` skill
- **Claude Code + Codex Integration** — one-click setup, shared config with `/ssh` skill and Codex 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,23 +62,25 @@ 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 ready
6. **Setup** — Setup tab → "Install Everything" → Claude Code and Codex ready
7. Status badges update automatically (green = online, red = offline)
### Claude Code Integration
### Claude Code + Codex Integration
ServerManager and Claude Code share the same config file: `~/.server-connections/servers.json`
ServerManager, Claude Code, and Codex share the same config file: `~/.server-connections/servers.json`
For Codex deployment and operational edge cases, see [`CODEX_SKILL_SETUP.md`](CODEX_SKILL_SETUP.md).
**How it works:**
```
ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py (Claude Code)
ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py backend
↕ ↕
Add/edit/delete /ssh skill
servers in GUI executes commands
Add/edit/delete Claude /ssh + Codex skill
servers in GUI execute commands
```
- Add a server in GUI → Claude Code sees it immediately via `/ssh list`
- Both use the same `ssh.py` + `servers.json`
- Add a server in GUI → Claude Code and Codex see it immediately
- Both agents use the same `ssh.py` + `servers.json`
- Passwords **never** pass through the AI API
**New SSH Commands:**
@@ -93,12 +95,14 @@ ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py (C
**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` skill and access to your servers
3. Done. Claude Code now has `/ssh`, and Codex 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)
- `codex-ssh` wrapper → `~/.server-connections/` (safe Codex entry point)
- SSH key (ed25519) — if not exists
- Checks for duplicates — safe to run multiple times
@@ -140,7 +144,7 @@ App executes: sudo -S -p '' bash -c 'systemctl restart nginx'
- Passwords stored locally only, **never sent to any AI/API**
- SSH keys (ed25519) — recommended auth method
- sudo password sent via stdin (not visible in process list)
- When used with Claude Code: only alias + command are passed through the AI API, passwords stay in the local encrypted file
- When used with Claude Code or Codex: only alias + command are passed through the AI API, passwords stay in the local encrypted file
- Automatic pre-encryption backup on first migration
### Project Structure
@@ -154,7 +158,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 integration installer
│ ├── claude_setup.py # Claude Code + Codex integration installer
│ ├── status_checker.py # Background monitoring
│ ├── totp.py # TOTP/2FA module (pyotp)
│ ├── logger.py # Rotating file logger
@@ -166,7 +170,7 @@ ServerManager/
│ ├── tabs/ # Terminal, Files, Info, Keys, Setup
│ └── widgets/ # StatusBadge
├── tools/ # CLI tools (installed to ~/.server-connections/)
│ ├── ssh.py # SSH utility for Claude Code
│ ├── ssh.py # SSH utility for Claude Code / Codex
│ └── skill-ssh.md # /ssh skill template
├── config/ # Example configs
├── releases/ # Built executables
@@ -187,7 +191,7 @@ pip install -r requirements.txt
python main.py
# → Setup tab → Install Everything
# → Add your servers via + Add
# → Done! Both GUI and Claude Code are ready
# → Done! GUI, Claude Code, and Codex are ready
```
---
@@ -201,7 +205,7 @@ python main.py
- **SFTP** — загрузка и скачивание файлов с прогресс-баром
- **SSH-ключи** — генерация ed25519, установка на сервер, копирование
- **Мониторинг** — фоновая проверка каждые 60 сек (бейджи online/offline)
- **Интеграция с Claude Code** — установка в один клик, общий конфиг со скиллом `/ssh`
- **Интеграция с Claude Code + Codex** — установка в один клик, общий конфиг со скиллом `/ssh` и Codex skill
- **TOTP / 2FA** — коды Google Authenticator с обратным отсчётом, копирование в один клик
- **Шифрование** — servers.json зашифрован Fernet (пароли не хранятся в открытом виде)
- **Бэкапы** — ручные и автоматические с восстановлением в один клик
@@ -241,23 +245,23 @@ python build.py
3. **Терминал** — выберите сервер → вкладка Terminal → введите команду → Run
4. **Файлы** — выберите сервер → вкладка Files → укажите пути → Upload/Download
5. **Ключи** — вкладка Keys → Generate Key → Install on Server
6. **Настройка Claude** — вкладка Setup → "Install Everything" → Claude Code готов
6. **Настройка** — вкладка Setup → "Install Everything" → Claude Code и Codex готовы
7. Бейджи статуса обновляются автоматически (зелёный = online, красный = offline)
### Интеграция с Claude Code
### Интеграция с Claude Code + Codex
ServerManager и Claude Code используют **один и тот же файл конфигурации**: `~/.server-connections/servers.json`
ServerManager, Claude Code и Codex используют **один и тот же файл конфигурации**: `~/.server-connections/servers.json`
**Как это работает:**
```
ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py (Claude Code)
ServerManager GUI ←→ ~/.server-connections/servers.json ←→ backend ssh.py
↕ ↕
Добавил/изменил скилл /ssh
сервер в GUI выполняет команды
Добавил/изменил Claude /ssh + Codex skill
серверы в GUI выполняют команды
```
- Добавил сервер в GUI → Claude Code сразу видит его через `/ssh list`
- Оба используют один `ssh.py` + `servers.json`
- Добавил сервер в GUI → Claude Code и Codex сразу видят его
- Оба агента используют один `ssh.py` + `servers.json`
- Пароли **никогда** не проходят через API нейронки
**Новые SSH команды:**
@@ -272,12 +276,14 @@ ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py (C
**Настройка на новой машине:**
1. Установить ServerManager (клонировать репо или скачать бинарник)
2. Открыть вкладку Setup → нажать "Install Everything"
3. Готово. Claude Code теперь имеет скилл `/ssh` и доступ к серверам
3. Готово. Claude Code получает скилл `/ssh`, а Codex получает 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)
- wrapper `codex-ssh``~/.server-connections/` (безопасная точка входа для Codex)
- SSH-ключ (ed25519) — если ещё не создан
- Проверяет дубли — безопасно запускать повторно
@@ -319,7 +325,7 @@ ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py (C
- Пароли хранятся только локально, **никогда не передаются в AI/API**
- SSH-ключи (ed25519) — рекомендуемый метод аутентификации
- sudo-пароль передаётся через stdin (не виден в списке процессов)
- При использовании с Claude Code: через API нейронки проходят только alias + команда, пароли остаются в зашифрованном локальном файле
- При использовании с Claude Code или Codex: через API нейронки проходят только alias + команда, пароли остаются в зашифрованном локальном файле
- Автоматический пред-шифровальный бэкап при первой миграции
### Развёртывание на новой машине
@@ -336,7 +342,7 @@ pip install -r requirements.txt
python main.py
# → Вкладка Setup → Install Everything
# → Добавить серверы через + Add
# → Готово! GUI и Claude Code работают с одним конфигом
# → Готово! GUI, Claude Code и Codex работают с одним конфигом
```
---
@@ -350,7 +356,7 @@ python main.py
- **SFTP传输** — 带进度条的文件上传/下载
- **SSH密钥** — 生成ed25519、安装到服务器、复制到剪贴板
- **状态监控** — 每60秒后台检查在线/离线徽标)
- **Claude Code集成** — 一键设置,与`/ssh`技能共享配置
- **Claude Code + Codex 集成** — 一键设置,与 `/ssh` 技能和 Codex skill 共享配置
- **TOTP / 2FA** — 兼容Google Authenticator的验证码实时倒计时一键复制
- **加密** — servers.json使用Fernet加密密码不再以明文存储
- **备份** — 手动和自动备份,一键恢复
@@ -390,34 +396,36 @@ python build.py
3. **终端** — 选择服务器 → Terminal标签 → 输入命令 → Run
4. **文件** — 选择服务器 → Files标签 → 设置路径 → Upload/Download
5. **密钥** — Keys标签 → Generate Key → Install on Server
6. **设置Claude** — Setup标签 → "Install Everything" → Claude Code就绪
6. **设置** — Setup标签 → "Install Everything" → Claude Code 和 Codex 就绪
7. 状态徽标自动更新(绿色 = 在线,红色 = 离线)
### Claude Code集成
### Claude Code + Codex 集成
ServerManagerClaude Code共享**同一个配置文件**`~/.server-connections/servers.json`
ServerManagerClaude Code 和 Codex 共享**同一个配置文件**`~/.server-connections/servers.json`
**工作原理:**
```
ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py (Claude Code)
ServerManager GUI ←→ ~/.server-connections/servers.json ←→ ssh.py 后端
↕ ↕
在GUI中添加/编辑 /ssh技能
在GUI中添加/编辑 Claude /ssh + Codex skill
服务器 执行命令
```
- 在GUI中添加服务器 → Claude Code立即通过 `/ssh list` 看到
-者使用相同的 `ssh.py` + `servers.json`
- 在GUI中添加服务器 → Claude Code 和 Codex 都会立即看到
-个代理都使用同一个 `ssh.py` + `servers.json`
- 密码**绝不**通过AI API传递
**在新机器上设置:**
1. 安装ServerManager克隆仓库或下载二进制文件
2. 打开Setup标签 → 点击 "Install Everything"
3. 完成。Claude Code现在拥有 `/ssh` 技能并可访问您的服务器
3. 完成。Claude Code 现在拥有 `/ssh` 技能Codex 现在拥有 `server-manager` 技能并可访问您的服务器
Setup标签安装
- `ssh.py``~/.server-connections/`SSH工具
- `encryption.py``~/.server-connections/`CLI加密模块
- `/ssh` 技能 → `~/.claude/commands/ssh.md`Claude Code技能
- `server-manager` 技能 → `~/.codex/skills/server-manager/`Codex技能包
- `codex-ssh` 包装器 → `~/.server-connections/`Codex安全入口
- SSH密钥ed25519— 如果不存在
- 检查重复 — 可安全重复运行
@@ -459,7 +467,7 @@ Setup标签安装
- 密码仅存储在本地,**绝不发送到任何AI/API**
- SSH密钥ed25519— 推荐的认证方式
- sudo密码通过stdin传递在进程列表中不可见
- 与Claude Code配合使用时只有别名和命令通过AI API传递密码保留在本地加密文件中
- Claude Code 或 Codex 配合使用时:只有别名和命令通过 AI API 传递,密码保留在本地加密文件中
- 首次迁移时自动创建加密前备份
### 在新机器上部署
@@ -476,7 +484,7 @@ pip install -r requirements.txt
python main.py
# → Setup标签 → Install Everything
# → 通过 + Add 添加服务器
# → 完成GUIClaude Code使用同一个配置
# → 完成GUIClaude Code 和 Codex 使用同一个配置
```
---