Skip to content

Privacy and security

  • Local. perch listens on 127.0.0.1 only. There’s no account and no cloud service in between.
  • Locked to you. Every page and request needs a key that only your own perch window has.
    • The Mac app reads it from a file only you can read.
    • A browser signs in through the one-time link npm start prints.
    • Other programs and other users on the Mac get nothing.
  • Reads:
    • the status record Claude Code keeps for each running session, and for Codex, which sessions its own background service has open;
    • the end of each running session’s transcript (for its title, branch, conversation and your last request);
    • your commands and skills (for the / menu), and the helper agents you’ve set up;
    • each folder’s git remote;
    • your pull requests, through gh.
  • Never reads login, key or credential files.
  • Changes nothing unless you ask. Outside its own folder it only writes what you ask for: the permission hook, the tasks note in each account’s CLAUDE.md / AGENTS.md, a permission rule you add, or a file you save with ⌘O. It keeps a copy of a settings file before its first change, and turning a switch off takes its change out.
  • Open source, MIT licensed. To report a problem privately, see SECURITY.md in the repo.

Everything lives in ~/.perch, readable only by you:

File What it is
config.json Your settings
names.json Names you gave sessions
open-sessions.json Which sessions were open, to offer reopening them after a restart (kept two weeks)
uploads/ Screenshots you attached (deleted after 30 days)
tasks/ Your tasks, one Markdown file each
phones.json, the Mac’s keys For pairing
session-key, hook-token The keys described above
terminal-log.txt When a phone opened or closed a terminal