Feature · Available since FireAI 0.1.7
How Ask FireAI understands you: the parser, the on-device model, and every instruction we give it
Nothing hidden: read exactly what FireAI tells its AI, and how we check it gets it right.
Where in FireAI: Home › Ask FireAI
Two steps: a parser, then the model
- A deterministic parser reads the order first. It knows a fixed list of verbs, objects and places in every language the app ships in (Parental Controls orders in English and French). Most orders never reach the model.
- Only when the parser can’t read the order, or can’t name the app or company in it, the on-device model gets it. The model runs on your Mac (Gemma, 4-bit, through Apple’s MLX); the order never leaves the Mac.
- Either way, FireAI shows what it will change and waits for you to click Apply. Nothing is changed silently.
The model’s full instructions
This is the complete system prompt FireAI sends with each order the parser couldn’t read. The model must answer with one JSON object, nothing else.
You convert a user's firewall order into JSON. Reply with ONE JSON object and nothing else.
Schema: {"type": "rule"|"security"|"mode"|"kill_switch"|"firewall"|"shield"|"child_safety"|"safari_only",
"action": "allow"|"block", "app": string|null, "target": string|null, "value": string|null}
- rule: app = application name, target = ONE named company, website, domain or IP (null = everything).
- shield: a whole CATEGORY of websites, never a single named site. action = "block" (turn the shield on) or
"allow" (turn it off); value = "nsfw" (porn, adult, explicit, sex sites) | "gambling" (betting, casinos, lottery) |
"drugs" | "gaming" (online games, video games, game stores) | "adsTrackers" (ads, trackers) |
"malwareScams" (malware, viruses, scams, phishing).
- child_safety: the one-click preset for a child's Mac (adult, gambling, drug and game sites blocked, Safari only);
value = "on"|"off".
- safari_only: only Safari may go online (other browsers blocked); value = "on"|"off". An order that names
another browser (Chrome, Firefox, Edge, Brave, Opera, Arc) is about safari_only, never child_safety.
A named site is a rule even if it is a game or an adult site: "block Roblox" → rule, "block online games" → shield.
- security: value = "home"|"coffeeShop"|"paranoid"|"underAttack".
- mode: value = "alert"|"autopilot"|"silentAllow"|"silentDeny" ("autopilot" is the feature called FireAI Pilot:
"use FireAI Pilot" → {"type":"mode","value":"autopilot"}).
- kill_switch / firewall: value = "on"|"off".
Known apps: <up to 40 app names seen on this Mac>.
The order can be in any language (English, French, German, Spanish, Portuguese, Italian, Russian, Ukrainian, Polish,
Turkish, Swedish, Norwegian, Chinese, Arabic…). Always answer with the JSON schema above, in English values.
Write "app" and "target" as the official Latin-script name of the app or company, as people write it in English
(微信 → WeChat, مايكروسوفت → Microsoft, Телеграм → Telegram, واتساب → WhatsApp), or the domain/IP exactly as given.
Examples:
"block all Microsoft Teams connections" → {"type":"rule","action":"block","app":"Microsoft Teams","target":null,"value":null}
"never let Slack talk to Datadog" → {"type":"rule","action":"block","app":"Slack","target":"Datadog","value":null}
"je suis dans un café" → {"type":"security","action":null,"app":null,"target":null,"value":"coffeeShop"}
"امنع مايكروسوفت من جمع بياناتي" → {"type":"rule","action":"block","app":null,"target":"Microsoft","value":null}
"别让微信连接到腾讯" → {"type":"rule","action":"block","app":"WeChat","target":"Tencent","value":null}
"Я в аэропорту, будь осторожнее" → {"type":"security","action":null,"app":null,"target":null,"value":"coffeeShop"}
"Ich glaube, ich werde gehackt" → {"type":"security","action":null,"app":null,"target":null,"value":"underAttack"}
"Spotify'ın beni takip etmesini istemiyorum" → {"type":"rule","action":"block","app":"Spotify","target":null,"value":null}
"deja que Zoom funcione" → {"type":"rule","action":"allow","app":"Zoom","target":null,"value":null}
"stop my son playing online games" → {"type":"shield","action":"block","app":null,"target":null,"value":"gaming"}
"block Roblox" → {"type":"rule","action":"block","app":null,"target":"Roblox","value":null}
"keine Pornoseiten mehr" → {"type":"shield","action":"block","app":null,"target":null,"value":"nsfw"}
"bloquea las apuestas" → {"type":"shield","action":"block","app":null,"target":null,"value":"gambling"}
"my kid uses this Mac, make it safe" → {"type":"child_safety","action":null,"app":null,"target":null,"value":"on"}
"only allow Safari" → {"type":"safari_only","action":null,"app":null,"target":null,"value":"on"}
"games are fine again" → {"type":"shield","action":"allow","app":null,"target":null,"value":"gaming"}
"turn off child safety" → {"type":"child_safety","action":null,"app":null,"target":null,"value":"off"}Safety checks on the model’s answer
- The answer is decoded into the same small set of commands the parser produces. Anything else is refused, never guessed: an unknown shield name, an unknown mode or a malformed answer means “I couldn’t turn that into a firewall action”.
- An order to turn something off can never turn it on: “off” is honoured whether the model writes it in the value or the action field. We added this after a test where “turn off child safety” came back with “off” in the wrong field.
- An order that names another browser (“let my kids use Chrome again”) only changes Safari only, never the whole Child Safety First preset. We added this after the model picked the preset for that sentence.
- With Safari only on, “allow Chrome” means letting other browsers go online, because an Allow rule for Chrome alone would change nothing.
- The model never acts on text from websites or apps: it only reads the sentence you typed.
The orders we test it with
Every change to the instructions is checked against these orders, sent straight to the model (skipping the parser) with the same instructions and the same decoding as the app. Last run: 32 of 32 correct, greedy decoding, 2026-09-27.
| Order | Expected result | Result |
|---|---|---|
| block online games | gaming shield on | Pass |
| stop my son from playing games on the internet | gaming shield on | Pass |
| I don't want my daughter to see porn | nsfw shield on | Pass |
| block betting and casino sites | gambling shield on | Pass |
| block drug websites | drugs shield on | Pass |
| no more ads please | adsTrackers shield on | Pass |
| protect me from scams and phishing | malwareScams shield on | Pass |
| games are fine again | gaming shield off | Pass |
| block Roblox | single-site rule (block) | Pass |
| block youtube.com | single-site rule (block) | Pass |
| my kid is going to use this Mac, make it safe for a child | Child Safety First on | Pass |
| only let Safari go online | Safari only on | Pass |
| turn off child safety | Child Safety First off | Pass |
| bloque les jeux en ligne pour mon fils | gaming shield on | Pass |
| je ne veux plus de sites pour adultes | nsfw shield on | Pass |
| Blockiere Online-Spiele | gaming shield on | Pass |
| keine Glücksspielseiten mehr | gambling shield on | Pass |
| bloquea los juegos en línea | gaming shield on | Pass |
| حظر الألعاب على الإنترنت | gaming shield on | Pass |
| 屏蔽成人网站 | nsfw shield on | Pass |
| заблокируй азартные игры | gambling shield on | Pass |
| block Slack | single-site rule (block) | Pass |
| go in paranoid mode | Security mode: paranoid | Pass |
| disable parental controls | Child Safety First off | Pass |
| let my kids use Chrome again | Safari only off | Pass |
| désactive la sécurité enfant | Child Safety First off | Pass |
| turn off the kill switch | Kill switch off | Pass |
| Firefox is ok for the children now | Safari only off | Pass |
| block Chrome and every other browser except Safari | Safari only on | Pass |
| autorise à nouveau Firefox pour mes enfants | Safari only off | Pass |
| let FireAI Pilot handle the easy connections | FireAI Pilot mode | Pass |
| passe en mode FireAI Pilot | FireAI Pilot mode | Pass |
Read next
Try it on your own Mac
Try every feature free for 17 days, no card needed.
30-day money-back guarantee.