Mains ceiling and exclusions
The ceiling
Each Mains (Hands) action has a level. The ceiling you set is the highest level an AI can use; anything above it is refused. An AI can read the ceiling (main_ceiling), never raise it.
| Level | Name | What it allows | Tools (nominal level) |
|---|---|---|---|
| L0 | Read | Nothing but perception. Default setting. | no action tools |
| L1 | Safe | Reversible actions: focus, window, navigation | main_navigate, main_hover, main_activate, main_window_minimize, main_window_hide, main_window_show |
| L2 | Input | Clicks, typing text, dragging, key combinations | main_click, main_type, main_drag, main_key |
| L3 | Commit | Buttons that commit: send, confirm | main_press |
| L4 | Autonomy | Everything, without per-action confirmation | main_mouse_down, main_mouse_up, main_key_down, main_key_up |
A tool's level is nominal: the target can raise it depending on how reversible the action is, never lower it. Details: Mains.
Setting the ceiling
Move the panel slider, between L0 and L3. Up to L3, an action that Daimon judges irreversible, or that the AI declares as such, stops at a confirmation dialog, which declines on its own after 30 seconds.
L4 consent
L4 requires your explicit consent. It is engaged:
- from the panel, through a confirmation dialog; or
- on macOS, from a terminal, by typing a full sentence:
/Applications/Daimon.app/Contents/MacOS/Daimon consent engage.
No configuration file can reach it and no tool lets an AI engage it. It stays active until you disengage it.
Exclusions
The exclusions.yaml file is in the configuration folder (panel › Ouvrir le dossier de configuration (Open the configuration folder)). Without this file, no user exclusion is applied. It contains an exclusions: section:
exclusions:
apps:
- com.example.app # application identifier
- { app: com.example.other, level: perception }
window_titles:
- '(?i)secret' # regular expression
regions:
- {x: 0, y: 0, width: 400, height: 80}
secret_roles:
- AXSecureTextField
secret_apps:
- com.example.vault| Key | Effect |
|---|---|
apps | Applications whose presence in the foreground makes capture refused. A bare identifier means level image; an {app, level} entry accepts image (its pixels never leave), perception (neither its accessibility tree nor its text) or action (and Daimon does not act in it) |
window_titles | Regular expressions: matching windows are removed from the tree and refused as targets |
regions | Screen areas that are always blacked out: four integers x, y, width, height |
secret_roles | Accessibility roles whose value is masked; AXSecureTextField by default |
secret_apps | Applications whose content is always treated as secret |
A malformed file is not silently ignored: a syntax error, a misspelled level or an invalid expression results in a file flagged as broken, not a weaker protection. The file's state appears in the exclusions key of daimon_doctor.
See also Privacy.