Privacy Tools Guide

Choose Proton Drive for better CLI integration and API support, making it ideal for developers and automation-heavy workflows. Choose Internxt for lower pricing and slightly faster upload speeds. Both offer equivalent zero-knowledge encryption (AES-256/ChaCha20-Poly1305), so the decision comes down to your workflow: Proton for developers needing CLI/API access, Internxt for cost-conscious users prioritizing raw performance.

Architecture and Encryption Models

Both services market themselves as zero-knowledge encrypted cloud storage, but their implementations differ in important ways.

Proton Drive uses AES-256-GCM for file encryption with RSA-2048 for key derivation. The client generates a master key from your password using Argon2id, then derives encryption keys for each file. The server never sees your master password or plaintext keys. Proton’s encryption library is open-source, allowing independent verification of their claims.

Internxt employs XChaCha20-Poly1305 for file encryption with Argon2id for key derivation. Their architecture stores encryption keys separately from encrypted data, and each file gets a unique encryption key. Internxt also publishes their client code as open source.

Key Derivation Comparison

Both use Argon2id, but with different parameters that affect security and performance:

# Proton Drive key derivation (simplified conceptual model)
# Client-side only - password never transmitted
master_key = Argon2id(password, salt, time_cost=3, memory_cost=64MB, parallelism=4)

# Internxt key derivation
# Also client-side with similar parameters
encryption_key = Argon2id(password, salt, time_cost=2, memory_cost=128MB)

The memory cost difference affects resistance against GPU-accelerated brute force attacks. Higher memory usage makes parallelized attacks more expensive.

API Access and Developer Integration

For developers, API availability often determines whether a service fits into automated workflows.

Proton Drive API

Proton provides a REST API through their ProtonMail/ProtonID authentication system. The API supports:

// Proton Drive API authentication example
const protonAuth = async () => {
  const response = await fetch('https://api.protonmail.ch/auth/v4', {
    method: 'POST',
    headers: { 'Content-Type': 'application/json' },
    body: JSON.stringify({
      Username: 'your-email@protonmail.com',
      Password: 'your-password'
    })
  });

  const { AccessToken, RefreshToken } = await response.json();
  return AccessToken;
};

The API documentation exists but lacks extensive examples for complex automation scenarios. Rate limits apply, and heavy usage requires a paid plan.

Internxt API

Internxt offers a more developer-focused API with clearer documentation. Their API supports:

// Internxt API file upload example
const internxtUpload = async (token, fileData) => {
  const response = await fetch('https://api.internxt.com/v1/storage/file', {
    method: 'POST',
    headers: {
      'Authorization': `Bearer ${token}`,
      'Content-Type': 'application/octet-stream'
    },
    body: fileData
  });

  return await response.json();
};

Internxt provides API keys separate from account credentials, which simplifies building integrations without exposing your main account.

CLI Tools and Command-Line Usage

Power users often prefer CLI tools for batch operations and scripting.

Proton Drive CLI

No official CLI exists for Proton Drive. The community maintains protondrive-cli, but it requires careful review before production use:

# Community CLI installation (verify before use)
npm install -g protondrive-cli

# Basic operations
pd list
pd upload ./local-folder /remote-folder
pd download /remote-file ./local-path

The lack of an official CLI limits automation possibilities for Proton users.

Internxt CLI

Internxt provides an official command-line tool:

# Install Internxt CLI
npm install -g @internxt/cli

# Authenticate
internxt-cli login

# File operations
internxt-cli files:list
internxt-cli files:upload ./backup.zip /backups/
internxt-cli files:download /documents/report.pdf ./

# Sync local folder with cloud
internxt-cli sync ./local-folder /remote-folder

The official CLI supports batch operations, scheduled syncs, and exclusion patterns—useful for automated backup scripts.

Pricing Structure

Both services offer free tiers with different limitations:

Proton Drive:

Internxt:

Internxt’s lifetime plans appeal to users who prefer one-time payments over subscriptions. However, consider the implications of long-term data storage with any provider.

Performance and Sync Behavior

Performance depends heavily on your location and network conditions.

Proton Drive’s sync client uses a selective sync model. Initial sync can be slow due to encryption overhead, but subsequent syncs only upload changed blocks. The desktop client remains in active development, with improvements in version 2026.x.

Internxt’s sync engine uses file-level encryption rather than block-level, which means re-uploading entire files on modification. For large files that change frequently, this increases bandwidth usage. Their desktop client supports:

# Example: Bandwidth limiting with Internxt CLI
internxt-cli config set --upload-limit 5000 --download-limit 10000
# Limits in KB/s

Security Features Comparison

Feature Proton Drive Internxt
Zero-knowledge Yes Yes
Open-source clients Yes Yes
Two-factor authentication Yes (TOTP) Yes
File recovery Via recovery phrase Via recovery key
Data residency Switzerland EU (Spain)
Encryption at rest AES-256-GCM XChaCha20-Poly1305

Both services provide zero-knowledge encryption, but their approaches to key recovery differ. Proton uses a recovery phrase generated during account creation, while Internxt provides a downloadable recovery key.

When to Choose Each Service

Proton Drive suits users already in the Proton ecosystem (ProtonMail, ProtonVPN), those for whom Swiss jurisdiction matters, and anyone who needs email integrated with storage or prefers a longer-established provider. Internxt is the better fit if CLI automation is a priority, the larger free tier matters for testing, XChaCha20 performance is relevant to your platform, or you prefer one-time lifetime pricing over a subscription.

Automation Example: Encrypted Backup Script

Here’s a practical example comparing both services for automated backups:

#!/bin/bash
# Example backup script structure (adapt for each service)

# For Internxt - using their CLI
backup_to_internxt() {
  tar -czf - ./data | gpg -c --symmetric | \
  internxt-cli files:upload - /backups/$(date +%Y%m%d).tar.gz.gpg
}

# For Proton - more complex due to no official CLI
backup_to_proton() {
  tar -czf - ./data | gpg -c --symmetric > ./temp-backup.tar.gz.gpg
  # Would require webdav mount or manual upload
  rm ./temp-backup.tar.gz.gpg
}

The script demonstrates that Internxt’s CLI enables more straightforward automation.

Built by theluckystrike — More at zovo.one