Farabi AI

Say it, Gatesys sets it up

Describe a watch, a tunnel or a host in one sentence. Rules read it, a model helps only with placeholders, and code checks and enforces every value.

Pro

Farabi and every AI feature are part of Gatesys Pro — free for 3 months, then $20 a year. See plans

Watches, tunnels and hosts can be described instead of filled in. You write one sentence; code turns it into a draft you can check, and one click starts or saves it.

Included in every plan

Rules read your sentences on every plan, with no model. A model helps with sentences the rules cannot fully read only with Gatesys Pro and the assistant on.

Where you can say it

WhereExamples
Watch in the terminal headertell me when the migration finishes or if any ERROR shows up, ping me if disk stays above 90% for 2 min, migration bitince ya da hata çıkarsa haber ver
Describe a tunnel in Port forwardingreach postgres on db-primary, 10.0.3.40:6379 through edge-bastion, socks through edge-bastion, a pasted ssh -L, -R or -D command, db-primary’daki postgres’e bağlan
The Hosts search boxadd 10.0.3.4 as deploy behind edge-bastion, a pasted ssh -J edge-bastion -p 2223 [email protected], an ssh:// link

Sentences work in English, Turkish and Portuguese, such as conectar ao postgres no db-prod. Nothing past 300 characters is read.

AI compiles, code enforces

A model that types commands asks you to trust what it typed. These features go the other way round: a model may turn what you meant into a small typed draft, and code does everything that matters.

  1. You say it, in one sentence.
  2. Rules read it first, on this computer. Only when they cannot place every word, and the assistant is on, is a model asked, for one small JSON object. The sentence’s hosts, addresses, paths, user@host logins, ports and quotes (and for a tunnel or host, every number) are replaced by placeholders on every runtime, local ones included. The model never sees the terminal, the host’s facts or the names of your saved hosts.
  3. The reply is inert data. Code checks it field by field. A condition your sentence never asked for is offered unticked, a number it changed is put back, each placeholder may fill only one field of a kind that field accepts, and a value the model wrote itself is dropped.
  4. Code reads it back in its own words, with where every value came from and a footer saying who read the sentence and whether anything left the computer.
  5. One click, Start watching, Create & start or Save, and the main process checks the draft again rather than trusting the window. A watch the rules would now read differently does not start and comes back to you. A tunnel is resolved afresh, so a port taken a moment ago is swapped and the card says so. A host is checked field by field as it is saved.
  6. Enforced with no model. From the click on, the watch engine, the forward and its test connection, and the host save run without any model, so none can change its mind mid-run.
  7. A receipt in the audit log: what started, from which sentence (with secrets masked) and who read it.

With no model, a slow or failed one, or the assistant off, the rules’ draft stands, and the footer says so.

What a model may decide

FeatureA model mayCode decides and enforces
WatchersRead a sentence the rules could not place into conditionsThe conditions and limits, phrase matching, when a command finished or asks for input, metric thresholds, expiry, every alert
Tunnels and hostsSay which placeholder is the host, service, port or loginThe host (exact match or Did you mean), the local port, the 127.0.0.1 bind, read-only hints, no remote tunnel from a sentence, the test connection
FarabiExplain, and suggest commandsEach command’s risk rating and confirm, the impact line and its confirm, what reaches the shell (only on Insert or Run)
Hop DoctorPhrase the report (Explain)The checks, the cause, the fixes and the patch each one applies
Host factsRank measured changes, citing them (Explain)What is read, what changed, the citation check, the timing ranking when no model helps
Safe ChangeName set or unset of sshd keywords; summarise a diff, advisory onlyThe file’s kind, which operations survive and how they are written, the server’s check, the findings, the buttons offered, the backup, the install, the safety net and Keep

Where each value came from

Every value on a draft card carries its source:

LabelMeaning
you saidTaken from your sentence
saved hostMatched exactly to one of your hosts
catalogA well-known service’s default, such as PostgreSQL’s 5432
measuredWhat the host was measured listening on, with its age
picked by GatesysChosen by code, such as a free local port
model: check itPlaced by a model. Check it before you click

Watch conditions also show preset or you for ones you picked or added.

The footer says who read the sentence, for example:

  • The assistant is off — read by rules
  • Read by qwen3:8b · local endpoint · 2 values masked
  • sent your sentence with 2 values masked to Anthropic

Secrets never survive the first step

Before anything else reads a setup sentence, the word after password, passwd, pass, pw, passphrase, secret or token (and Turkish şifre and parola), the argument of sshpass -p, and the password in an ssh:// link become [redacted]. The draft, the card, the audit log and any model see only that cleaned sentence. You are asked for passwords on first connect, as always.

Tunnels from a sentence

  • Hosts match exactly, by name, address or user@address. Anything close shows Did you mean db-primary? with Use db-primary.
  • Local ports are picked by code: data services offset by 10000 (15432, 16379), web ports under 1024 moved up by 8000, SOCKS from 1080, and the last port remembered per host and service.
  • Tunnels listen on 127.0.0.1 only, and no port probe ever binds a wildcard address.
  • Remote tunnels come only from a pasted ssh -R. Free text never makes one.
  • Create & start proves it with one test connection through the tunnel before it says Running. A PostgreSQL server logs that test as one “incomplete startup packet” line.

The details are in Port forwarding.

Hosts from a sentence or command

  • A pasted command is read by its own parser, which lists what it did not keep: StrictHostKeyChecking=no (host keys are always checked), a remote command, agent and X11 forwarding, a wide bind.
  • Add as a host opens the host editor prefilled. Nothing is saved until you click Save.
  • Questions, firewall rules, kubectl port-forward and commands meant for a server are not setup, and the app says so.

Receipts

Every tunnel start and stop, every host added this way and every watch is written to the audit log with its host. A start and a new host also carry the cleaned sentence, never the raw one, and who read it: read by rules, or the model and where it ran. The CSV export never lets a cell run as a spreadsheet formula.

Something unclear or wrong? Tell us.