89 lines
3.0 KiB
Markdown
89 lines
3.0 KiB
Markdown
---
|
|
name: server-manager
|
|
description: Use ServerManager's shared local server inventory and ssh.py utility to manage configured SSH, Telnet, SQL, Redis, S3/MinIO, Grafana, Prometheus, and WinRM endpoints by alias without exposing credentials. Use when the user asks to operate on servers managed by ServerManager or when editing ServerManager's Claude/Codex/Gemini integration.
|
|
metadata:
|
|
short-description: Safe remote ops through ServerManager aliases
|
|
---
|
|
|
|
# Server Manager
|
|
|
|
Use this skill for two cases:
|
|
|
|
1. The user wants work done on a server or service already configured in ServerManager.
|
|
2. The user wants to modify ServerManager's CLI/integration layer so Claude/Codex/Gemini can use it safely.
|
|
|
|
## First Step
|
|
|
|
Before any server operation:
|
|
|
|
```bash
|
|
$HOME/.server-connections/codex-ssh --list
|
|
```
|
|
|
|
Read the `Type` column before choosing commands. Do not guess the server type.
|
|
|
|
If the wrapper is missing, run the doctor script for your platform:
|
|
|
|
```bash
|
|
$HOME/.codex/skills/server-manager/scripts/server-manager-doctor.sh
|
|
```
|
|
|
|
On Windows, use:
|
|
|
|
```bat
|
|
%USERPROFILE%\.codex\skills\server-manager\scripts\server-manager-doctor.cmd
|
|
```
|
|
|
|
## Hard Rules
|
|
|
|
- Never read `~/.server-connections/servers.json`, `settings.json`, or `encryption.py` directly.
|
|
- Never use `--list-full`.
|
|
- Never use raw `ssh`, `scp`, `rsync`, `redis-cli`, `mysql`, `psql`, `mc`, `aws s3`, or similar tools unless the user explicitly asks to bypass ServerManager.
|
|
- Maximum one connection attempt per action. If it times out or fails, report it and stop.
|
|
- `ALIAS "command"` is only for `ssh` and `telnet`.
|
|
- `rdp` and `vnc` are GUI-only. Do not invent CLI access.
|
|
- For S3/MinIO, list buckets and paths before upload, delete, or URL generation.
|
|
- Ask for confirmation before destructive actions if the user's intent is not explicit.
|
|
|
|
## Preferred Entry Points
|
|
|
|
Use the shared wrapper:
|
|
|
|
```bash
|
|
$HOME/.server-connections/codex-ssh ...
|
|
```
|
|
|
|
It delegates to the installed `ssh.py` backend without requiring a `python` alias.
|
|
|
|
Safe discovery commands:
|
|
|
|
```bash
|
|
$HOME/.server-connections/codex-ssh --list
|
|
$HOME/.server-connections/codex-ssh --info ALIAS
|
|
$HOME/.server-connections/codex-ssh --status
|
|
```
|
|
|
|
Read [references/command-matrix.md](references/command-matrix.md) when you need the per-type command matrix.
|
|
|
|
## Server Operation Workflow
|
|
|
|
1. Run `--list`.
|
|
2. Match the alias using notes/type, not credentials.
|
|
3. Pick commands strictly from the server type.
|
|
4. Execute exactly one action.
|
|
5. Report the result without exposing IPs, logins, passwords, ports, or secrets.
|
|
|
|
## Working On ServerManager Itself
|
|
|
|
Read [references/project.md](references/project.md) before changing integration code.
|
|
|
|
Source-of-truth files:
|
|
|
|
- `tools/ssh.py`: local CLI used by Claude/Codex
|
|
- `tools/skill-ssh.md`: current Claude `/ssh` instructions
|
|
- `core/claude_setup.py`: Claude installer logic
|
|
- `build.py`: auto-deploys shared CLI files after build
|
|
- `README.md` and `CLAUDE.md`: project-level rules and architecture
|
|
|
|
If you change command semantics in `tools/ssh.py`, update the user-facing instructions alongside it.
|