What the agents can do
Two agents per account. Each one persistent, each one running as your Linux user. Tell them what you want in plain English — they plan, run, and report.
Ops agent · infrastructure
For everything that lives outside your code: domains, certs, services, system packages, log triage. The Ops agent has a small allow-list of privileged actions it can request — it can never escalate beyond what you can do yourself.
Common prompts
› point mysite.com at this account › renew the cert for api.alice.dev › tail my apache error log and tell me what's broken › install ffmpeg › back up my SQLite DB to ~/backups every night › show me what's eating disk space in my home dir › generate me a fresh ssh key
Privileged actions
The Ops agent runs as your Linux user, but can request these via a small setuid helper:
# bind a customer-owned domain to your ~/public_html sudo addsite alice.dev # issue or renew a cert sudo cert alice.dev # restart user-scoped services sudo service-restart apache
Dev agent · application code
Lives inside ~/public_html. Writes, edits, and runs your application code. Can spin up php -S previews on a non-public port for you to inspect before going live.
Common prompts
› scaffold a simple PHP contact form that emails me › there's a 500 on /products — fix it › add a SQLite table for newsletter signups › migrate my Wordpress export at ~/import.xml into a new install › dark-mode the landing page › wire up Stripe checkout with the keys in .env
Your environment
Every account ships with the same stack. Boring and battle-tested.
Ubuntu 24.04 LTS Apache 2.4 (mpm_itk — vhosts run as your user) PHP 8.3 php-cli php-sqlite3 php-curl php-mbstring php-xml php-zip Python 3.12 with venv + pip SQLite 3.45 CLI + bindings for PHP and Python tmux 3.4 your agents live in here Plus: git, curl, certbot, openssl, unzip, jq, vim, nano
Your home directory layout:
~/ # /home/<handle>.sshgrid.com ├── public_html/ # served at https://<handle>.sshgrid.com ├── logs/ # apache access + error logs ├── uploads/ # drop files here for the agent to use ├── backups/ # automated nightly backups (if enabled) ├── scripts/ # agent-written helper scripts └── agent.md # injected into agents at startup
Direct access
If the agents aren't enough — or you just want to look around — you have real SSH and SFTP. No passwords, key-based only.
ssh your-handle.sshgrid.com@51.222.16.250 sftp your-handle.sshgrid.com@51.222.16.250
Add an SSH key from your account page. You can also tmux attach -t agent-ops if you want to watch the agent live.
Dispatches & quotas
One dispatch = one user message to an agent. It doesn't matter how many tool-calls the agent runs in response — it's still one dispatch.
- Free: 5 lifetime dispatches
- Pro: 200 dispatches per month + $0.10 per overage
- Studio: unlimited
The agent will tell you when it ends with one of these markers:
DONE # task complete, dispatch closed WAITING_FOR_CUSTOMER # needs your input (e.g. DNS hasn't propagated)
What we don't do (yet)
- MySQL / Postgres — SQLite only at this tier.
- Long-running background workers (no
systemd --user). - Outbound email — point at SendGrid or Postmark.
- Multi-region / multi-server.
- Team accounts (one human per subscription).
Where to get help
If something goes sideways, just ask the agent. It can read its own logs and usually fixes itself. If you need a human:
- Email hello@sshgrid.com
- Pro & Studio plans get priority response within 24h