AI-powered system administration.One binary.No installation required.
Lightweight AI assistant for system administrators in one single executable file.
Run it on the server, work in a local Web UI, stop it: nothing keeps running.
$ curl -fsSL https://kelpy.io/install.sh | shPS> irm https://kelpy.io/install.ps1 | iexLinux x86-64 and Windows x86-64MIT or Apache-2.0
How it works
For each conversation, two choices under the message box: what Kelpy may do, and how it goes about it.
- None
- Answers only, and gives you the commands.
- Read-only
- Looks at the system, changes nothing.
- Full
- Also changes files, services, packages and databases.
- Ask
- You approve each action.
- Plan
- You approve the plan once; its steps run.
- Auto
- Kelpy goes ahead with its own operations.
What Kelpy can do
Runs without asking
Waits for Approve or Deny
An action not decided in 30 minutes counts as denied. What Kelpy reads goes to the AI service with the conversation.
Preview, approve, run, check
With System access Full, Kelpy changes files, services, packages and databases in four steps:
1Preview
Change
/etc/nginx/sites-available/wordpressphp8.5-fpm is installed; the site still points at the PHP 8.4 socket.
@@ -14,7 +14,7 @@ server {location ~ \.php$ {include snippets/fastcgi-php.conf;- fastcgi_pass unix:/run/php/php8.4-fpm.sock;+ fastcgi_pass unix:/run/php/php8.5-fpm.sock;}- Check
nginx -t, before and after- Undo
- previous version kept in
data/backups/
2Approve
ApproveDenySwitch to PlanSwitch to AutoWith Ask, the card waits for Approve or Deny.
3Run
- Written only if the file is still as shown
- Previous version backed up
- Written atomically, owner and permissions kept
- Read back
4Check
$ nginx -t nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successfulIf the check fails, the previous version is put back at once and the model is told why.
Services
State read before and after. If it does not settle in 30 seconds, Kelpy shows the log and restores the previous state where it can.
Packages
An apt simulation shows what is installed or removed. A removal the card did not show stops the installation.
Databases
MariaDB or MySQL. Generated passwords reach the model as {{secret:name}}, never as values.
Command log
Every action in order, with time, state, exit code and duration; its output on a click.
- Restore
- Puts a file back as it was before a change, after showing the diff.
- Report
- The handover report of the conversation, in Markdown.
- Export
- The operations that succeeded, as JSON; secrets as placeholders.
Command log
- 10:41systemctl status nginx0 · 0.1 s
- 10:42Install nginx, php8.5-fpm, mariadb-serverok · 41 s
- 10:44Change /etc/nginx/sites-available/wordpressRestoreok
- 10:44Reload nginxok · 1.2 s
- 10:46chown -R www-data:www-data /var/www/wordpress0 · 0.3 s
- 10:47Create database wordpress, user wordpress@localhostok · 0.6 s
- 10:48Note in memory: WordPress in /var/www/wordpress, PHP 8.5ok
Commands show as they ran; other actions as a line in another colour.
Changed outside Kelpy
Kelpy records what each change left. A file edited by hand shows in a bar with its diff, and the model is told. Kelpy never reverts it by itself.
Accept keeps what is there. Put back writes Kelpy's version again, after a backup.
Changed outside Kelpy: /etc/php/8.5/fpm/php.ini
Handover report
Report in the Command log downloads it in Markdown: what changed, what did not complete, where secrets went (never their values), what changed outside Kelpy, the ports listening now.
# Handover report
## Installed
- nginx, php8.5-fpm, mariadb-server
## Changed
- /etc/nginx/sites-available/wordpress (backup kept)
## Created
- database wordpress, user wordpress@localhost
## Secrets
- wp_db_password: /var/www/wordpress/wp-config.php
## Did not complete
- none
## Listening now
- 80 nginx, 3306 mariadbd
Install
One command downloads Kelpy, checks it and starts it. No administrator rights needed.
Run the command
Linux
$ curl -fsSL https://kelpy.io/install.sh | shWindows, in PowerShell
PS> irm https://kelpy.io/install.ps1 | iexFrom the latest release, checked against its SHA-256. Or download it by hand.
First run
Kelpy installs itself into one folder and can add it to PATH.
~/Kelpy/ kelpy the executable config.toml AI provider and model data/ conversations and state memory/ notes about this server logs/
Open the Web UI
Every start prints a sign-in link and a new access code. Kelpy listens on 127.0.0.1 only.
Kelpy v0.1.0
Agent runtime started.
Web UI: http://127.0.0.1:54321/#code=K7QM-4ZP2
Code: K7QM-4ZP2 (to sign in from another browser)
Home: /root/Kelpy
Provider: Ollama (qwen3.5:9b) - ready (no API key needed)
Account: root
Press Ctrl+C to stop.Over SSH it also prints the tunnel command to run on your computer. Nothing new is exposed on the server.
- Stop
- Ctrl+C: nothing keeps running.
- Remove
- Run
kelpy cleanup.
AI providers
Choose the provider and model in the Web UI or run kelpy provider. API keys stay in memory until Kelpy stops.
- ChatGPT plan
- Sign in as Codex CLI, with a code, or as an agent.
- Free online service
- Google Gemini, Groq, OpenRouter, Mistral, within their limits; some may train on what they receive.
- API key
- Anthropic, OpenAI, any OpenAI-compatible service.
- Local model
- Ollama, with models downloaded from the Web UI, or any OpenAI-compatible server.