1 points par GN⁺ 2025-05-20 | 1 commentaires | Partager sur WhatsApp
  • Le SDK Claude Code fournit les fonctionnalités nécessaires pour intégrer des outils de développement assistés par l’IA dans des applications
  • Les développeurs peuvent exécuter Claude Code sous forme de sous-processus, avec une prise en charge prioritaire de la ligne de commande
  • Il inclut la gestion du contexte conversationnel, la définition de prompts système personnalisés et l’intégration d’outils externes (MCP)
  • Il prend en charge une grande variété de formats de sortie (texte, JSON, JSON en streaming) ainsi que des options CLI détaillées
  • Un cas d’usage concret montre qu’en l’associant à GitHub Actions, il est possible de l’intégrer à de véritables workflows de développement comme la revue de code automatisée ou la création de PR

Introduction

Le SDK Claude Code est un outil de développement open source qui permet d’intégrer directement, de manière programmatique, les fonctionnalités de Claude Code dans des applications. Le SDK exécute Claude Code comme un processus séparé, ce qui offre une grande extensibilité pour l’intégrer à divers workflows de développement, comme des assistants de code basés sur l’IA, des outils d’automatisation ou des systèmes de revue de code.

À l’heure actuelle, seule une interface en ligne de commande (CLI) est prise en charge, et des SDK pour TypeScript et Python devraient être disponibles prochainement.

Utilisation de base du SDK

Le SDK Claude Code prend en charge une exécution non interactive. Par exemple, il est possible d’appeler Claude Code depuis un programme avec des arguments en ligne de commande afin d’obtenir automatiquement la sortie souhaitée.

Utilisations avancées

Reprendre une session de conversation multi-tour

  • Lors d’échanges sur plusieurs tours, il est possible d’utiliser une session précédente ou un identifiant de session spécifique pour conserver le contexte conversationnel et poursuivre la discussion
  • Les développeurs peuvent reprendre la conversation depuis la session la plus récente ou recharger une session précise

Prompt système personnalisé

  • Le comportement par défaut de Claude peut être ajusté à l’aide d’un prompt système personnalisé par le développeur
  • Il est possible d’ajouter des instructions au prompt système de base afin de modifier l’orientation des tâches et le périmètre de comportement de l’assistant

Configuration MCP (Model Context Protocol)

  • MCP est un protocole de connexion à des serveurs externes destiné à étendre les fonctionnalités de Claude Code
  • Le flag --mcp-config et un fichier de configuration JSON permettent d’ajouter des éléments comme l’accès à des bases de données, des intégrations d’API ou des outils personnalisés fournis par des serveurs externes
  • Lors de l’utilisation d’outils MCP, seuls les outils explicitement autorisés peuvent être utilisés (via le flag --allowedTools), et leur nom suit le format mcp__<serverName>__<toolName>

Options CLI disponibles

Le SDK Claude Code permet de configurer l’environnement d’exécution à l’aide de divers flags en ligne de commande

  • --print, -p : exécution en mode non interactif
  • --output-format : choix du format de sortie (texte, JSON, JSON en streaming, etc.)
  • --resume, -r : reprise de la conversation avec un identifiant de session spécifique
  • --continue, -c : reprise de la session la plus récente
  • --verbose : affichage de journaux détaillés
  • --max-turns : limite du nombre maximal de tours de conversation en mode non interactif
  • --system-prompt : remplacement du prompt système
  • --append-system-prompt : ajout d’instructions supplémentaires au prompt système
  • --allowedTools : définition de la liste des outils autorisés (y compris les outils MCP)
  • --disallowedTools : définition de la liste des outils interdits
  • --mcp-config : chargement d’un fichier de configuration du serveur MCP
  • --permission-prompt-tool : définition d’un outil MCP pour gérer les demandes d’autorisation

Pour l’ensemble des options disponibles et des exemples d’utilisation, consulter la documentation CLI officielle.

Formats de sortie

Le SDK prend en charge plusieurs formats de sortie.

