Si vous vivez dans votre terminal mais que vous trouvez la syntaxe de curl verbeuse et sa sortie difficile à lire, curlie est un bon compromis. C’est un client HTTP en ligne de commande qui enveloppe curl et reprend la syntaxe plus lisible ainsi que la sortie colorisée de HTTPie. Vous gardez donc la puissance de curl, avec une expérience plus pratique pour tester rapidement des API.
Qu’est-ce que curlie exactement ?
curlie est une interface plus ergonomique pour curl. Il ne réimplémente pas HTTP : il analyse une commande au style HTTPie, construit l’appel curl correspondant, puis délègue l’exécution au binaire curl installé sur votre machine.
En pratique, cela signifie que vous obtenez :
- une syntaxe plus courte pour les requêtes courantes ;
- une sortie colorisée ;
- du JSON formaté automatiquement ;
- la compatibilité avec les options natives de
curl.
Cette architecture est importante : comme curl reste le moteur réseau, curlie hérite de sa gestion TLS, de son comportement avec les proxys, de ses protocoles et de ses nombreux drapeaux.
Le projet est distribué comme un binaire Go unique, maintenu sur GitHub. Il n’y a pas de runtime Python à installer, pas de plugins, ni de configuration complexe.
En résumé : utilisez curlie pour explorer rapidement une API depuis le terminal. Pour des tests reproductibles, partagés ou exécutés en CI, il faudra passer à un outil conçu pour enregistrer des requêtes et ajouter des assertions.
Pourquoi utiliser curlie ?
curl est disponible presque partout, mais sa sortie brute n’est pas toujours agréable à lire. Le JSON arrive souvent sur une seule ligne, les en-têtes ne sont pas toujours visibles, et les options -H, -d, -X s’accumulent vite.
HTTPie améliore l’ergonomie, mais c’est un outil distinct avec son propre comportement et ses dépendances.
curlie se place entre les deux :
- Lisible par défaut : réponses colorisées, JSON indenté, en-têtes mieux séparés.
- Syntaxe compacte : en-têtes, paramètres et champs JSON sont plus faciles à écrire.
-
Compatible curl : les drapeaux natifs de
curlpeuvent être transmis directement. - Installation simple : un binaire unique.
-
Pratique pour apprendre curl : avec
-v, vous voyez les détails de la requête réelle.
Installer curlie
curlie est disponible via des gestionnaires de paquets ou sous forme de binaire précompilé. Vérifiez toujours la page des releases GitHub pour la méthode la plus récente.
Sur macOS avec Homebrew :
brew install curlie
Avec Go installé :
go install github.com/rs/curlie@latest
Ou en téléchargeant le binaire pour votre plateforme :
# Exemple : placer le binaire téléchargé dans votre PATH
mv curlie /usr/local/bin/
curlie --version
Vérifiez aussi que curl est disponible :
curl --version
Sur macOS et la plupart des distributions Linux, curl est déjà installé.
Faire une requête GET
Une requête GET basique se limite à l’URL :
curlie httpbin.org/get
Si vous omettez le schéma, curlie ajoute http://. Si vous ne précisez pas de méthode, il utilise GET.
Vous pouvez aussi être explicite :
curlie GET https://httpbin.org/get
La réponse est affichée avec les en-têtes et le corps formaté, ce qui facilite l’inspection rapide d’une API.
Envoyer du JSON avec curlie
Pour envoyer un corps JSON, utilisez des paires clé=valeur :
curlie POST https://httpbin.org/post name=apidog role=platform
Cette commande envoie un corps équivalent à :
{
"name": "apidog",
"role": "platform"
}
curlie définit automatiquement le type de contenu approprié pour ce cas d’usage.
Ajouter des en-têtes
Pour ajouter un en-tête HTTP, utilisez la forme Nom:valeur :
curlie GET https://httpbin.org/get Authorization:"Bearer token123"
Exemple avec plusieurs en-têtes :
curlie GET https://httpbin.org/get \
Authorization:"Bearer token123" \
Accept:"application/json"
C’est plus court que la forme curl équivalente :
curl -H "Authorization: Bearer token123" \
-H "Accept: application/json" \
https://httpbin.org/get
Ajouter des paramètres de requête
Les paramètres de query string s’écrivent avec == :
curlie GET https://httpbin.org/get search==apidog page==1
Cela produit une URL équivalente à :
https://httpbin.org/get?search=apidog&page=1
Vous pouvez combiner paramètres, en-têtes et méthode :
curlie GET https://httpbin.org/get \
Authorization:"Bearer token123" \
search==apidog \
page==1
Utiliser les options natives de curl
Comme curlie s’appuie sur curl, vous pouvez transmettre des options natives quand la syntaxe courte ne suffit pas.
Exemple avec un timeout :
curlie --max-time 5 https://httpbin.org/get
Exemple avec le mode verbeux :
curlie -v https://httpbin.org/get
Le mode -v est utile pour vérifier :
- les en-têtes envoyés ;
- les en-têtes reçus ;
- la négociation TLS ;
- les détails de la requête exécutée.
Si vous voulez approfondir l’outil sous-jacent, le guide de l’API REST avec curl couvre les options brutes que curlie enveloppe.
curlie vs curl vs HTTPie
Les trois outils permettent d’envoyer des requêtes HTTP depuis le terminal. Leur différence principale se situe dans la syntaxe, la lisibilité de la sortie et le moteur utilisé.
| Aspect | curl | HTTPie | curlie |
|---|---|---|---|
| Moteur | libcurl | Python | curl |
| Syntaxe | Basée sur des drapeaux (-X, -H, -d) |
Compacte (clé=valeur) |
Compacte, style HTTPie |
| Sortie | Brute | Colorisée, JSON formaté | Colorisée, JSON formaté |
| Installation | Préinstallé presque partout | Package Python | Binaire Go unique |
| Drapeaux curl natifs | Oui | Non | Oui |
| Dépendances | Aucune | Runtime Python | Binaire curl |
| Usage principal | Scripting et appels ad-hoc | Appels ad-hoc lisibles | Appels ad-hoc lisibles avec moteur curl |
Choisissez curlie si :
- vous utilisez déjà
curl; - vous voulez une sortie plus lisible ;
- vous voulez garder l’accès aux options natives de
curl; - vous préférez un binaire unique sans runtime Python.
Choisissez HTTPie si vous préférez son écosystème et ses fonctionnalités propres. Le tutoriel HTTPie détaille cet outil, et la comparaison curl-to-HTTPie montre comment passer d’une syntaxe à l’autre.
Pour une vue plus large des alternatives en terminal et avec interface graphique, consultez aussi les alternatives à curl pour les tests d’API REST.
Quand utiliser curlie ?
curlie est adapté aux tâches rapides :
- vérifier qu’un endpoint répond ;
- inspecter une réponse JSON ;
- tester un header d’authentification ;
- reproduire un appel API pendant le développement ;
- comprendre le comportement d’une requête HTTP avec
-v.
Exemple typique pendant le debug :
curlie -v GET https://api.example.com/users/123 \
Authorization:"Bearer $TOKEN" \
Accept:"application/json"
Si la réponse est incorrecte, vous pouvez rapidement modifier les en-têtes, les paramètres ou le corps, puis relancer la commande.
Quand curlie n’est plus suffisant ?
curlie devient limité dès que la requête doit être :
- sauvegardée ;
- partagée avec l’équipe ;
- rejouée régulièrement ;
- exécutée dans un pipeline CI/CD ;
- validée avec des assertions ;
- documentée dans un workflow API.
Par exemple, cette commande est pratique en local :
curlie POST https://api.example.com/users \
Authorization:"Bearer $TOKEN" \
name="Alice" \
role="admin"
Mais si vous devez vérifier automatiquement que :
- le statut HTTP est
201; - le champ
idexiste ; - le champ
rolevautadmin; - le schéma de réponse reste stable ;
alors un simple appel terminal ne suffit plus.
Vous pourriez écrire un script shell avec grep, jq et des conditions, mais cela devient vite fragile et difficile à maintenir.
Passer des appels ponctuels à un workflow reproductible
Le workflow recommandé est simple :
- Explorez l’endpoint avec
curlie. - Stabilisez les paramètres, headers et payloads.
- Enregistrez la requête dans un outil collaboratif.
- Ajoutez des assertions.
- Exécutez les tests en CI si nécessaire.
Apidog sert précisément à cette étape après le terminal. Il ne remplace pas curlie pour l’exploration rapide ; il permet de transformer une requête utile en artefact réutilisable.
Avec Apidog, vous pouvez :
- enregistrer les requêtes dans des collections organisées ;
- gérer plusieurs environnements comme local, staging et production ;
- ajouter des assertions sur les codes HTTP, les champs de réponse et les schémas ;
-
exécuter des tests en CI avec
apidog run; - partager les requêtes avec l’équipe dans un espace collaboratif.
Un workflow concret :
# 1. Exploration rapide dans le terminal
curlie POST https://api.example.com/login \
email=user@example.com \
password=secret
Ensuite :
- recréez cette requête dans Apidog ;
- remplacez l’URL et les secrets par des variables d’environnement ;
- ajoutez une assertion sur le statut
200; - ajoutez une assertion sur la présence du token ;
- utilisez cette requête dans un scénario de test.
Pour formaliser votre stratégie de validation, le guide de test d’API explique les concepts derrière les assertions et les scénarios.
Questions fréquentes
curlie remplace-t-il curl ?
Pas exactement. curlie fonctionne au-dessus de curl. Il traduit une syntaxe plus compacte en appel curl et formate la sortie. curl reste le moteur réseau.
curlie fonctionne-t-il dans les pipelines CI/CD ?
Vous pouvez appeler curlie dans un script, mais ce n’est pas son cas d’usage principal. Il ne fournit pas d’assertions, de scénarios enregistrés ni de rapports structurés.
Pour un pipeline, utilisez plutôt un exécuteur capable de faire échouer le build si une réponse ne respecte pas les attentes. La commande apidog run d’Apidog couvre ce besoin, et cette liste des meilleurs clients de test d’API présente d’autres options compatibles avec des workflows reproductibles.
En quoi curlie est-il différent de HTTPie ?
Les deux se ressemblent côté syntaxe et affichage. La différence principale est le moteur :
- HTTPie est un outil autonome en Python.
-
curlieest un wrapper Go autour decurl.
Choisissez curlie si vous voulez rester proche de curl. Choisissez HTTPie si vous préférez son modèle autonome.
Peut-on voir la requête réelle exécutée ?
Oui. Utilisez le mode verbeux :
curlie -v https://httpbin.org/get
C’est utile pour confirmer les en-têtes, diagnostiquer l’authentification ou comprendre ce que curlie transmet à curl.
Conclusion
curlie améliore nettement l’expérience de curl pour les appels HTTP ad-hoc : syntaxe plus courte, sortie colorisée, JSON lisible et accès aux options natives de curl.
Utilisez-le pour explorer, déboguer et comprendre rapidement une API depuis le terminal. Dès qu’une requête doit être enregistrée, partagée, testée avec des assertions ou exécutée en CI, passez à un workflow plus structuré.
Téléchargez Apidog pour transformer les endpoints explorés dans le terminal en requêtes enregistrées, environnements et tests automatisés. Gardez curlie pour les vérifications rapides, et utilisez Apidog pour ce qui doit être répété.


Top comments (0)