The one-line installer for SentinelX. This is what https://get.sentinelx.app serves.
curl -fsSL https://get.sentinelx.app | sudo bashRun that on any Linux host you want to operate from your LLM. The script clones
sentinelx-cloud-core, sets
it up as a systemd service, and walks you through enrollment.
Anyone who wants to install the SentinelX agent on a Linux server and connect it to Claude.ai or ChatGPT via the SentinelX hub.
- Prereq check — confirms you're on Linux, running as root, with
git,python3, andsystemdavailable. - System user — creates an unprivileged
sentinelxuser that the agent will run as. - Sudo setup — by default, installs
/etc/sudoers.d/sentinelxso the agent can run privileged commands without a password. The real security boundary is the allowlist in/etc/sentinelx/config.yaml— without that sudo rule, the LLM can't restart services or edit/etc/. To skip this step, setSENTINELX_SKIP_SUDO=1. - Clone & venv — fetches
sentinelx-cloud-coreto/opt/sentinelx-cloud-coreand builds a virtualenv there. - Config skeleton — drops a starter
/etc/sentinelx/config.yamlthat you can edit later to control which commands the agent will allow. - Enrollment — opens an interactive enrollment flow:
- Prints a URL like
https://mcp.sentinelx.app/auth/dashboard/enroll?host_id=... - You open it in your browser, sign in with Google, copy the displayed enrollment token, paste it back into the installer.
- Prints a URL like
- systemd unit — installs and starts
sentinelx-cloud-core.service. The agent connects out tomcp.sentinelx.appand stays connected.
After this completes, the host appears in your account on the SentinelX hub and you can target it from Claude.ai or ChatGPT.
In Claude.ai or ChatGPT:
- Settings → Connectors → Add custom MCP
- URL:
https://mcp.sentinelx.app/mcp/mcp - Authorize with the same Google account you used during enrollment.
You're done. Try asking your LLM:
"List my SentinelX servers." "Show uptime and disk usage on my-vps."
Run the installer on each one. Hosts are bound to your account, and the LLM can target them by:
- host_id — the unique ID generated at install time
- hostname — whatever the server reports (e.g.
web-prod-01) - label — a custom alias you set later via
sentinel_set_host_label
If a name resolves to multiple hosts, the LLM is told which it is and asks you to disambiguate.
The agent only runs what's allowed in /etc/sentinelx/config.yaml:
exec.allow— exact shell commands the LLM can runservices.allow— systemd units the LLM can managepaths.allow_edit— files the LLM can read/write viasentinel_edit
A starter config is written at install time. Edit it to expand or restrict what your LLM can touch.
If you'd rather not pipe a remote script into sudo:
curl -fsSL https://get.sentinelx.app/install.sh -o install.sh
less install.sh # read it
sudo bash install.sh # then run itThe script is tiny (~7 KB) and stdlib-only.
sudo systemctl disable --now sentinelx-cloud-core
sudo rm -rf /opt/sentinelx-cloud-core
sudo rm -rf /etc/sentinelx
sudo rm -f /etc/sudoers.d/sentinelx
sudo userdel sentinelx
sudo rm /etc/systemd/system/sentinelx-cloud-core.service
sudo systemctl daemon-reloadThe host stops appearing in your hub account within seconds (the WebSocket disconnects). Operational logs about that host roll off after 30 days.
sentinelx-cloud-core— the agent itselfsentinelx-cloud-protocol— wire format spec- Privacy Policy · Terms
Apache 2.0