Skip to content

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

  1. 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.
  2. 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.
  3. 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.

text
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.

OrderExpected resultResult
block online gamesgaming shield onPass
stop my son from playing games on the internetgaming shield onPass
I don't want my daughter to see pornnsfw shield onPass
block betting and casino sitesgambling shield onPass
block drug websitesdrugs shield onPass
no more ads pleaseadsTrackers shield onPass
protect me from scams and phishingmalwareScams shield onPass
games are fine againgaming shield offPass
block Robloxsingle-site rule (block)Pass
block youtube.comsingle-site rule (block)Pass
my kid is going to use this Mac, make it safe for a childChild Safety First onPass
only let Safari go onlineSafari only onPass
turn off child safetyChild Safety First offPass
bloque les jeux en ligne pour mon filsgaming shield onPass
je ne veux plus de sites pour adultesnsfw shield onPass
Blockiere Online-Spielegaming shield onPass
keine Glücksspielseiten mehrgambling shield onPass
bloquea los juegos en líneagaming shield onPass
حظر الألعاب على الإنترنتgaming shield onPass
屏蔽成人网站nsfw shield onPass
заблокируй азартные игрыgambling shield onPass
block Slacksingle-site rule (block)Pass
go in paranoid modeSecurity mode: paranoidPass
disable parental controlsChild Safety First offPass
let my kids use Chrome againSafari only offPass
désactive la sécurité enfantChild Safety First offPass
turn off the kill switchKill switch offPass
Firefox is ok for the children nowSafari only offPass
block Chrome and every other browser except SafariSafari only onPass
autorise à nouveau Firefox pour mes enfantsSafari only offPass
let FireAI Pilot handle the easy connectionsFireAI Pilot modePass
passe en mode FireAI PilotFireAI Pilot modePass

Read next

Try it on your own Mac

Try every feature free for 17 days, no card needed.

Download for Mac See pricing

30-day money-back guarantee.