Automations
An automation watches your terminals for a screen you described and presses the keys you chose. The usual use: answering the same permission prompt for the hundredth time.
How one fires
- The screen settles. Connecto waits until a terminal's screen stops changing (about one second, half a second when the terminal is asking for you), then reads the bottom of it. Only an automation whose trigger phrases are all on the screen is sent to Jev, which usually answers in a fraction of a second; the keys are typed as soon as the answer arrives.
- The trigger matches. Every phrase in the automation's trigger must be on the screen. This check is local and instant.
- The classifier decides. Only then is the screen text sent to Jev, a classifier model, with the automation's question. Secrets are redacted first.
- The keys are typed, if Jev's answer is the one the automation wants and its confidence is at or above your threshold.
If Jev's best answer is the right one but it is less sure than your threshold, Connecto asks you instead of typing. Anything else, and nothing happens.
Set up
Open Terminal → Automations… and go to the Setup tab. You need three things:
- A Jev API key. Jev is a model from TypeSafe, and you use your own key. Connecto keeps it with its other secrets (see Where secrets are kept), never in a log.
- A Connecto Home. The folder where your automations live. Choose it in Settings. See Connecto Home.
- A login for the tool that will help you write automations.
The automations that come with Connecto
They come in two groups: Accept defaults for Claude (the five Claude screens) and Accept defaults for Codex (the Codex folder prompt). A group has one switch for all of it, opens to show its automations on a click anywhere on its line, and each automation inside still has its own switch. The group shows how many of its automations are on ("3 of 5 on"), and the All, Claude and Codex tabs filter groups like any other row. Your own automations stay loose rows below the groups. If you already had these automations, they are simply shown inside their group: nothing is copied again and nothing you switched on is switched off.
A new install starts with six, ready to look at and switched off. Each one answers a first-run screen that Claude Code or Codex shows, so a newcomer's first terminal gets past it:
| Name | Agent | What it does |
|---|---|---|
| Continue Claude welcome screen | Claude | Presses Enter on the "Welcome to Claude Code" security notes. |
| Choose the Dark theme in Claude setup | Claude | Presses Enter on the first-run text-style picker when Dark mode is selected. |
| Accept Claude folder trust | Claude | Answers "Yes, I trust this folder" on the workspace trust prompt. |
| Accept Claude Bypass Permissions warning | Claude | Answers "Yes, I accept" on the Bypass Permissions warning. |
| Accept the Claude in Chrome prompt | Claude | Answers "Yes, use my browser" on the Chrome extension prompt. |
| Accept the Codex folder prompt | Codex | Answers "Trust and continue" on Codex's folder prompt. |
They are off because an automation asks a model about the screen and types keys on its own, which needs your Jev key and your say-so. Some of them accept security prompts for you: switch on only the ones you want. Switch one on in the list once the key is set; until then the sheet says the key is not set.
- They are put in your Connecto Home once. If you already have an automation with the same folder name, or for the same agent with the same trigger phrases, nothing is added and nothing is changed.
- Delete one and it does not come back. Edit one, or switch it on, and it is yours: a later version never overwrites it. One you have not touched follows the newer text when a later version improves it.
Create an automation
- Click New automation, give it a name such as Accept edits, and choose Claude or Codex.
- Describe it: When the terminal shows… and Do this…. Or leave both empty and paste a screenshot of the prompt into the session that opens.
- A terminal opens with an agent that writes the rule with you. It checks its own work, and can test the trigger against a saved screen.
- When it is finished, turn on Enabled yourself. The agent is told never to do that for you.
Open session on an automation takes you back to that conversation, to change the rule later.
The Automations sheet
A strip under the sheet's tabs filters the list: All, Claude, Codex, each with how many it holds (a plain shell cannot have automations). The tab you choose is remembered the next time you open the sheet, and New automation creates one for the selected agent. The tabs are reachable with the keyboard like any button. Click anywhere on a row's line to open or close it; its switch and buttons keep their own clicks.
- Automations are listed in a section per agent, Claude and Codex. Click a row to open it.
- Each row shows what it matches, what it types, its trigger, and a Fire at ≥ N% threshold you can adjust in steps of 5%, down to 55%.
- WAITING FOR YOU lists the times Connecto was unsure, with Approve and Dismiss. With the sheet closed, a banner in the main window says Automation needs your OK.
- Audit shows the exact request sent to Jev and the response, for each call.
- The History tab lists recent calls and how each ended: fired, asked, no match, or an error.
The file
Each automation is a folder in Connecto Home/automations/ with an automation.json. You rarely need to edit it by hand, but it is plain and readable:
{
"version": 1,
"name": "Approve edit prompts",
"enabled": false,
"agent": "claude",
"model": "jev-1.14.0",
"question": {
"type": "choice",
"instructions": "The text is the screen of a coding-agent terminal. Decide whether the terminal is showing a permission prompt that asks the user to approve a file edit.",
"criteria": {
"edit_prompt": "The screen shows a question like `Do you want to make this edit to <file>?` with numbered options. The prompt is still waiting for an answer.",
"other": "Anything else: normal conversation, a different permission prompt, or output that only mentions an edit prompt."
}
},
"match": "edit_prompt",
"keys": ["down", "enter"],
"trigger": ["Do you want to make this edit", "allow all edits during this session"],
"threshold": 0.8
}
| Field | Rule |
|---|---|
name | 1 to 64 characters. |
agent | Which tool's terminals it applies to. |
question | Type choice: 2 to 32 named answers, one of them for "anything else". Type noul: a yes/no question, with match set to "true". |
match | The answer that fires the automation. |
keys | 1 to 20 keys: enter esc tab shift-tab space backspace delete up down left right home end pageup pagedown insert f1…f12 ctrl-<letter> alt-<letter>, or one printable character. |
trigger | Required. 1 to 5 phrases of 3 to 200 characters. Case, extra spaces, line wraps and box borders are ignored. |
threshold | Above 0.5, up to 1. The default is 0.8. |
Check a file from any terminal:
connecto automation check <name> connecto automation check <name> --screen screen.txt
Limits that keep it safe
- Pause stops automations. Nothing is checked and nothing is typed. If you approve a waiting one while paused, it is kept until you resume.
- More than 5 automatic key sequences in a minute into one terminal stops automations for that terminal. A rule that keeps firing is a rule that is wrong.
- At most 20 classifier calls a minute across all terminals, and each screen is judged once.
- Only the bottom 60 lines of the screen are sent, at most 6000 characters, redacted.
- An automation without a trigger does not run. Jev is never called for every screen.
An automation that approves prompts removes a check. Write the trigger and the question narrowly, for one kind of prompt. "Approve everything" is better done by choosing a launch mode on purpose.