Cursor CLI : guide complet + commandes /help
Introduction
Cursor CLI permet d’interagir avec l’agent de Cursor directement depuis le terminal : écrire, revoir et modifier du code, exécuter des commandes approuvées, reprendre des sessions, et automatiser des workflows.
Installation & mise à jour
Installer (macOS, Linux, WSL)
# Installation en une commande
curl https://cursor.com/install -fsS | bash
# Vérifier l'installation
cursor-agent --version
Après installation, ajoutez ~/.local/bin
à votre PATH
si nécessaire, puis lancez l’agent : cursor-agent
. Pour mettre à jour manuellement : cursor-agent update
ou cursor-agent upgrade
.
Authentification
Deux options : login via navigateur (recommandé) ou clé API (CI/CD).
# Login navigateur
cursor-agent login
cursor-agent status # vérifier l'état
cursor-agent logout # se déconnecter
# Clé API (CI)
export CURSOR_API_KEY=... # ou --api-key ... en ligne de commande
cursor-agent "implement user authentication"
La page Authentication détaille l’état, les erreurs fréquentes et les flags utiles (--endpoint
, --insecure
).
Modes d’utilisation
Mode interactif (par défaut)
# Démarrer une session interactive
cursor-agent
# Démarrer avec un prompt initial
cursor-agent "refactor the auth module to use JWT tokens"
Idéal pour décrire l’objectif, examiner les propositions, approuver/annuler les commandes.
Mode non-interactif (print)
# Sortie "text"
cursor-agent -p "find and fix performance issues" --model "gpt-5" --output-format text
# Sortie "json" (plus facile à parser en CI)
cursor-agent -p "review these changes for security issues" --output-format json
En mode non-interactif, Cursor peut écrire sans confirmations — à utiliser avec précaution.
Sessions & historique
# Lister les conversations
cursor-agent ls
# Reprendre la dernière
cursor-agent resume
# Reprendre une session précise
cursor-agent --resume "chat-id-here"
Pratique pour conserver le contexte d’une itération à l’autre.
Paramètres & options globales (essentiel)
Les options globales et commandes de base incluent : --version
, --api-key
, -p/--print
, --output-format {text|json|stream-json}
, --resume
, --model
, --fullscreen
, --force
, --help
, ainsi que beaucoup d’autres flags.
Exemples :
# Forcer l'exécution de commandes sans prompts d'approbation explicites (à manier avec prudence)
cursor-agent --force -p "run the full test suite"
# Choisir un modèle
cursor-agent -m "gpt-5" -p "optimize database queries in this repo"
# Reprendre par ID
cursor-agent --resume abcd1234 -p "continue from where we left off"
Règles, MCP & bonnes pratiques
- Règles : le CLI supporte le même système que l’IDE (
.cursor/rules
,AGENT.md
,CLAUDE.md
) pour injecter des consignes persistantes par dossier/fichier. - MCP (Model Context Protocol) : le CLI détecte votre
mcp.json
et charge les mêmes serveurs/outils qu’en IDE. - Conseil de prompt : explicitez l’intention (ex : « ne pas écrire de code » pendant la phase de planification) pour guider l’agent.
Toutes les commandes disponibles via /help
En session interactive, tapez /help
pour afficher l’aide intégrée. Voici l’intégralité des commandes listées dans la référence officielle Slash commands :
Commande | Description | Exemple |
---|---|---|
/model <model> |
Afficher/choisir le modèle courant. | /model gpt-5 |
/auto-run [state] |
Basculer ou fixer l’auto-run : on / off / status . |
/auto-run off |
/new-chat |
Démarre un nouveau chat (nouveau contexte). | /new-chat |
/vim |
Active/désactive les keybindings Vim. | /vim |
/help [command] |
Aide générale ou sur une commande donnée. | /help /model |
/feedback <message> |
Envoie un feedback à l’équipe Cursor. | /feedback great DX but slow on big repos |
/resume <chat> |
Reprend un chat par nom de dossier. | /resume my-project |
/copy-req-id |
Copie l’ID de la dernière requête. | /copy-req-id |
/logout |
Se déconnecte de Cursor. | /logout |
/quit |
Quitte la session. | /quit |
💡 Astuce :
/auto-run off
est utile pour valider étape par étape quand vous modifiez des fichiers ou exécutez des commandes.
Exemples concrets
1) Atelier interactif : créer un module moderne PrestaShop (Symfony)
$ cursor-agent
> /model gpt-5
> Tu es un expert PrestaShop 8/9 + Symfony. Ne rien écrire sans plan.
> Objectif : créer un module "ps_feature_badges" qui ajoute un badge sur la page produit via un hook et une page de configuration moderne (Symfony).
> Contraintes :
> - Autoload PSR-4 via composer.json (namespace PrestaShop\Module\PsFeatureBadges\)
> - Services Symfony dans config/services.yml
> - Admin controller moderne et route dans modules/ps_feature_badges/config/routes.yml
> - Formulaire de configuration Symfony (settings form), stockage via Configuration
> - Hook front : displayProductAdditionalInfo (ou displayProductExtraContent selon thème)
> - Respect PSR-12, pas d'override Core
> Planifie les étapes et demande mon accord (/auto-run off).
> /auto-run off
> Étape 1 : squelette du module (ps_feature_badges.php, composer.json, src/, config/). Explique chaque fichier créé.
> Étape 2 : Admin Controller + route /modules/ps_feature_badges/configure et vue Twig minimale.
> Étape 3 : config/services.yml et un service BadgeProvider (expose getBadgeForProduct(int $idProduct)).
> Étape 4 : Settings Form Symfony (clé CONFIG_PSFB_BADGE_TEXT avec validation) + bouton Sauvegarder.
> Étape 5 : implémenter hookDisplayProductAdditionalInfo pour afficher le badge.
> Étape 6 : commandes d'installation et tests manuels.
2) Implémentation guidée (prompts prêts à l’emploi)
# Étape 1 — squelette
Crée le squelette du module "ps_feature_badges" compatible PrestaShop 8/9 :
- Fichiers : ps_feature_badges.php, composer.json (autoload PSR-4 PrestaShop\Module\PsFeatureBadges\ => src/), README.md
- Dossiers : src/Controller/Admin, src/Service, config/{routes.yml,services.yml}, templates/admin/
- ps_versions_compliancy : ">=8.0.0"
- Méthodes install()/uninstall() et registerHook('displayProductAdditionalInfo')
N’écris pas encore de logique métier ; montre le diff et explique.
# Étape 2 — page de configuration moderne (Symfony)
Ajoute un Admin Controller moderne ConfigurationController (hérite de FrameworkBundleAdminController) avec action index():
- Route dans modules/ps_feature_badges/config/routes.yml (nom psfb_configuration, préfixe /modules)
- Vue Twig @Modules/ps_feature_badges/templates/admin/configuration.html.twig
- Sécurité via attribut AdminSecurity (lecture/écriture selon droits Module)
- Lien Configurer depuis Module Manager OK
# Étape 3 — services Symfony
Déclare dans config/services.yml un service psfb.badge_provider (classe src/Service/BadgeProvider.php) injectant TranslatorInterface et Configuration. Méthode getBadgeForProduct($idProduct) qui renvoie le texte du badge.
# Étape 4 — Settings Form
Crée un formulaire Symfony pour CONFIG_PSFB_BADGE_TEXT (texte court) avec aperçu en live :
- Définis FormDataProvider et FormHandler si nécessaire
- Persistance via Configuration::updateValue('CONFIG_PSFB_BADGE_TEXT', ...)
- Valide longueur (1..32) et échappe HTML
- Rends le formulaire dans configuration.html.twig (UIKit BO)
# Étape 5 — hook produit
Implémente hookDisplayProductAdditionalInfo($params) pour afficher le badge sous le bouton principal :
- Récupère idProduct depuis params
- Appelle BadgeProvider->getBadgeForProduct(idProduct)
- Retourne un snippet Twig ou HTML minimal (class="psfb-badge")
# Étape 6 — commandes utiles
Commandes pour tester :
- composer dump-autoload -o
- php bin/console prestashop:module install ps_feature_badges
- php bin/console prestashop:module enable ps_feature_badges
- php bin/console cache:clear --no-warmup
Accès : /admin-dev/modules/ps_feature_badges/configure
3) CI non‑interactif : audit et tests
cursor-agent -p "Audit le module ps_feature_badges : respect PSR-12, structure PrestaShop, controllers Symfony, services, routes, formulaire de config, hooks. Propose des correctifs et le diff patch."
cursor-agent -p "Plan détaillé pour finir ps_feature_badges (services, formulaire, hook, tests). Ne pas modifier de fichiers, seulement le plan." --output-format text
cursor-agent -p "Relis hookDisplayProductAdditionalInfo de ps_feature_badges : sécurité, compatibilité thèmes (displayProductExtraContent), accessibilité ARIA et performance. Suggère un snippet HTML optimal."
Sécurité & limitations
Le CLI peut lire/écrire/supprimer des fichiers et exécuter des commandes shell (avec approbation en mode interactif). En non-interactif, la prudence s’impose : isolez en sandbox/CI, versionnez vos scripts, surveillez les permissions.
FAQ rapide
Le CLI est-il disponible pour tous ?
Le CLI est en bêta et non disponible pour certains plans Enterprise à date.
Puis-je piloter des intégrations MCP comme en IDE ?
Oui : le CLI lit mcp.json
et charge les mêmes serveurs/outils.
Comment obtenir l’aide détaillée en ligne de commande ?
Utilisez cursor-agent help [commande]
pour la CLI, et /help [commande]
en session interactive.
Conclusion
Cursor CLI apporte l’agent Cursor là où vous travaillez déjà : le terminal et la CI. En combinant modes interactif/non-interactif, règles, MCP et slash commands (ci-dessus), vous automatisez vos workflows IA sans quitter le shell.
Article publié le 11 août 2025 par Nicolas Dabène — Expert PHP & PrestaShop avec 15+ ans d’expérience