Install
Install AgentKennel on your own server
Three ways in. All of them end the same: a dashboard on HTTPS where you press + New, sign in to Claude once, and give an agent a task.
Before you start
- A server you use for nothing else. Ubuntu 22.04, Ubuntu 24.04 or Debian 12, x86_64 or aarch64. Anything else stops without changes and points you to the Docker sandbox.
- Claude. AgentKennel runs the official Claude Code CLI with your Claude subscription or an API key. It sends no telemetry of its own; Claude Code talks to Anthropic, as always.
- Memory for your agents. Each loaded terminal is its own Claude Code process. At most 12 stay loaded (
AGENTKENNEL_MAX_ACTIVE); an idle one unloads after 2 hours and comes back on click.
AgentKennel starts Claude Code with --dangerously-skip-permissions, so agents don't stop to ask before each command. On a server install they run as your user, with your sudo. Use a dedicated VPS or the Docker sandbox, not your laptop.
One command on a fresh VPS
Log in to the server as a normal user with sudo and run:
curl -fsSL https://raw.githubusercontent.com/yanhs/agentkennel/master/install.sh | bash
On a root-only VPS, make that user first: adduser deck && usermod -aG sudo deck, then log in as deck. Want to read the script before running it?
curl -fsSL https://raw.githubusercontent.com/yanhs/agentkennel/master/install.sh -o install.sh && less install.sh bash install.sh
- At the end the installer prints the address and a one-time setup link,
https://<host>/login?setup=<token>. Only that link can set the password, so a stranger who finds the fresh server first can't. Lost it? Run the install command again. - Open it and set your password.
- Press + New (it opens in
~/projects), sign in to Claude once, and give the agent a task.
HTTPS without a domain. With ports 80 and 443 free you get a trusted Let's Encrypt certificate for https://<your-ip-with-dashes>.sslip.io. With only 443 taken, the same on port 8443. Otherwise a self-signed certificate on https://<your-ip>:8765 that the browser warns about once. --https your-domain.com uses your own domain.
Update or repair: run the same command again; running agents keep running. Remove: ~/agentkennel/install.sh --uninstall keeps your terminals, board and password. Forgot the password? ~/agentkennel/install.sh --reset-password prints a new one-time link; the old password and every signed-in browser stop working.
Docker sandbox
Agents stay inside a container and can't touch the host. You need Docker and one free TCP port (8765) open in your firewall. Docker-published ports bypass ufw.
git clone https://github.com/yanhs/agentkennel.git && cd agentkennel docker compose up -d --wait && docker compose logs agentkennel | grep setup
The second line waits until the dashboard is up, then prints the whole one-time link, https://<your-vps-ip>:8765/login?setup=<token>. Open it and set the password; the certificate is one the container made for itself, so the browser warns once. ./https.sh gets a trusted one for a free sslip.io name (it needs ports 80 and 443). Forgot the password? In the AgentKennel folder, docker compose exec agentkennel python3 status_server.py --reset-password prints a new one-time link (put your address in front).
The price of the sandbox: agents can't manage the host, a site they start inside isn't reachable from outside, apt installs vanish when the container is re-created, and there is no systemd.
Set it up while creating the server
Most cloud providers let you paste a cloud-init script when you create a server. This one creates a user named agents with sudo and runs the one-command install as that user, with a password you choose, so the dashboard is waiting for you when the server is ready. No SSH session needed. The page puts a random password into the script for you; save it, and change it after the first sign-in, because the provider keeps the script in the server's metadata.
With JavaScript on, this page puts a random password into the script for you.
#cloud-config
users:
- default
- name: agents
shell: /bin/bash
sudo: ALL=(ALL) NOPASSWD:ALL
runcmd:
- [bash, -c, "sudo -iu agents bash -c 'curl -fsSL https://raw.githubusercontent.com/yanhs/agentkennel/master/install.sh | AGENTKENNEL_PASSWORD=CHANGE-ME bash -s -- --yes --no-guests' > /var/log/agentkennel-install.log 2>&1"]After 5 to 10 minutes, open https://<server-ip-with-dashes>.sslip.io and sign in with that password. If nothing opens after 15 minutes, the install log is /var/log/agentkennel-install.log, readable from the provider's web console. Step-by-step, in each provider's own words:
Hetzner Cloud
Paste the script into Cloud config when you add a server.
DigitalOcean
Paste it into Startup scripts under Additional Options when you create a Droplet.
Vultr
Paste it into Cloud-Init User Data under Additional Features when you deploy.
All the details
Every installer option, what it installs and how it runs is in the AgentKennel README on GitHub.