# Proton Integration

AetherDesk treats Proton as a bounded privacy/secrets lane.

The default integration is intentionally read-only:

- detect whether supported Proton CLIs are installed
- show safe command/reference patterns
- expose MCP reference tools
- avoid printing secret values into receipts, chat, logs, or exported artifacts

## Supported Proton Lanes

### Proton Pass CLI

Source: `https://protonpass.github.io/pass-cli/`

Useful capabilities:

- manage Proton Pass vaults and items from the terminal
- reference secrets with URI syntax:

```text
pass://vault/item/field
```

- inject secrets into environment variables or template files
- use SSH keys stored in Proton Pass through SSH agent integration

AetherDesk boundary:

- safe by default: status, docs, reference examples
- not safe by default: resolving and printing `password`, `token`, `private_key`, seed phrase, or other secret fields
- receipts must record the reference shape and operation status, not the resolved secret value

### Proton Drive CLI

Source: `https://proton.me/blog/proton-drive-cli`

Useful capabilities:

- authenticate
- list cloud filesystem paths
- upload/download/share files
- automate Drive workflows

AetherDesk boundary:

- safe by default: version/auth/list reference docs
- explicit user action required: upload, download, share, delete

### Proton VPN CLI

Source: `https://github.com/ProtonVPN/proton-vpn-cli`

Useful capabilities:

- connect to Proton VPN servers where the CLI is supported
- select country/city/server
- use Secure Core, P2P/Tor server filters, kill switch, NetShield, port forwarding, custom DNS, WireGuard, and related CLI features

AetherDesk boundary:

- safe by default: status/help/capability reference
- explicit user action required: connect, disconnect, or any network routing mutation

## AetherDesk Commands

```powershell
cd C:\Users\issda\AetherDesk
npm run proton:status
npm run proton:pass
npm run proton:drive
npm run proton:vpn
```

## MCP Tools

- `proton_status`
- `proton_pass_reference`
- `proton_drive_reference`
- `proton_vpn_reference`

These tools return JSON reference/status payloads. They do not retrieve vault items or print secret fields.

## Design Rule

Use Proton references as pointers, not payloads:

```text
GOOD: receipt says "used pass://Work/API Token/token"
BAD: receipt contains the resolved token value
```

This keeps AetherDesk useful for local workflows without turning the desktop, MCP, or receipts into a secret exfiltration surface.