Sortie texte (par défaut)

  • Retourne uniquement le texte de réponse

Sortie JSON

  • Retourne des métadonnées et des données structurées, ce qui facilite l’analyse programmatique
  • Les messages de réponse de l’API suivent une structure de types stricte, et des définitions de types au format JSON Schema sont également prévues à l’avenir

Sortie JSON en streaming

  • Chaque message est transmis en flux en temps réel
  • Pendant le déroulement d’une session de conversation, des objets JSON distincts sont envoyés successivement pour le message d’initialisation (init), les messages utilisateur/assistant, puis le message final result contenant les statistiques

Schéma des messages

  • Les messages de réponse de l’API JSON sont structurés selon un schéma précis
  • Le schéma devrait être mis à jour régulièrement et faire l’objet d’une gestion de versions

Exemples

  • Intégration à un script simple
  • Traitement de fichiers avec Claude
  • Prise en charge de flux de conversation complexes grâce à la gestion de session

Bonnes pratiques

  1. Utiliser le format de sortie JSON pour l’analyse des réponses
  2. Gestion des erreurs : vérifier le code de sortie et le flux d’erreurs
  3. Gestion des sessions : conserver le contexte des conversations multi-tours
  4. Prise en compte des timeouts : garantir la fiabilité des tâches longues
  5. Ajuster l’intervalle entre les requêtes : éviter les appels excessifs et préserver la stabilité du service

Cas d’usage réels

Le SDK Claude Code fournit de puissantes capacités d’automatisation et d’intégration dans des environnements de développement réels.

  • Un exemple représentatif consiste à l’associer à GitHub Actions pour automatiser entièrement des workflows de développement comme la revue de code, la création de PR ou la classification des issues

