Pallm

Devices and privacy

How your phone reaches your Mac, what's stored where, and who can see what.

Pallm has no servers of its own and no accounts. Your chats, memory and files live on your host Mac, and your devices keep a copy so they can show your chats offline.

How the connection works

Your devices reach the Mac over an encrypted WireGuard tunnel, built into Pallm. You don’t install a VPN profile, open ports on your router, or sign up for anything.

  • Pairing gives each device its own key. The Mac only accepts keys it has paired; anything else can’t even begin a connection.
  • Direct when possible. Pallm finds a direct path between your device and Mac, even across networks, behind most home routers.
  • Relayed when not. Some networks block direct paths. Then traffic goes through a relay run by Tailscale. The relay passes along encrypted packets: it sees the two devices’ internet addresses and when they talk, never what they say. Tap the connection light in Pallm to see whether you’re direct or relayed.

Removing a device in Settings › Devices cuts it off at once.

What’s stored where

WhatWhere
Chats, projects, files, memory, soulYour host Mac, in ~/.pallm
A copy of your chats, for offline readingEach paired device
Model server and GitHub keysYour host Mac only
Speech you dictateTurned into text on the device you speak to
Calendar, reminders and Health dataRead on your phone, and only the answer is sent (more)

What leaves your Mac

Only what you ask for:

  • Web searches and page reads, when a chat needs them. Searches go to DuckDuckGo unless you choose another search engine.
  • Notifications, through Apple’s push service. They say “Reply ready” and similar, never what a reply says.
  • Model requests, if you add a model server outside your Mac. Pallm sends nothing to any AI company otherwise.
  • GitHub, when you approve a commit in an agent session.

Pallm has no analytics and no tracking.

Running your own relay

If you’d rather no outside relay ever carried your traffic, even encrypted, you can run your own DERP relay and point Pallm at its map in ~/.pallm/config.toml on the host:

[transport]
relay_map_url = "https://relay.example.com/derpmap.json"