Servonaut
Your servers. Your terminal. Your AI agent. One TUI.
Manage AWS, Hetzner, OVH, and custom servers from one terminal β with a built-in AI assistant and MCP server.

Quick Install
Linux / macOS:
curl -sSL https://raw.githubusercontent.com/zb-ss/servonaut/master/install.sh | bash
Windows (PowerShell):
irm https://raw.githubusercontent.com/zb-ss/servonaut/master/install.ps1 | iex
Or install directly via pipx / pip:
Manual install from source:
git clone https://github.com/zb-ss/servonaut.git
cd servonaut
pipx install .
Set up with an AI agent
Prefer to let an AI agent do the whole thing? Paste this prompt into Claude Code, Cursor, or any coding assistant β it installs Servonaut, generates the config, and walks you through AWS / SSH / bastion / custom-server / AI-provider setup plus the MCP server.
Copy-paste setup prompt
Install and configure Servonaut, a TUI for managing servers (AWS EC2, OVHcloud, Hetzner Cloud, and custom SSH servers).
1. Install with all optional features: `pipx install 'servonaut[all]'`
(bundles the MCP server + OVH/Hetzner SDKs + keyring; AI log analysis needs no extra. Use plain `pipx install servonaut` for a minimal install.)
2. Run `servonaut` once to generate ~/.servonaut/config.json
3. (Optional) If I have a Servonaut account, run `servonaut login` to unlock the hosted features: Servonaut AI (chat with my fleet, no local API key), config sync across machines, Memory Sync, and proactive monitoring (Findings). Servonaut works fully offline against my own credentials if I skip this.
4. Read ~/.servonaut/config.json and help me configure:
- AWS regions to scan (default scans all, set `regions` array to limit)
- Default SSH username (`default_username`, default "ec2-user")
- Cache TTL (`cache_ttl_seconds`, default 3600)
- Terminal emulator if not auto-detected (`terminal_emulator`)
5. If I use bastion/jump hosts, help me set up `connection_profiles` and `connection_rules`
6. If I have non-AWS servers, help me add them to `custom_servers`
7. If I use OVHcloud or Hetzner Cloud, help me add the API credentials so those instances merge into the fleet
8. For AI log analysis or chat with my own model (instead of Servonaut AI), help me configure `ai_provider` (openai/anthropic/gemini/ollama)
- Each provider has its own key field (`openai_api_key`, `anthropic_api_key`, `gemini_api_key`, `ollama_api_key`); local Ollama needs none
- Key fields support `$ENV_VAR` and `file:~/.secrets/key` syntax so secrets stay out of the config file
9. Install the MCP server into my coding agent: `servonaut --mcp-install claude` (or `cursor`, `windsurf`, `opencode`, `vscode`, `codex`, `agy`, `gemini`, `all`)
10. (Optional) To let AI agents/teammates reach this machine over the relay β and to run proactive Findings scans β start it with `servonaut connect`
After setup, launch with `servonaut` and walk me through the key features, including the Findings inbox if I enabled the hosted features.
Screenshots
πΈ More screenshots β CloudWatch Top IPs, IP banning, AI chat, sidebar, instance list
Instance list β AWS, Hetzner, OVH, and custom servers merged into one view
Sidebar reveals Fleet Memory, Memory Sync, Secrets, Settings, and per-provider management for OVH and Hetzner
Built-in AI assistant with MCP server integration β chat with local providers or hosted Servonaut AI
CloudWatch log browsing with Top IPs analysis, geolocation, and abuse scoring
Ban/unban IPs via WAF, Security Groups, or NACLs with audit trail
All screenshots and the launch video were recorded with --demo active, which replaces real IPs, ARNs, paths, and secrets with safe fake equivalents. See docs/demo-mode.md for what is redacted and how to use it.
Features
Badges: Solo+ = included with paid Solo/Teams plans.
Core & connectivity
- Interactive TUI β mouse + keyboard, powered by Textual.
- Multi-provider fleet β AWS EC2, OVHcloud (dedicated / VPS / Public Cloud), Hetzner Cloud, and custom servers from any provider (DigitalOcean, on-prem, β¦) β listed and searchable in one view across all regions.
- Per-instance dashboard β click a server for a Server Actions view: a memory snapshot (OS, disk, web stack, databases, runtimes, containers) plus an opt-in live resource monitor (
L β CPU / RAM / load / disk / uptime, polled only while open).
- SSH & SCP β one-key SSH in a new terminal window (auto-detected emulator); upload/download files and directories.
- Run remote commands β overlay panel with real-time streaming output, history, and saved favorites.
- Remote file browser β interactive file-tree navigation, inline in the dashboard or full-screen.
- Real-time log viewer β stream logs via
tail -f with pause, search, and log switching.
- Robust SSH β bastion / jump-server (ProxyJump / ProxyCommand), keepalives on by default (tunable), per-host
extra_ssh_options for legacy boxes, and key auto-discovery.
Cloud provider management
- OVHcloud β
OVH β β Manage: create / start / stop / reboot / delete (Cloud / VPS / dedicated), a region-first create wizard with API-backed pricing, plus DNS, IP blocks & failover IPs, snapshots, block storage, and billing.
- Hetzner Cloud β
Hetzner β β Manage: full lifecycle + project SSH-key registry, with an equivalent CLI (servonaut hetzner β¦). Auto-registers new servers. β docs
Observability & security
- Proactive monitoring β Findings (Solo+) β cloud-side detectors surface fleet issues (disk, failed services, slow queries, credential-scanning cross-referenced with fail2ban, container health, TLS expiry, pending updates) as triageable cards, with gated one-click remediation (server-signed preview β human confirm β verb-allowlisted executor; block IP or renew a cert). β guide
- CloudWatch Logs browser β log groups with Top-IPs analysis, IP geolocation, and AbuseIPDB lookups.
- CloudTrail browser β AWS CloudTrail events with region / time / event / user filters.
- IP ban manager β ban IPs via AWS WAF, Security Groups, or NACLs, with an audit trail.
- Keyword server scanning β search file contents across instances.
AI
- Servonaut AI (Solo+) β hosted AI gateway; chat with your fleet with no local API key. The model can tail logs, run commands (with confirmation), and triage incidents over the relay β credentials and SSH keys never leave the CLI. Quota inline /
servonaut ai quota.
- Bring your own key β OpenAI / Anthropic / Gemini / Ollama keys configured per-provider in Settings β AI Provider (local Ollama needs none). All coexist with Servonaut AI, switchable per-session.
- Built-in AI chat β LLM assistant with tool-calling against your instances (the same MCP tool surface below).
- AI log analysis β analyze logs with OpenAI, Anthropic, Gemini, or Ollama, with cost estimation.
- Voice β dictate into the chat panel with
ctrl+t, have replies read aloud, or go fully hands-free with conversation mode (ctrl+n): the mic stays open between turns and replies are spoken β with optional barge-in (headphones mode) to interrupt a reply by talking over it. Transcription and speech synthesis run entirely on your machine, so audio never leaves the workstation. Opt-in β nothing is downloaded until you enable it in Settings. β docs
Memory & secrets
- Server memory β persistent per-server cache of OS / runtime / service / web-stack / log / database / container / git / disk facts; optional background fleet auto-scan. β docs
- Memory Sync (Solo+) β end-to-end-encrypted backup of fleet memory to servonaut.dev (X25519 + AES-256-GCM, your passphrase), with drift detection, cross-device history, and optional auto-sync.
β Memory Sync in the sidebar.
- Database credential vault (Solo+) β scan a server for the DB credentials its apps already use, store the password in your secret vault under a per-site label, and let the
db_* tools resolve it by name β no password in config or agent context. β docs
Agents & automation (MCP)
- MCP server β ~80 tools for Claude Code, Cursor, Windsurf, etc.: instance ops, AWS / Hetzner / OVH lifecycle, S3, log analysis & IP banning, Docker inspection, system-health probes, SSH-key CRUD, memory queries, and an authenticated REST proxy β behind a three-tier guard (
readonly / standard / dangerous) with a JSONL audit trail. β details below
- MCP relay β
servonaut connect (or TUI autostart) holds a Mercure SSE connection open so agents and team-mates can dispatch tool calls to this machine. Tokens never leave the CLI.
- Servonaut Cloud account β optional
servonaut login unlocks config sync across machines and the MCP relay.
- Config sync β client-side-encrypted snapshots of your
config.json synced via servonaut.dev, paired with a passphrase you control.
Convenience
- Instance caching β stale-while-revalidate for fast startup.
- Auto-update β startup check + one-click update (
servonaut --update).
- Desktop shortcut β
servonaut --install-desktop (Linux/macOS).
- Fully configurable β everything in
~/.servonaut/config.json.
Prerequisites