technical paper · v1.5.0 · on-device

How OffRecord AI Journal
actually works.

A deep technical breakdown of the on-device AI pipeline behind Friday. Nine Apple frameworks. Zero third-party SDKs. No cloud calls. Every layer — capture, transcription, NLP, personality modeling, storage — runs on your phone.

0 network calls for AI 9 Apple frameworks AES-256-GCM backups Neural Engine inference Data Not Collected
§01

Architecture overview.

pipeline

Every piece of data in OffRecord AI Journal flows through a pipeline that runs entirely on the device. There are zero network calls for AI processing. Here is the full system architecture.

INPUT Microphone ─▶ AVAudioEngine · AAC 44.1kHz │ ▼ TRANSCRIPTION SpeechAnalyzer (SpeechTranscriber → DictationTranscriber) │ iOS 26 · on-device models ▼ NLP ANALYSIS NLTagger ─▶ sentiment · NER · POS · language ID │ ▼ PERSONALITY MODEL FridayAssistantEngine ├▶ CommunicationStyle (TTR, formality, directness) ├▶ EmotionalSignature (valence, arousal, dominance) ├▶ PersonalKnowledgeGraph (entities + emotional weights) └▶ FridayPredictions (temporal patterns, forecasts) │ kept in a protected local file · never synced ▼ STORAGE (journal entries) Core Data ─▶ NSPersistentCloudKitContainer │ │ ▼ ▼ Local SQLite iCloud (optional, encrypted) │ ▼ PRESENTATION SwiftUI ─▶ WidgetKit │ AppIntents · Siri

The key constraint: data never leaves the device for processing. Transcription runs on the Neural Engine. NLP runs locally. Friday is computed on the device and kept in a local folder that never syncs. The language model is Apple's on-device SystemLanguageModel, never Private Cloud Compute. The only optional network path is Apple's iCloud sync, which the user can turn off.

§02

The on-device stack.

apple.frameworks[]

OffRecord AI Journal uses nine Apple frameworks to build a full AI pipeline without any third-party dependencies or server-side processing.

Sp
SHIPPED

SpeechAnalyzer

Speech.framework

The production transcription stack. SpeechTranscriber handles the primary accuracy path and DictationTranscriber extends locale coverage with the same on-device analyzer.

  • On-device models only, with no fallback to server recognition
  • Input: AAC audio at 44.1 kHz via AVAudioEngine
  • 60+ languages with on-device models
  • Real-time partial results for live feedback
  • Runs on Apple Neural Engine
Js
SHIPPED

Journaling Suggestions

JournalingSuggestions · iPhone

Apple's picker offers moments from your recent days. OffRecord gets only the suggestion you pick.

  • The picker is system UI; OffRecord sees nothing until you pick
  • Keeps the suggestion's prompt and attaches up to 5 of its photos
  • iPhone only
Nl
SHIPPED

NLTagger

NaturalLanguage.framework

The core NLP engine that extracts meaning from transcribed text. Runs multiple analysis passes per entry.

  • Sentiment scoring — sentence-level valence −1.0 → +1.0
  • Named Entity Recognition — people, places, organisations, dates
  • Part-of-Speech tagging — verb density, adjective richness
  • Language ID — auto-detect entry language
  • All tag schemes use on-device CoreML models
Ne
SHIPPED

NLEmbedding

sentence vectors · SQLite FTS5

Sentence vectors for search by meaning, combined with word matching, and the retrieval layer behind Friday's citations.

  • Sentence embeddings per passage of an entry
  • Cosine similarity plus SQLite FTS5 word matching
  • Feeds Friday's evidence retrieval and citations
  • Index kept on the device, never synced, rebuildable from Settings
  • Entries kept out of Friday are never indexed
Fm
SHIPPED

Foundation Models

SystemLanguageModel · on-device only

Apple's on-device language model phrases Friday's chat, entry titles, Go Deeper questions, and Weekly Reflection wording when Apple Intelligence is available.

  • LanguageModelSession: one session per chat, keeping a window of recent turns
  • Tool calling: three journal tools (searchJournal, moodStats, person); Friday cites only entries they returned
  • @Generable structured output
  • Every answer passes a validator (voice, clinical terms, risk, grounding) before it shows, so answers aren't streamed
  • Never Private Cloud Compute; deterministic wording when the model isn't available
Cd
SHIPPED

Core Data + CloudKit

NSPersistentCloudKitContainer

Local-first persistence with optional encrypted cloud sync across devices.

  • SQLite wrapped by NSPersistentCloudKitContainer
  • Local-first: app works fully offline
  • Model version 3 adds tags, journals, and Keep Out of Friday
  • Friday's profile lives in a local file, not Core Data, and never syncs
  • iCloud sync uses Apple's encrypted infrastructure
  • Sync is optional — user can disable entirely
Ck
SHIPPED

CryptoKit

AES-256-GCM

