Documentation CLI
Sharokey CLI est un outil en ligne de commande pour gérer les secrets chiffrés avec l'architecture Zero Knowledge.
Installation
# Download and configure
curl -L https://github.com/Sharokey/sharokey-cli/releases/latest/download/sharokey.exe -o sharokey.exe
sharokey config --token your_api_token_here
sharokey test
Commands
Command | Description | Example |
---|---|---|
create | Créer un secret chiffré | sharokey create "password" --hours 24 --views 1 |
list | Lister les secrets | sharokey list --limit 10 --status active |
get | Obtenir les détails d'un secret | sharokey get ABC123 |
delete | Expirer un secret (efface le contenu) | sharokey delete ABC123 |
stats | Afficher les statistiques | sharokey stats |
config | Configurer les paramètres | sharokey config --token TOKEN |
test | Tester la connectivité | sharokey test |
Secret Requests
Command | Description | Example |
---|---|---|
create-request | Créer une requête de secret | sharokey create-request --message "Share credentials" --secret-hours 24 --request-hours 48 --max-views 1 --locale fr |
list-requests | Lister les requêtes (plus récentes en premier) | sharokey list-requests --status active --limit 10 |
get-request | Obtenir les détails d'une requête | sharokey get-request abc123token456 |
delete-request | Expirer une requête (annule) | sharokey delete-request abc123token456 |
request-stats | Statistiques des requêtes | sharokey request-stats |
Parameters
Create Secret
Parameter | Description | Example |
---|---|---|
--hours | Heures d'expiration (1-1000) | --hours 48 |
--views | Vues maximum (1-10) | --views 3 |
--description | Description du secret (max 255 caractères) | --description "DB credentials" |
--message | Message pour le visualiseur (max 255 caractères) | --message "Use carefully" |
--password | Protection additionnelle (4-100 caractères) | --password "secret123" |
--captcha | Activer la vérification CAPTCHA | --captcha |
--otp-email | OTP par email (format email valide) | --otp-email [email protected] |
--otp-phone | OTP par SMS (format international) | --otp-phone +33674747474 |
--ip-whitelist | IPs publiques autorisées (max 255 caractères) | --ip-whitelist "203.0.113.5,198.51.100.10" |
--geolocation | Codes ISO pays autorisés (max 255 caractères) | --geolocation "FR,US,DE" |
--attach | Attacher des fichiers (max 10 fichiers, 10MB total) | --attach file.pdf --attach doc.docx |
Security Priority
Si plusieurs options de sécurité sont spécifiées, seul le niveau le plus élevé est appliqué :captcha
< password
< otp-email
< otp-phone
(le plus élevé)
Exemple : --password "secret" --captcha --otp-phone "+33123456789"
→ Seul l'OTP téléphone sera utilisé
Configuration
Parameter | Description | Example |
---|---|---|
--token | Token API (requis) | --token abcd1234... |
--timeout | Timeout de requête (5-300s) | --timeout 60 |
--logs-enabled | Activer la journalisation | --logs-enabled |
--log-level | Niveau de log (Debug, Information, Warning, Error) | --log-level Debug |
--show | Afficher la configuration actuelle | --show |
Output Format
Parameter | Description |
---|---|
--table | Tableau lisible par l'humain |
Default | Format JSON |
Examples
Basic Usage
# Simple secret
sharokey create "Database password: admin123" --hours 24 --views 1
# With description and message
sharokey create "API credentials" --description "Production API access" --message "Valid until project end" --hours 48 --views 3
# CAPTCHA protection
sharokey create "Server access" --captcha --hours 12 --views 1
# Password protection
sharokey create "Sensitive data" --password "mySecretPass123" --hours 6 --views 2
# OTP email protection (higher priority than password)
sharokey create "Bank details" --password "backup" --otp-email "[email protected]" --hours 24 --views 1
# OTP SMS protection (highest priority - will override all others)
sharokey create "Critical access" --password "backup" --captcha --otp-email "[email protected]" --otp-phone "+33674747474" --hours 2 --views 1
# IP restriction (public IPs only)
sharokey create "External access" --ip-whitelist "203.0.113.5,198.51.100.10" --hours 48 --views 10
# Geolocation restriction
sharokey create "EU only data" --geolocation "FR,DE,BE,IT,ES" --hours 72 --views 5
# Combined restrictions
sharokey create "Restricted access" --password "secure123" --ip-whitelist "203.0.113.100" --geolocation "FR,US" --hours 24 --views 2
# With attachments
sharokey create "Contract files" --attach contract.pdf --attach terms.pdf --description "Client XYZ documents" --hours 48 --views 5
# Multiple attachments with security
sharokey create "Confidential reports" --attach report.pdf --attach data.xlsx --attach summary.docx --password "reports2024" --ip-whitelist "203.0.113.50,198.51.100.25" --hours 168 --views 3
# Read from stdin
echo "Secret from command line" | sharokey create --hours 2 --views 1
cat credentials.txt | sharokey create --description "Server credentials" --password "access123" --hours 48 --views 1
Secret Requests
# Create request with email delivery (JSON output by default - direct API response)
sharokey create-request --message "Please share VPN credentials" --email-to [email protected] --email-reply [email protected] --request-hours 48 --secret-hours 24 --max-views 3 --locale fr
# Create request with table output
sharokey create-request --message "Share credentials" --email-to [email protected] --request-hours 24 --secret-hours 12 --max-views 1 --locale en --table
# Get request details by token (JSON by default - direct API response)
sharokey get-request abc123token456
# Get request details in table format
sharokey get-request abc123token456 --table
# List requests with filters (JSON by default - direct API response, most recent first)
sharokey list-requests --status active --limit 20
# List requests in table format (most recent first)
sharokey list-requests --status active --limit 20 --table
# Expire request by token (cancels and makes it inactive)
sharokey delete-request abc123token456
# View request statistics (JSON only - direct API response)
sharokey request-stats
# Request parameters: --secret-hours (1-1000), --request-hours (1-1000), --max-views (1-10)
# Email fields: --email-to and --email-reply (valid email format required)
# Locale: --locale (en or fr) - sets email language when sending notifications
# Limit returns most recent requests first (sorted by created_at desc)
Management
# List all secrets
sharokey list
# List with filters
sharokey list --status active --creator [email protected] --limit 20
sharokey list --status expired --limit 10
# JSON output (default)
sharokey list --limit 5
# Output: {"success": true, "count": 2, "secrets": [{"slug": "ABC123", "maximum_views": 1, ...}]}
# Table output (human-readable)
sharokey list --table --limit 5
# Output:
# slug description creator maximum_views current_views expiration
# -----------------------------------------------------------------------------------------
# ABC123 My test secret API 1 0 2025-08-08...
# List secrets with limit
sharokey list --limit 3
# Get secret details
sharokey get ABC123
# Expire secret (clears content, forces expiration)
sharokey delete ABC123
# Statistics
sharokey stats
Limits & Constraints
Content & Text
- Secret content : 255 caractères max (avant chiffrement)
- Description : 255 caractères max
- Message : 255 caractères max
- Password : 4-100 caractères
- IP whitelist : 255 caractères max (IPs publiques uniquement, séparées par des virgules)
- Geolocation : 255 caractères max (codes pays ISO)
Attachments
- Maximum files : 10 par secret
- Total size : 10MB pour tous les fichiers
- Supported formats : Documents (pdf, txt, docx, doc, xlsx, xls, pptx, ppt, rtf, odt, ods, odp), Images (jpg, jpeg, png, gif, bmp, webp, svg), Audio (mp3, wav, flac, m4a, aac, ogg), Video (mp4, avi, mkv, mov, wmv, webm), Archives (zip, rar, 7z, tar, gz)
- Encryption : Fichiers chiffrés côté client avant téléchargement
Time & Access
- Expiration : 1-1000 heures
- Maximum views : 1-10 vues
Security
Zero Knowledge Architecture
- Client-side encryption : AES-GCM-256 avec PBKDF2 (10 000 itérations)
- Split keys : CléA (envoyée au serveur) + CléB (dans le fragment d'URL)
- No server access : Le serveur ne peut pas déchiffrer les secrets
- Perfect Forward Secrecy : Les clés ne sont jamais stockées côté serveur
Best Practices
- Utiliser des temps d'expiration courts pour les données sensibles
- Limiter le nombre de vues de manière appropriée
- Choisir le niveau de sécurité approprié : OTP téléphone (le plus élevé) > OTP email > mot de passe > CAPTCHA
- Combiner avec des restrictions IP (IPs publiques) et des restrictions géographiques pour le contrôle d'accès
- Seul le niveau de sécurité le plus élevé sera appliqué si plusieurs sont spécifiés
Configuration Storage
- Windows :
%APPDATA%\Sharokey\config.json
- Linux/Mac :
~/.config/sharokey/config.json
- Token encryption : Stocké chiffré utilisant la protection de données de l'OS
Error Codes
Code | Description |
---|---|
0 | Succès |
1 | Erreur API (authentification, validation, serveur) |
3 | Erreur réseau |
4 | Erreur de configuration |
5 | Erreur de validation des paramètres |
10 | Secret non trouvé |
Test & Diagnostics
Connectivity Test
La commande test
effectue des diagnostics complets côté client :
# Full connectivity test (6 tests)
sharokey test
# Quick test (config + network only)
sharokey test --quick
# Verbose output with details
sharokey test --verbose
Test Details :
- Configuration - Valide la présence du token API
- Network - Test ping + connectivité HTTP vers l'API
- Authentication - Vérifie la validité du token avec l'API
- Read Permissions - Teste la capacité de listage des secrets
- Statistics - Teste l'accès à l'endpoint de statistiques
- Write Permissions - Actuellement ignoré (évite les secrets de test)
Output Format :
- Exit code :
0
= succès,1
= échec - Affichage console avec emojis de statut et couleurs
Test Command Details
La commande test
effectue des diagnostics complets côté client incluant la vérification de la santé du serveur, la validation de l'authentification, et les vérifications de permissions. Cela va au-delà d'une simple vérification de statut serveur pour garantir une fonctionnalité complète.
Troubleshooting
# Check configuration
sharokey config --show
# Test connectivity
sharokey test
# Enable debug logging
sharokey config --log-level Debug --logs-enabled
Problèmes courants :
- Authentication error : Vérifier le token avec
sharokey config --show
- Timeout : Augmenter avec
sharokey config --timeout 60
- Secret not found : Vérifier le slug et le statut d'expiration
- Validation failed : Vérifier les limites des paramètres (contenu secret ≤255 caractères, message ≤255 caractères, géolocalisation ≤255 caractères, etc.)
- Attachment error : Vérifier les formats de fichiers (40+ formats supportés incluant documents, images, audio, vidéo, archives) et limite totale de 10MB
- OTP format error : Utiliser le format international pour le téléphone (+33674747474)
- IP whitelist error : Seules les adresses IP publiques sont supportées, pas de blocs CIDR ou d'IPs privées
Related Resources
- SDK Python - Librairie Python avec support async
- CDN JavaScript - Version navigateur légère
- Structures de Réponse - Documentation complète des réponses JSON
- Comparaison de Fonctionnalités - Comparer toutes les librairies Sharokey