A generative classifier fine-tuned from Gemma 3 1B and Llama 3.2 3B. It reads a chat on the child's phone, finds the risk and explains why, and nothing leaves the device.
Grooming, bullying, sexual content, isolation, requests for personal information, moving the chat to another platform, and threats.
Each alert carries a severity from none to critical and a short written reason, so parents see why something was flagged.
Exported as an INT8 LiteRT-LM model that ships in the SafeCircle app today. Message text is analysed on the device.
Training code, evaluation and the dataset are public, so the results can be checked and reproduced.
On chats like the ones it was trained on, Horizon catches about 94% of risky conversations with the right category. On text written by models it never saw, that drops to roughly 63-68%. We publish the gap rather than hide it.
Correct-category catch rate, same chats, same 8-CPU node. Llama and Qwen3 sets were written by models neither system trained on.
On an 8-CPU node Horizon answers in a median of 747 ms and uses 2,601 MiB of memory, with a 1,017 MiB model file. Vigil, our newer research model, is faster but larger on disk.
Horizon writes its answer as text, so on unfamiliar chats about 10% of its answers can be malformed (0.5% on familiar ones). All evaluation data is synthetic, and neither model has been measured on real conversations. Horizon is a triage signal for parents, not a verdict.
Compare it with Vigil, explore the code on GitHub, or see the AI overview.