Military-grade encryption for backup exports and sensitive data at rest.

  • AES-256-GCM authenticated encryption for backups
  • User passphrase for key derivation
  • Encrypted JSON export for device migration
La
SHIPPED

LocalAuthentication

Face ID · Touch ID · LAContext

Biometric authentication gating access to journal entries.

  • Face ID and Touch ID via LAContext
  • Biometric keys held in the Secure Enclave
  • App lock with configurable auto-lock timeout
  • Falls back to device passcode
Wk
SHIPPED

WidgetKit + AppIntents

Home · Lock · Siri Shortcuts

Home & Lock-screen widgets. AppIntents-powered Siri Shortcuts for hands-free entries.

  • Mood and streak widgets
  • Hands-free voice entry via Siri
  • AppIntents make Siri aware of OffRecord AI Journal operations
  • Apple's journal schemas for Create Entry, Create Audio Entry, and Search; the entry entity carries no text
  • Ask Friday in Siri answers with a summary only
§03

The Friday Engine.

model card

The FridayAssistantEngine is a custom personality-modeling system that builds a multi-dimensional profile of the user from their voice journal entries. It uses no external models or APIs. The entire model is computed from NLTagger output and saved as JSON in a protected local file that never syncs.

FridayAssistantEngine v1.1 · SHIPPED
storage: local file, never synced · network: 0 rpc
Architecture
rule-based + NLP
NLTagger signals feed four sub-models. No external ML weights required.
Update cadence
rebuilt on change
When the journal changes, the profile is relearned from every entry, so edits and deletes count.
Inputs
transcript · sentiment · NER
Text, valence score, detected entities, timestamp, audio metadata.
Outputs
personality · predictions
Traits, mood forecast, trigger topics, entity–emotion graph.

The engine consists of four interconnected sub-models.

CommunicationStyle

STYLE

How the user expresses themselves. Updated with each entry.

  • Type-Token Ratio (vocabulary richness)
  • Expressiveness score (0 – 1)
  • Directness score (0 – 1)
  • Formality score (0 – 1)
  • Signature words + frequency map
  • Average sentence length
  • Pronoun patterns (I vs we)

EmotionalSignature

EMOTION

The user's emotional baseline and patterns over time.

  • Valence baseline (positive / negative)
  • Arousal baseline (energy level)
  • Dominance baseline (control feeling)
  • Morning vs evening mood patterns
  • Weekday vs weekend patterns
  • Trigger topics with correlation scores
  • Emotional volatility index

PersonalKnowledgeGraph

GRAPH

A network of people, places, and topics with emotional weights.

  • NER-extracted entities (person, place, org)
  • Emotional weight per entity (−1 → +1)
  • Mention frequency over time
  • Co-occurrence relationships
  • Entity–mood correlation tracking
  • Topic clusters from entity groupings

FridayPredictions

PREDICT

Forecasts based on temporal pattern analysis.

  • Day-of-week mood forecasting
  • Time-of-day emotional patterns
  • Trend direction (improving / declining)
  • Seasonal pattern detection
  • Trigger anticipation from schedule
  • Confidence scores per prediction
Storage model: all four sub-models are Swift Codable structs saved as one JSON file in Application Support/FridayLocal, written with complete file protection and excluded from device backups. The file never syncs; each device rebuilds the profile from your entries. Turning Friday off, or Erase All Data, deletes the folder.
§04

Privacy architecture.

zero cloud

Privacy is not a feature of OffRecord AI Journal. It is the architectural constraint every technical decision is built around. The system is designed so that private data physically cannot leave the device for processing.

Zero network processing

Every AI operation runs on the device. Transcription uses SpeechAnalyzer's on-device models. NLTagger runs locally. Friday's profile is computed on the device and kept in a local file that never syncs. The language model is Apple's on-device SystemLanguageModel, never Private Cloud Compute. There are no API calls, no cloud functions, no telemetry on journal content.

No third-party SDKs

OffRecord AI Journal contains zero third-party dependencies for core functionality. No analytics SDKs. No crash reporting that sends journal content. No ad networks. The only external code is Google Analytics on this website (not in the app) and Apple's own frameworks.

Apple's "Data Not Collected"

OffRecord AI Journal carries Apple's "Data Not Collected" privacy label on the App Store. This is the strictest category — the app collects no data, linked or unlinked to the user's identity.

Cloud AI journal vs OffRecord AI Journal

typical cloud AI journal OffRecord AI Journal
audio processingsent to cloud serverson-device Neural Engine
AI model locationremote API (OpenAI etc)Apple on-device models
text analysiscloud NLP serviceNLTagger (local)
data storagecompany serversCore Data · SQLite on device
account requiredyes (email, password)no
third-party SDKsanalytics, crash, adsnone
privacy label"Data Linked to You""Data Not Collected"
works offlinenoyes, fully
subscription$5–15 / monthfree
who can read your journalcompany, employees, sub-processorsonly you
§05

