Watchers
Get told when a command finishes, a line appears, output goes quiet or a metric stays past a limit, from one sentence in English, Turkish or Portuguese.
A watch waits for something in a terminal or in a host’s live metrics and tells you when it happens. You describe it in one sentence, Gatesys SSH reads it back in its own words, and nothing listens until you click Start watching.
What a watch can wait for
| Condition | Example |
|---|---|
| The command finished | tell me when the migration finishes |
| The command asks for input | A [y/N] question, a password prompt, a REPL’s >>> |
| A line contains some text | if any ERROR shows up, if a line says “connection reset” |
| Output went quiet while a command runs | if it goes quiet for 2 min |
| CPU, memory, disk or load crossed a line for a while | ping me if disk stays above 90% for 2 min |
| The shell or the connection closed | if the shell closes |
A watch holds up to four conditions and fires on the first one that happens.
Start a watch
- In the terminal, click into the pane you want to watch, then click Watch in the terminal header.
- Type a sentence, or pick a preset: When it finishes, If it goes quiet for 30 s, If a line says error or If the shell closes. Text you selected in the pane becomes a starting phrase.
- Check the draft card:
- The sentence Gatesys SSH wrote back, describing exactly what will be watched.
- Each condition with where it came from: you said, preset, model: check it or you.
- Phrases you can remove or add, and numbers you can type over.
- Add condition for a metric limit or more text.
- How long to watch: 1 h, 8 h (the default), 24 h or 7 days.
- A footer saying who read your sentence and whether anything left this computer.
- Click Start watching.
Watch it on a Health signal opens the same composer with a metric watch already filled in, such as disk above 95% for two minutes.
Sentences work in English, Turkish and Portuguese, or a mix, for example migration bitince ya da hata çıkarsa haber ver or me avise quando o build terminar. Typing without accents or Turkish letters works too.
While a watch runs
- The button reads Watch · 1 (or however many are running).
- The pane wears a chip saying what its watches are doing.
- The terminal tab and the session tab carry a bell.
- The Watch composer lists the connection’s watches, with Cancel for each.
You can run up to five watches per terminal and twenty in all. A watch on CPU, memory, disk or load alone belongs to the connection rather than to a pane, so closing a terminal does not end it.
When it fires
- A toast appears with the host, the pane, a headline and the line behind it.
- The pane’s chip turns amber, and a dot stays on both tabs until you look: Show brings the pane forward, Dismiss clears it, or click the chip.
- A toast for an alert that fired while you were away stays until you look. One that fired while you were at the window goes after eight seconds.
When you are away from the window (it is not focused, or the computer has been idle for a minute or is locked), an OS notification says what happened, at most six a minute. Notifications carry the host and a headline written by code. They include the output line only with Settings › General › Notifications › Show output lines in notifications on.
A watch fires once. Start another to keep waiting.
How your sentence is read
- Rules read it first, on this computer. Quoted text is watched exactly as written. Trouble words become the words servers print (hata becomes “error”), skipping counts of zero such as “0 failed”. ALL-CAPS words are matched whole and case-sensitive.
- A model is asked only when the rules cannot place every word, and only with Pro, the assistant on and a model set. It gets your sentence with secrets masked and its quotes, hosts, addresses, paths and ports replaced by placeholders, and nothing else: no host name, output, metrics or facts.
- The model’s reply is data, and code checks it. A phrase your sentence never said becomes a suggestion that stays unticked until you tick it. A number it changed is put back. A quote it dropped is added back.
- With no model, a slow one (60 seconds) or a failed one, the rules’ draft stands.
When you click Start watching, the app checks the draft again with the same rules. If that would change anything, nothing starts and the changed draft comes back for your approval. From then on no model is involved.
With the assistant off, the composer works the same, read by rules only.
What a watch never does
A watch never writes to the shell, runs a command or opens a channel. It reads the output and metrics Gatesys SSH already receives, so it works even on a server that allows only one session.
Limits of detection
- “Finished” and “asks for input” are well-informed guesses. Without shell integration, a command counts as finished when the prompt comes back after half a second of stillness. Input is detected when the cursor sits after a question, a
[y/N], a password prompt or a>>>. - What you type is never read as output. At a prompt nothing counts until you press Enter, and the echoed command line is skipped once. A line ended with CtrlC or by a completion list still counts as typing, and pressing Enter on an empty prompt finishes nothing.
- Full-screen apps pause text rules. While vim, less or tmux is open, output rules wait. A finish or quiet watch says so after ten minutes.
- Very fast output pauses text rules above 2 MB a second, until it calms down. A command that finished during the pause is still reported, without a duration.
- Windows servers (ConPTY) show a line only once it ends with a newline.
- Phrases are plain text, not patterns, and lines are cut to 1,024 characters for matching.
Watches never end silently
A closed shell, a dropped connection, metrics polling giving up, the computer sleeping and the watch expiring are all announced. Losses right after waking come as one notification. Watches live only in memory, so quitting the app ends them.
The audit log records each watch’s start, its first alert and any loss: the kinds of condition, your sentence (with secrets masked) and who read it. It never records output.
Something unclear or wrong? Tell us.