L'API officielle de X est devenue difficile à justifier pour un petit script. XSH est parti de ce constat : explorer l'interface web depuis un CLI Go pour lire et publier sans gérer une clé API dédiée.
XSH n'est pas un contournement magique. Il dépend des cookies et des endpoints utilisés par l'interface web, donc une modification côté X peut le casser du jour au lendemain. Je le présente surtout comme une expérience d'ingénierie et un outil à utiliser avec mesure.
Le terminal devient ici un point d'accès pratique, avec une contrainte : tu dépends toujours d'une interface web qui ne t'appartient pas.
XSH, c'est quoi ce truc ?
XSH (pour X Shell), c'est une interface en ligne de commande développée en Go qui explore l'interface web de X depuis ton terminal. Cette approche ne remplace pas l'API officielle et ne doit pas être présentée comme un moyen de contourner ses limites.
XSH utilise une authentification basée sur les cookies de ton navigateur. C'est pratique pour un essai local, mais ces cookies donnent accès à ta session : conserve-les hors du dépôt, limite les permissions et supprime-les dès que tu n'en as plus besoin. Les règles et les endpoints de X peuvent aussi changer sans préavis.
Pourquoi XSH fait une vraie difference ?
Si tu as déjà essayé de créer un bot ou juste un script pour publier tes derniers articles de blog sur X, tu connais la douleur de l'API officielle actuelle. Avec XSH, j'ai voulu casser ces barrières.
Ce que XSH apporte
- Une CLI Go pour tester des lectures et des actions depuis un terminal.
- Une session locale, sans serveur intermédiaire ajouté par XSH.
- Des sorties texte ou JSON qui peuvent se brancher sur des scripts.
- Un serveur MCP si la version installée l'expose ; vérifie la liste des outils dans la release utilisée.
XSH ne supprime ni les limites ni les règles de la plateforme. Si tu as besoin d'un usage stable ou commercial, utilise l'API officielle et ses conditions actuelles.
Comment l'installer ?
Plusieurs options selon ton environnement, à toi de choisir la plus simple !
Via Go (toutes plateformes)
Si tu as Go 1.24+ d'installé sur ta machine :
go install github.com/benoitpetit/xsh@latest
Script d'installation (Linux / macOS)
Une seule commande, tout est automatique :
curl -sSL https://raw.githubusercontent.com/benoitpetit/xsh/master/scripts/install.sh | bash
PowerShell (Windows)
À lancer en tant qu'Administrateur :
iwr -useb https://raw.githubusercontent.com/benoitpetit/xsh/master/scripts/install.ps1 | iex
Depuis les sources
git clone https://github.com/benoitpetit/xsh && cd xsh && go build -o xsh .
Tu préfères un binaire pré-compilé ? Tous les builds (Linux, macOS Intel/Apple Silicon, Windows) sont disponibles directement sur la page des releases GitHub.
Exemples d'utilisation (pour kiffer)
Une fois installé, voici les commandes principales.
1. L'authentification par cookies
il faut donner à XSH l'accès à ta session :
xsh auth login
L'outil peut t'accompagner pour récupérer ta session. Tu peux aussi importer un fichier de cookies exporté depuis ton navigateur, mais évite de le conserver après l'import :
xsh auth import cookies.json
2. Lire ton fil d'actualité
Tu veux checker ce qui se passe sans ouvrir un navigateur lourd et bourré de pubs ?
xsh feed
Et en JSON pour tes scripts et pipelines :
xsh feed --json | jq '.[].text'
3. Publier depuis le terminal
L'action classique, envoyer ton message au monde entier depuis ta console préférée :
xsh tweet post "Message envoyé depuis mon terminal"
Avec une image :
xsh tweet post "Regarde ce screenshot !" --image capture.png
4. Rechercher des tweets
xsh search "golang cli" --type Latest
5. Consulter un profil utilisateur
xsh user benoitpetit --json
6. Liker, retweeter, suivre
xsh tweet like <id> xsh tweet retweet <id> xsh follow <handle>
7. Messages directs
xsh dm send <handle> "Hey, t'as vu XSH ? 👀" xsh dm inbox --json
8. Programmer une publication (scheduled)
xsh schedule "Mon article sort demain, restez connectés !" --at "2026-04-01T09:00:00"
Tu peux l'integrer dans tes scripts Bash, tes pipelines CI/CD, ou juste l'utiliser au quotidien entre deux git commit. Les possibilites d'automatisation redeviennent enfin fun et accessibles !
Bonus : XSH + agents IA (MCP)
Certaines versions de XSH embarquent un serveur MCP (Model Context Protocol). Le nombre d'outils dépend de la release : vérifie la sortie de xsh mcp avant de donner des droits à un agent.
xsh mcp
Un agent peut alors appeler les commandes exposées par XSH. Garde une validation humaine pour les publications et les actions qui modifient ton compte.
Le projet est entierement Open Source et documente. J'ai mis en place un site dedie ou tu retrouveras toutes les commandes, les astuces d'installation et la doc complete :
Découvrir le projet sur : xsh.devbyben.fr
Le code source est evidemment disponible sur mon GitHub : github.com/benoitpetit/xsh. Si le projet te plait, n'hesite pas a aller lui mettre une petite etoile, ca fait toujours plaisir et ca aide le projet a se faire connaitre !
Et comme d'habitude, si mes outils t'aident dans ton quotidien de dev et que tu veux soutenir mon travail, tu peux le faire sur Liberapay ou Buy Me a Coffee.
Si XSH t'est utile, viens en parler sur Mastodon ou Bluesky. Et n'hesite pas a le partager si l'article t'a plu.
Article co-écrit avec l'IA · Images générées avec l'IA.
