Privacy
A private AI browser for iPhone, with the limits written down.
Peji runs the browser, the files and the dictation on your iPhone. The model is remote, and the request that reaches it carries only what the answer needs. This page says what stays, what travels and what no server keeps.
Where each thing lives
Most privacy pages describe a policy. This one describes the places. Each row is a place where a piece of your data can be, and the only people who can read it there.
| Place | What stays there | Who can read it |
|---|---|---|
| Your iPhone | Chats, attachments, routines, settings, tabs, downloaded files, recorded audio until it is transcribed | You, and the apps you give access to with iOS |
| The iOS Keychain | API keys and session tokens, marked this device only | Only this iPhone; they never enter a chat, a backup or a log |
| Your iCloud Drive | The backup you choose to create, in your own container | You and Apple; Peji holds no key and cannot open it |
| The Peji server, with the built-in provider | Account, session hashes, code hashes, daily token counters, plan and subscription | Peji, as described below |
| The model provider, while it answers | The request: your message, the page text and images the agent read, the files it opened | Inference.net for text and Runware for pictures, both with zero data retention |
| The model provider, with your own endpoint | The request goes straight to the endpoint you configured | The provider you chose; the Peji server receives nothing |
What the Peji server keeps, and what it does not
With the built-in provider every request passes through the Peji server, because that is where the monthly usage is counted before the request goes on to the model. Forwarding is not keeping: the server writes no message, page, image, tool result or answer to its database, and no log line carries the body of a request. The logs hold the upstream status and the byte count.
Two tests in the repository prove it on the paths that matter: the chat proxy and the picture route. Both check that the text and the bytes never reach the database or the log.
- Kept: the account, the email, the hashed sessions and verification codes, the daily token and cost counters, the plan.
- Kept: the subscription status it reads from RevenueCat, so it can give you Pro.
- Not kept: the message text, the answers, the page text, the tool results.
- Not kept: the images the agent looked at, the pictures it generated, the files it read.
- Not kept: cookies, browsing history, the sites you visited.
Zero data retention at the model providers
The server forwards to inference.net for text and to Runware for pictures. Both accounts run with zero data retention turned on: they answer the request and keep no copy of it, and no operator there reads it. Any provider or model added later has to work the same way to be allowed in.
A script in the repository checks the setting against the live key for every model the app can use, so the claim is tested and not just written.
Your own endpoint, and a server that never hears from you
The second way to power the assistant is your own endpoint: any address that speaks the OpenAI chat completions format with streaming and tool calls. The key stays in the Keychain and the request leaves the iPhone for your provider. The Peji server receives nothing, not the request, not the answer, not a counter.
The same is true of the browser itself. Opening a page, switching tabs, downloading a file: those are WebKit calls on your phone. No Peji account is needed for any of it.
What actually runs on the iPhone
The word private is doing a lot of work in this category, so here is the honest split. Peji is not an on-device model. The browser, the stored chats, the files, the routines and the dictation run on the iPhone; the model that writes the answers runs on a server, because an iPhone cannot hold the model the agent needs for this job.
Dictation is the one model that does run locally: Whisper base, about 150 MB of weights, downloaded once and verified by size and SHA-256. The recording is a temporary file, deleted after the transcription. The text goes into the message field and waits for you to send it.
What you can switch off
- The built-in provider: use the browser without an account, and the chat stays off until you add an endpoint.
- The ad blocker: an extension you download yourself, off until you ask for it, and removable, which unloads it.
- Dictation: off until you download the model, and you can remove it.
- The account and everything on the server: deleting it from the app removes the account, its sessions and its counters. Chats stay on the iPhone until you delete them, and the subscription is cancelled in your Apple ID settings.
- The website: no cookies, no advertising identifier. The pageviews are counted with Plausible on our own server, and blocking the script leaves the page working.
Questions
Is Peji an on-device AI browser?
No. The browser, the chats, the files and the dictation run on the iPhone, and the language model runs on a server. An iPhone cannot hold a model that can drive a browser across tabs. We say remote, so nobody downloads the app expecting an offline agent.
Does the Peji server read my messages?
The server receives a request to forward it, counts the tokens for your monthly usage and passes it on. It writes no message, page, image or answer to its database, and the logs keep the status code and the byte count, not the body. Two tests in the repository check that these two paths store nothing.
Where do my chats go when the app closes?
Nowhere. Chats are JSON files in the app folder on the iPhone, and attachments are files next to them. They leave the iPhone only if you create an iCloud backup, which goes to your own private container, or if the agent reads a file in a request to the model.
Can I use Peji without a Peji account?
Yes. Add your own OpenAI-compatible endpoint and the key stays in the Keychain. The Peji server receives nothing, the browser works the same and no subscription is needed.
What happens when I delete my account?
The account, its sessions and its usage counters are removed from the server. Chats, attachments and settings stay on the iPhone until you delete them in Settings, and the subscription stays active until you cancel it in your Apple ID settings, because Apple manages it.
Does this website track me?
It counts pageviews with Plausible, running on our own server in the European Union, without cookies and without a persistent identifier. The full list of what it records is in the privacy policy.