Supported Providers
- GitHub Gist - Free, version-controlled sync using GitHub’s private gists
- Google Drive - Sync to your Google Drive account
- Microsoft OneDrive - Sync to your OneDrive personal account
- WebDAV - Self-hosted or third-party WebDAV servers (Nextcloud, ownCloud, etc.)
- S3-Compatible Storage - Amazon S3, MinIO, Backblaze B2, Wasabi, and other S3-compatible services
Security Architecture
Zero-Knowledge Encryption
All sync operations use AES-256-GCM encryption with PBKDF2 key derivation:- Master Password - You create a master password that never leaves your device
- Key Derivation - PBKDF2 with 600,000 iterations derives an encryption key from your password
- Local Encryption - All data is encrypted locally before upload
- Cloud Storage - Only encrypted ciphertext is stored in the cloud
- Local Decryption - Data is decrypted only on your devices with your master password
What Gets Synced
The following data is included in encrypted sync:- SSH hosts and connection details
- SSH keys and identities
- Snippets and shortcuts
- Port forwarding rules
- Known hosts
- Custom groups
- Settings (themes, fonts, keybindings)
Security States
- NO_KEY - No master key configured, sync disabled
- LOCKED - Master key exists but vault is locked
- UNLOCKED - Vault unlocked, sync operations allowed
Setup Instructions
GitHub Gist Sync
GitHub uses device flow authentication for secure, browser-based login.- Open Settings → Cloud Sync
- Click Connect next to GitHub
- Copy the device code shown
- Click Open GitHub to visit the authorization page
- Paste the device code and authorize Netcatty
- Return to Netcatty - connection completes automatically
- Netcatty creates a private gist named “Netcatty Encrypted Vault”
- Your encrypted data is stored in
netcatty-vault.json - You can view the gist (encrypted ciphertext only) at github.com/gists
Google Drive Sync
Google Drive uses OAuth 2.0 with PKCE for secure authentication.- Open Settings → Cloud Sync
- Click Connect next to Google Drive
- Sign in with your Google account in the browser window
- Grant Netcatty permission to create files
- Connection completes automatically
- Netcatty creates
netcatty-vault.jsonin your Google Drive - Only this file is accessible to Netcatty (restricted scope)
- File updates are versioned by Google Drive
OneDrive Sync
OneDrive uses Microsoft’s OAuth 2.0 for personal accounts.- Open Settings → Cloud Sync
- Click Connect next to OneDrive
- Sign in with your Microsoft account
- Grant Netcatty file access permission
- Connection completes automatically
- Netcatty creates
netcatty-vault.jsonin OneDrive root - Only Netcatty has access to this specific file
- OneDrive provides automatic version history
WebDAV Sync
WebDAV works with self-hosted servers like Nextcloud, ownCloud, or any WebDAV-compatible service.Configuration Fields
Setup Steps
- Open Settings → Cloud Sync
- Click Connect next to WebDAV
- Enter your WebDAV server details:
- Endpoint:
https://cloud.example.com/remote.php/dav/files/username/(Nextcloud) - Auth Type: Choose Basic, Digest, or Token
- Credentials: Username/password or access token
- Endpoint:
- Click Test Connection
- Click Save to enable sync
S3-Compatible Storage
Works with Amazon S3, MinIO, Backblaze B2, Wasabi, and other S3-compatible providers.Configuration Fields
Setup Steps
- Create an S3 bucket (or equivalent) in your provider
- Create an access key with read/write permissions for the bucket
- Open Settings → Cloud Sync in Netcatty
- Click Connect next to S3
- Enter your configuration:
- Endpoint: Provider’s S3 endpoint URL
- Region: Bucket region
- Bucket: Bucket name
- Access Key ID: Your access key
- Secret Access Key: Your secret key
- Prefix (optional): Folder path within bucket
- Click Test Connection
- Click Save to enable sync
Sync Operations
Manual Sync
- Click the Sync button in the toolbar
- Netcatty checks all connected providers for updates
- If remote version is newer, you’ll be prompted to download
- If local version is newer, changes are uploaded
- All connected providers are updated simultaneously
Auto-Sync
Enable automatic background sync:- Open Settings → Cloud Sync
- Enable Auto-sync
- Set sync interval (1-60 minutes, default: 5 minutes)
- Netcatty syncs automatically while unlocked
Conflict Resolution
When sync detects a conflict (both local and remote have changes):- Sync pauses and shows a conflict dialog
- You can choose:
- Use Remote - Download cloud data, overwrite local changes
- Use Local - Upload local data, overwrite cloud changes
- Version metadata helps you decide:
- Device name that made the change
- Timestamp of last update
- Version number
Sync File Format
The encrypted vault file structure:- meta - Plaintext metadata for version control and sync logic
- payload - Encrypted JSON containing all your hosts, keys, and settings
Multi-Device Usage
First Device Setup
- Set up master password
- Connect to one or more cloud providers
- Netcatty uploads your encrypted vault
Additional Devices
- Install Netcatty
- Set up the same master password
- Connect to the same cloud provider(s)
- Click Sync to download your vault
- Enter your master password to decrypt
Provider Management
Disconnect Provider
- Open Settings → Cloud Sync
- Click Disconnect next to the provider
- Confirmation dialog appears
- Provider is removed from sync rotation
- Note: This does NOT delete your cloud data
Delete Cloud Data
GitHub Gist:- Visit github.com/gists
- Find “Netcatty Encrypted Vault”
- Delete the gist
- Open your cloud storage
- Find and delete
netcatty-vault.json
- Use your provider’s interface to delete
netcatty-vault.json - Or use the Delete Cloud Data button in Netcatty settings (if available)
Troubleshooting
”Vault is locked” Error
- Unlock the vault with your master password before syncing
- Auto-sync only works when the vault is unlocked
”Provider not connected” Error
- Re-authenticate with the provider
- Check network connectivity
- Verify credentials for WebDAV/S3
Conflict on Every Sync
- Ensure all devices use the same master password
- Check system clocks are synchronized
- Try “Use Remote” once to reset, then sync normally
”Access denied” on S3/WebDAV
- Verify bucket/endpoint permissions
- Check access key has read/write access
- For S3: ensure bucket policy allows your key
- For WebDAV: verify path exists and is writable
Sync File Not Found
- Normal on first connection
- Netcatty creates the file on first upload
- For S3: ensure bucket exists
- For WebDAV: ensure base path is accessible
Best Practices
- Use Strong Master Password - It’s the only thing protecting your data
- Enable Multiple Providers - Redundancy in case one provider fails
- Enable Auto-Sync - Keeps all devices up to date automatically
- Regular Backups - Export your vault separately for disaster recovery
- Secure Credentials - Store S3/WebDAV credentials in a password manager
- Monitor Sync Status - Check sync history for any errors
- Test Recovery - Verify you can restore from cloud on a fresh device
Privacy & Security
- Zero-Knowledge: Your master password never leaves your device
- End-to-End Encryption: Data is encrypted before leaving your computer
- No Backdoors: Encryption keys are derived from your password only
- Provider Agnostic: Cloud providers only see encrypted ciphertext
- Open Source: Encryption implementation is auditable
- A JSON file named
netcatty-vault.json - Encrypted binary data (base64-encoded ciphertext)
- File size (approximate number of hosts/keys)
- Update timestamps (when you sync)
- Your hostnames, IP addresses, or usernames
- Your SSH keys or passwords
- Your snippets or commands
- Any settings or preferences
- Your master password