1 commentaires

 
GN⁺ 2025-05-20
Avis Hacker News
  • Je tiens à souligner que la direction prise par Claude Code correspond exactement à la philosophie « unix toolish » que j’attendais d’un outil de développement orienté agents. J’utilise Claude Code depuis sa preview publique initiale et j’ai suivi son évolution. Pour moi, l’« étalon-or » d’un agent de code, c’est un niveau où l’on donne une demande de fonctionnalité (par exemple un ticket Jira), puis on reçoit une PR que je peux relire moi-même et sur laquelle je peux donner du feedback. Je pense que Cursor, windsurf, etc., ont des limites parce que ce sont des éditeurs locaux et qu’ils ne peuvent pas s’intégrer à un environnement CI. Si l’on veut optimiser une codebase pour l’IA (MCP, règles, etc.), il faut viser une technologie utilisable aussi en mode headless. Claude Code s’utilise simplement avec des outils d’automatisation, donc c’est désormais ma référence de base quand je pense aux agents de code. Je vois le package npm Codex de façon similaire. À noter que j’aide justement à mettre en place ce type de configuration d’outils optimale, donc j’ai forcément un biais en faveur des outils faciles à configurer

    • Le « golden end state » que j’imagine, c’est être au milieu d’une pièce entouré d’agents IA — par exemple des agents qui écrivent le code, font le design, exécutent les tests. Moi, au centre, je touche à peine le clavier et je donne seulement à l’oral la direction, les critères esthétiques et les consignes. J’attends ce futur avec impatience

    • Je voudrais mentionner qu’Anthropic a annoncé aujourd’hui une fonctionnalité bêta similaire. Je voudrais partager la documentation associée. https://docs.anthropic.com/en/docs/claude-code/github-actions

    • Le « golden end state » d’un agent de code, selon moi, c’est d’utiliser un agent de code gratuit et open source qu’on peut exécuter librement sur mon ordinateur, ou partout où je le souhaite. Tout comme il serait absurde d’imaginer payer chaque fois qu’on lance des commandes comme ls, ps ou kill dans le terminal, je pense qu’il en va de même pour les LLM. Je ne dis pas qu’il faut « interdire » les LLM propriétaires, mais j’aimerais que les gens qu’on appelle des hackers dans ce domaine adoptent principalement des outils open source

    • Vous avez souligné que Cursor, windsurf, etc., sont difficiles à utiliser en CI parce que ce sont des éditeurs locaux, mais j’ai essayé cela avec la combinaison Cursor + MCP. Ça a bien fonctionné toute une journée, puis j’ai vite atteint les rate limits, ce qui m’a fait basculer sur le modèle le plus lent et le plus bête. J’ai aussi essayé avec Claude, mais j’ai rapidement épuisé la limite là aussi. En plus, seulement environ 25 % des PR sont au niveau « utilisable immédiatement », et il est souvent plus rapide de faire le travail soi-même que de comprendre où l’IA s’est trompée

    • Je me dis qu’on peut déjà faire ce type d’automatisation basée sur la CI, non ? Il suffit d’enregistrer Aider CLI comme GitHub Action pour qu’il s’exécute automatiquement lorsqu’une issue est créée, et cette structure existe déjà

  • Claude Code est ma façon préférée d’utiliser les LLM pour coder. Mais ce qu’il faudrait vraiment, c’est une version open source de Claude Code. Il faut un environnement où l’on peut utiliser le modèle de son choix et comparer directement les réponses de différents modèles. J’ai l’impression que d’autres alternatives comme Aider n’offrent pas une expérience au niveau de Claude Code. On peut comprendre qu’Anthropic ne veuille pas de cette approche (car cela affaiblirait leurs barrières défensives). Mais, du point de vue du consommateur, je veux utiliser les meilleurs modèles et je ne veux pas être enfermé dans un seul écosystème. J’imagine que c’est la plus grande crainte du point de vue des fournisseurs de LLM

    • OpenAI codex est l’open source qui se rapproche le plus de ce que vous décrivez. On peut utiliser les modèles du provider de son choix. Pour l’instant, c’est en dessous de Claude Code, mais je pense qu’il rattrapera bientôt son retard. https://github.com/openai/codex/tree/main

    • On peut implémenter en partie l’environnement souhaité en utilisant Claude Code comme serveur MCP

  • Aider prenait déjà en charge Python et le scripting shell depuis assez longtemps. Récemment, dans le cadre de l’ajout du support de 130 nouveaux langages de programmation, ils ont aussi réalisé un screencast incluant une aide au scripting bash ad hoc. On peut se rendre compte directement de la puissance de cette approche orientée scripting. https://aider.chat/docs/scripting.html, https://aider.chat/docs/recordings/tree-sitter-language-pack.html

    • J’aime vraiment beaucoup Aider. Le support des MCP est aussi prévu bientôt, et il est en cours de test sur la branche de développement. Une fois cela disponible, un développement end-to-end réel avec PR, tickets, etc., deviendra possible avec les seuls modèles auxquels on fait confiance

    • Je me demande s’ils pourront amener Aider à un niveau où je pourrais l’aimer autant que Claude Code. J’aime l’UX de Claude Code, mais je préfère Gemini 2.5 Pro, donc je n’utilise pas Claude Code. Ce ne sont pas tellement les fonctions comme les commits qui m’attirent, mais plutôt la qualité de l’UX. J’aimerais avoir votre avis là-dessus

    • Je pense que si Aider rendait son workflow d’intégration GitHub Actions plus polished, il pourrait vraiment exploser. Il suffirait d’ajouter un seul fichier au repo pour pouvoir discuter via une issue avec le modèle souhaité

  • Je voudrais partager un contexte supplémentaire donné directement par l’équipe Claude Code. http://latent.space/p/claude-code En résumé, les employés d’Anthropic utilisent en moyenne environ 6 dollars par jour de Claude illimité. Un Claude Code headless, à la manière d’un utilitaire « linux » pour la CI, est très séduisant. Il y a aussi l’ambition d’en faire une plateforme utilisateur extensible. La roadmap à venir inclut le sandboxing, le branching et les fonctions de planification. Un modèle agentique persistant appelé sonnet 3.7 est également prévu

    • Vous avez dit « les employés d’Anthropic utilisent en moyenne 6 $/jour de Claude illimité », mais l’article dit aussi qu’un certain ingénieur dépensait jusqu’à 1 000 dollars par jour. Plus que la moyenne, j’aimerais connaître la distribution, comme les P50, P75, P95

    • Il m’est arrivé plusieurs fois de dépasser largement les 20 dollars en seulement deux heures avec Claude Code. C’est trop cher pour des projets personnels, donc je finis simplement par ne pas l’utiliser

    • J’ai vraiment pris beaucoup de plaisir à écouter récemment le podcast latent space. Il est rare de voir des personnes ou des podcasts maintenir un SNR aussi élevé tout en produisant régulièrement du contenu public aussi productif. C’est impressionnant de conserver ce niveau de production publique tout en menant plusieurs activités en parallèle. J’aimerais que davantage de gens fassent l’expérience de ce gradient de productivité. La personne partage bien ses méthodes, mais ce n’est pas facile de les reproduire soi-même

  • Si je construisais un assistant IA pour le code, je ne le rendrais jamais dépendant d’un fournisseur particulier de foundation models. Pour que ce soit une stratégie valable, il faudrait que l’effet du modèle ait pratiquement atteint son plafond et que les performances soient devenues globalement similaires, avec seulement de petites différences au niveau d’un SDK familier

    • Je ne pense pas que le lock-in soit si fort en pratique, puisqu’il ne s’agit au fond que de commandes ou d’arguments différents. Au final, on n’a qu’une fonction d’entrée-sortie, donc il suffit de remplacer ou d’envelopper les parties nécessaires. Il n’y a rien de structurellement complexe

    • À ce stade, je pense que Claude Code joue réellement un rôle différenciant sur le marché du développement orienté agents. Je développe moi-même un AI code assistant et Claude Code est la première intégration que j’essaie. Je n’ai pas l’impression que ce soit encore le moment de s’inquiéter du lock-in. Il faut choisir ce qu’il y a de mieux et commencer à construire autour

  • Je voudrais souligner que Claude Code pouvait déjà être utilisé en mode non interactif, donc il était facile à intégrer à d’autres applications comme un utilitaire en ligne de commande UNIX. Ce SDK aussi ne semble prendre en charge que l’usage en ligne de commande, donc je ne vois pas très bien, au fond, ce qui change par rapport à ce qui existait déjà. Je me demande quel point m’échappe

  • Je cite les conditions d’utilisation d’Anthropic : « interdire le développement, l’entraînement ou la revente de tout produit ou service en concurrence avec l’intelligence générale ». Si pratiquement tout logiciel entre dans la catégorie de ce qui « concurrence » une intelligence générale, est-ce que cela ne signifie pas, en l’interprétant strictement, qu’on ne peut l’utiliser à aucune fin ? Ce type de formulation juridique me paraît beaucoup trop vague pour être applicable. On possède les résultats de l’IA, mais à condition qu’ils ne concurrencent pas l’intelligence générale ? Je me demande pourquoi ils l’interdisent de manière aussi large. Est-ce que cela revient simplement à dire que la responsabilité juridique incombe à l’utilisateur ? Cela soulève beaucoup de questions

    • Voilà ce qui arrive quand on laisse les juristes rédiger les règles comme ils l’entendent
  • La nouvelle GitHub Action correspond exactement à la fonctionnalité que je cherchais, donc j’en suis ravi. https://docs.anthropic.com/en/docs/claude-code/github-action... En revanche, il ne semble actuellement pas y avoir de moyen de l’utiliser avec le plan Max de Claude Code. La structure n’accepte qu’une API key, ce qui est un peu dommage

  • Je tiens à souligner que les fonctionnalités GitHub Actions et l’intégration avec les issues/PR sont exactement ce que je voulais depuis longtemps. https://docs.anthropic.com/en/docs/claude-code/github-action...

  • J’ai bien l’intention de l’essayer dès que le support de Claude arrivera dans Copilot. Pour l’instant, la politique de mon entreprise ne nous permet pas encore d’utiliser d’autres outils