No Castles backend
OAuth and Gmail API traffic goes directly between the local Castles process and Google. Castles operates without a hosted application server.
Local Gmail relationship discovery
Castles is a local command-line application. It reads an explicitly authorized Gmail mailbox, derives privacy-minimized relationship findings, and keeps those findings on your device.
A deliberately small boundary
OAuth and Gmail API traffic goes directly between the local Castles process and Google. Castles operates without a hosted application server.
Message headers, visible text, and links are processed in bounded memory. Raw messages, subjects, bodies, and complete URLs are not stored by Castles.
Privacy-minimized signals and findings are saved in a local SQLite database. Castles has no analytics, advertising, telemetry, or automatic uploads.
The public onboarding goal
127.0.0.1 for the protected desktop callback.Current availability: public no-file onboarding is undergoing Google verification and is not yet available. Stable version 0.1.2 remains intended for advanced users who explicitly supply their own Google desktop OAuth client.
Current stable release
On Linux or macOS, the verified installer requires Bash, curl, uv, and a local Python 3.12 or newer. It pins and verifies the release wheel and does not run setup or access Gmail.
Prefer to inspect it first? Download the bootstrap, review it, then run it with Bash.
curl -fsSL https://castles.luigiverona.dev/install | bash
castles logout removes saved Castles authorization from the local device. You can separately revoke the Google grant in your Google Account and delete local findings or exports whenever you choose.