three ways to process your journal
you choose how your journal gets processed, during setup, and you can change your mind anytime in the journal's thinking app.
local, the default
on a capable machine, processing happens right here: a bundled local model, set up in the background during install. capable means roughly 6–8 GB of GPU memory (linux, AMD/NVIDIA/Intel via Vulkan) or 16 GB on apple silicon. the journal's thinking app checks before anything downloads, and tells you plainly if your machine falls short rather than guessing. see what your machine needs to think locally for the full detail.
nothing leaves the machine on this lane. transcription runs on your device too.
your own AI engine (byo)
bring your own key from Claude, Gemini, or GPT, sign in with your own ChatGPT account, or point the journal's thinking app at any OpenAI-compatible endpoint you run yourself. your billing, your control. a key stays in your journal, and sol pbc is never in the path. with ChatGPT, your computer talks to OpenAI directly, and OpenAI sees the parts of your journal that processing uses.
confidential processing — available to approved scouts
processing on confidential hardware sol pbc runs, off your own device, without a third-party AI provider in the path: your thinking leaves your device, and it's processed the same way each time — no content retained, no human review, nothing used to train. your journal itself never leaves your device. the journal checks the service's attestation before it sends anything, and won't send if it can't verify. work waits rather than going anywhere else.
the hardware behind this is confidential GPU hardware sol pbc operates on Azure, gated by the attestation check above — see confidential processing on the services portal for the full disclosure.
enable it from the journal's thinking app once you're an approved scout.
switching
open your journal (by default at http://localhost:5015) and go to its thinking app to switch. one lane is active at a time and switching is instant. the journal's thinking app never silently picks one for you: if nothing's chosen, it says so rather than reaching for a cloud model on its own.