Technical roadmap.

build log

Where OffRecord AI Journal has been, what's being built now, and where it's going. Each version adds a layer to the on-device AI stack.

✓
Shipped · v1.0

Voice journaling + on-device AI

Core voice journaling with fully on-device transcription, NLP, encrypted storage, biometric lock, widgets, Siri Shortcuts.

SpeechAnalyzerSpeechTranscriberNLTaggerCore DataCryptoKitWidgetKitAppIntents
✓
Shipped · v1.1

Friday + personality model

Custom FridayAssistantEngine with communication style, emotional signature, knowledge graph, and temporal mood forecasting.

FridayAssistantEngineCommunicationStyleEmotionalSignaturePersonalKnowledgeGraphFridayPredictions
✓
Shipped · v1.2

Talk to Friday + social sharing

FridayChatView with pattern-matched query system. ShareablePersonalityCardView renders at 3× for Instagram Stories and X. Review prompts via SKStoreReviewController at milestone entries.

FridayChatViewShareablePersonalityCardViewSKStoreReviewControllerUIActivityViewControllerImageRenderer
✓
Shipped · v1.3

Search by meaning + evidence-based Friday

NLEmbedding sentence vectors with SQLite FTS5 word matching. Friday retrieves entries before answering and cites them, or says the journal doesn't support an answer.

NLEmbeddingCosine SimilarityFTS5Citations
✓
Shipped · v1.4

Apple Watch Quick Capture

Fast wrist capture for moods, short dictated thoughts, voice notes, and recent save status. The watch saves first, the iPhone remains the full journal, and watch face surfaces stay private.

Apple WatchQuick CapturePrivacy-safe widgetsSaved first
✓
Shipped · v1.5

Friday on-device, privacy controls, and the Mac

Apple's on-device model with three journal tools, generated titles, Go Deeper questions, and Weekly Reflection wording, all checked before they show. Keep Out of Friday, the Friday switch, and Erase All Data. Month and Year in Review, Session Prep, tags, journals, people pages, importers, Siri journal schemas, Journaling Suggestions, sync status, and a Mac app through Mac Catalyst.

Foundation ModelsTool Calling@GenerableApp Intents journal schemasJournalingSuggestionsMac Catalyst
→
Next

Device QA, then open ideas

Siri, Journaling Suggestions, live iCloud sync, the Mac app, and on-device model quality checked on real hardware. After that: monthly “You tend to…” lines with sources, how moods and themes change across months, and an open export of what Friday learned.

Device QAMonth in ReviewOpen export
○
Not planned

LoRA fine-tuning, Friday in your voice, and personality scores

A personal adapter would mean exporting journal text for training, and the on-device model with journal tools already grounds Friday in your entries. Friday stays a labeled AI rather than speaking in your voice, doesn't predict how you'd react, and doesn't score Big Five traits.

No LoRANo Personal VoiceNo Big Five
§06

Research context.

related work

OffRecord AI Journal exists at the intersection of on-device LLMs, personal AI, and mental-health technology. Several recent research papers explore adjacent ideas.

  1. [1] 2026
    Memory-Efficient Structured Backpropagation for On-Device LLM Fine-Tuning
    Efficient fine-tuning under mobile memory constraints. Background only: OffRecord doesn't fine-tune models.
  2. [2] 2025
    MoPHES: On-Device LLMs for Mobile Psychological Health
    Using on-device LLMs for psychological health applications — parallel to Friday's emotional modelling.
  3. [3] 2024
    PocketLLM: On-Device Fine-Tuning for Personalized LLMs
    Personal model adaptation on mobile hardware. Background only: OffRecord doesn't train personal adapters.
  4. [4] 2023
    PLMM: Personal Large Language Models on Mobile Devices
    Early architecture proposal for personal LLMs running on phones — the direction OffRecord AI Journal pursues.
What makes OffRecord AI Journal different: no existing paper covers OffRecord AI Journal's specific combination — a private Friday built from voice journal data using on-device NLP (NLTagger, NLEmbedding) plus Apple Foundation Models. The combination of voice-first input, personality modelling from NER/sentiment, and on-device LLM generation with tool calling for autonomous retrieval is a novel architecture. To our knowledge, OffRecord AI Journal is the first app to attempt this full pipeline privately on-device.
§07

Open source.

auditable

OffRecord AI Journal is open source. The full codebase — FridayAssistantEngine, all NLP processing, the Core Data stack, the SwiftUI interface — is on GitHub.

Privacy-critical software should be auditable. If you claim data never leaves the device, people should be able to verify that claim by reading the code.

Build with us.

OffRecord AI Journal is open source and contributions are welcome — improving the Friday engine, the Foundation Models integration, and translations.

View on GitHub
install · $0 · no account

Try OffRecord AI Journal.

Free. Private. No account needed. All AI runs on your device.

Download free on the App Store →