Une interface en ligne de commande (CLI) en Python pour interagir avec l'API Gamma.
Gamma CLI vous permet de créer et gérer des présentations Gamma directement depuis votre terminal. Cette CLI utilise l'API Gamma v1.0 pour générer des présentations, gérer des thèmes et des dossiers.
- ✅ Génération de gamma à partir de texte
- ✅ Création de gamma à partir de templates
- ✅ Récupération d'informations sur un gamma
- ✅ Liste de vos gammas
- ✅ Liste des thèmes disponibles
- ✅ Liste des dossiers disponibles
- ✅ Gestion sécurisée de la clé API
- ✅ Output en JSON pour intégration avec d'autres outils
- ✅ Interface colorée et formatée avec Rich
- Python 3.8 ou supérieur
- Une clé API Gamma (obtenez-la sur gamma.app/settings/billing)
# Cloner le repository
git clone <repository-url>
cd gamma-cli
# Installer les dépendances
pip install -r requirements.txt
# Installer la CLI
pip install -e .pip install gamma-cliAvant d'utiliser la CLI, vous devez configurer votre clé API :
gamma config set-key YOUR_API_KEYVotre clé API sera stockée de manière sécurisée dans ~/.config/gamma-cli/config.json avec des permissions restrictives.
Pour vérifier votre configuration :
gamma config showPour vérifier que tout fonctionne correctement (installation, configuration, connexion API) :
gamma verifyCette commande vérifie :
- La version de Python
- L'installation des dépendances
- La configuration de la clé API
- La connexion à l'API Gamma
Créez une nouvelle présentation Gamma à partir de texte :
gamma generate "Create a presentation about AI and machine learning"Avec options :
gamma generate "Marketing strategy for Q4 2024" \
--title "Q4 Marketing Plan" \
--theme theme_abc123 \
--folder folder_xyz789Obtenez les informations d'un gamma existant :
gamma get GAMMA_IDUtilisez un template existant pour créer un nouveau gamma :
gamma from-template TEMPLATE_ID "Update with 2024 financial data"Avec dossier :
gamma from-template TEMPLATE_ID "Q1 2024 results" --folder folder_xyz789Affichez tous les thèmes disponibles :
gamma themesFormat JSON :
gamma themes --jsonAffichez tous vos dossiers :
gamma foldersFormat JSON :
gamma folders --jsonAffichez tous vos gammas :
gamma lsFormat JSON :
gamma ls --jsonVérifiez que Gamma CLI est correctement installé et configuré :
gamma verifyCette commande vérifie :
- Version de Python
- Dépendances installées
- Configuration de la clé API
- Connexion à l'API Gamma
Format JSON :
gamma verify --json--json: Affiche le résultat en format JSON pour toutes les commandes--help: Affiche l'aide pour n'importe quelle commande
# Vérifier l'installation et la configuration
gamma verify
# Configuration initiale
gamma config set-key sk_gamma_abc123xyz789
# Vérifier à nouveau que la connexion fonctionne
gamma verify
# Générer une présentation simple
gamma generate "Create a pitch deck for a SaaS startup"
# Lister les thèmes disponibles et choisir un thème
gamma themes
gamma generate "Product roadmap 2024" --theme theme_modern_001
# Lister vos gammas existants
gamma ls
# Créer plusieurs gammas avec JSON output pour traitement
gamma generate "Sales report Q1" --json > output.json
# Vérifier le statut d'un gamma
gamma get gamma_abc123
# Utiliser un template pour créer une présentation
gamma from-template template_xyz "Update with new company metrics"gamma-cli/
├── gamma_cli/
│ ├── __init__.py # Package initialization
│ ├── cli.py # CLI interface avec Click
│ ├── client.py # Client API Gamma
│ ├── config.py # Gestion de la configuration
│ ├── models.py # Modèles de données Pydantic
│ └── utils.py # Fonctions utilitaires
├── requirements.txt # Dépendances Python
├── setup.py # Configuration du package
├── README.md # Ce fichier
├── .env.example # Exemple de fichier d'environnement
└── .gitignore # Fichiers à ignorer par Git
# Cloner le repository
git clone <repository-url>
cd gamma-cli
# Créer un environnement virtuel
python -m venv venv
source venv/bin/activate # Sur Windows: venv\Scripts\activate
# Installer en mode développement avec les dépendances de test
pip install -e .
pip install -r requirements-dev.txtVous pouvez aussi configurer la clé API via variable d'environnement :
export GAMMA_API_KEY="your-api-key-here"Ou créer un fichier .env :
GAMMA_API_KEY=your-api-key-here
Le projet utilise pytest avec trois types de tests :
# Exécuter tous les tests unitaires
pytest -v -m "not integration"
# Avec coverage
pytest -v -m "not integration" --cov=gamma_cli --cov-report=html# Vérifier que les clés API ne sont jamais exposées
pytest -v -m security# Définir la clé API
export GAMMA_API_KEY="your-api-key"
# Exécuter les tests d'intégration
pytest -v -m integrationpytest -v🔒 Important : Ne jamais commiter de clés API ou de secrets !
- Les clés API doivent être dans des variables d'environnement
- Les fichiers
.envetconfig.jsonsont dans.gitignore - Utilisez
.env.examplepour documenter les variables nécessaires - Les tests utilisent des fixtures pour isoler les credentials
📖 Consultez SECURITY.md pour les bonnes pratiques détaillées.
Le projet utilise GitHub Actions pour l'intégration continue :
- ✅ Tests unitaires sur Python 3.8, 3.9, 3.10, 3.11
- ✅ Tests de sécurité pour détecter les fuites de credentials
- ✅ Tests d'intégration (uniquement si
GAMMA_API_KEYest configuré dans les secrets) - ✅ Vérifications de qualité du code (flake8, black, isort)
Pour configurer les tests d'intégration sur GitHub :
- Allez dans Settings → Secrets and variables → Actions
- Ajoutez un secret nommé
GAMMA_API_KEY - Les tests d'intégration s'exécuteront automatiquement
Cette CLI utilise l'API Gamma v1.0 avec les endpoints suivants :
- POST /generations : Générer un nouveau gamma
- GET /generations/{id} : Récupérer un gamma par ID
- POST /create-from-template : Créer depuis un template (anciennement /template)
- GET /themes : Lister les thèmes disponibles
- GET /folders : Lister les dossiers disponibles
L'authentification se fait via l'header X-API-KEY.
Note importante : L'API Gamma ne fournit actuellement pas d'endpoint pour lister vos gammas (GET /generations n'existe pas). La commande gamma ls essaie plusieurs endpoints possibles mais retournera toujours une liste vide car cette fonctionnalité n'est pas disponible dans l'API. Pour voir vos gammas, utilisez le dashboard web sur gamma.app.
La CLI gère automatiquement les erreurs courantes :
- Clé API manquante ou invalide
- Timeouts de requête
- Erreurs HTTP (400, 401, 403, 404, 500, etc.)
- Problèmes de connexion réseau
Les messages d'erreur sont formatés de manière claire avec des icônes colorées.
- L'API Gamma v1.0 est limitée par des quotas (consultez votre plan sur gamma.app)
- Certaines fonctionnalités peuvent être en beta et sujettes à changement
- Le support OAuth n'est pas encore disponible (uniquement clés API)
Les contributions sont les bienvenues ! N'hésitez pas à :
- Fork le projet
- Créer une branche pour votre feature (
git checkout -b feature/AmazingFeature) - Commit vos changements (
git commit -m 'Add some AmazingFeature') - Push vers la branche (
git push origin feature/AmazingFeature) - Ouvrir une Pull Request
MIT License - voir le fichier LICENSE pour plus de détails.
Pour obtenir de l'aide :
- Consultez la documentation :
gamma --help - Vérifiez les issues GitHub
- Contactez le support Gamma pour les questions relatives à l'API
- ✨ Version initiale
- ✅ Génération de gamma à partir de texte
- ✅ Gestion des templates
- ✅ Liste des thèmes et dossiers
- ✅ Configuration sécurisée de la clé API
- ✅ Output JSON
- ✅ Interface Rich avec tables et couleurs