lark-cli expose Lark et Feishu aux humains comme aux agents
L'outil CLI officiel de Lark/Feishu, maintenu par l'équipe larksuite, conçu pour les humains et les agents IA. Couvre les principaux domaines d'activité, notamment Messenger, Docs, Base, Sheets, Calendrier, Mail, Tâches, Réunions, etc., avec plus de 200 commandes et plus de 20 compétences d'agent IA.
En bref
- De quoi s’agit-il ?
- Le CLI officiel Go couvre les domaines métier de Lark, avec commandes structurées, compétences d'agent, authentification et garde-fous déclarés.
- À qui s’adresse-t-il ?
- lark-cli convient à une équipe qui veut piloter Lark ou Feishu depuis un terminal et traiter des sorties JSON dans un agent. Il convient moins à une automatisation qui ne peut pas gérer l'autorisation navigateur ou les politiques de la plateforme.
- Puis-je l’utiliser commercialement ?
- Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
- Est-il encore maintenu ?
- Oui. Le dépôt a reçu de nouveaux commits au cours des dernières 24 heures.
- En quel langage est-il écrit ?
- Principalement Go, d’après les statistiques de langage de GitHub.
Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 15 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.
ANALYSE OPEN SOURCE APPROFONDIE
Une couverture métier inhabituelle pour un CLI
Le dépôt officiel de larksuite décrit lark-cli comme conçu pour les humains et les agents IA. Il couvre Messenger, Docs, Drive, Markdown, Base, Sheets, Slides, Calendar, Mail, Tasks, Wiki, Contacts, Meetings, Attendance, Approval, OKR et Apps. Le README revendique plus de 200 commandes et 26 Skills. Le projet est écrit en Go et publié sous MIT.
Cette largeur ne signifie pas que chaque domaine est équivalent. Une équipe doit identifier les commandes nécessaires, leurs portées et le compte sous lequel elles s'exécutent. La présence d'une commande dans la liste ne garantit pas son adéquation à un workflow d'entreprise.
Installer puis créer l'application
La voie recommandée est `npx @larksuite/cli@latest install`. La construction depuis les sources demande Go v1.23 ou plus et Python 3, puis `git clone https://github.com/larksuite/cli.git`, `make install` et l'installation de la Skill. Après `lark-cli config init`, `lark-cli auth login --recommend` ouvre le parcours d'autorisation, puis `lark-cli calendar +agenda` vérifie un premier appel.
Pour un agent, `config init --new` et `auth login --recommend` peuvent imprimer une URL que l'utilisateur ouvre dans un navigateur. `lark-cli auth status` confirme le résultat. Le README ne décrit pas le comportement complet en CI sans navigateur, ce qui doit être testé séparément.
Trois granularités pour une même API
Les raccourcis portent un préfixe `+`, proposent des valeurs par défaut et peuvent afficher un aperçu à sec. Les commandes API suivent les ressources, par exemple `lark-cli calendar calendars list`. La couche brute accepte un chemin tel que `lark-cli api GET /open-apis/calendar/v4/calendars`. Cette progression va de l'action conviviale au contrôle fin de l'endpoint.
Les formats `json`, `pretty`, `table`, `ndjson` et `csv` servent des usages différents. En JSON, le succès va sur stdout avec `ok: true` et un code de sortie nul ; une erreur va sur stderr avec un code non nul. Le contrat recommande donc de vérifier `ok` ou le code de sortie, pas un champ `code` absent du succès.
Identité, portée et automatisation
Les commandes `auth login`, `logout`, `status`, `check`, `scopes` et `list` administrent l'accès. `--domain`, `--scope`, `--no-wait` et `--device-code` adaptent le parcours. Le CLI peut agir comme utilisateur ou bot avec `--as user` et `--as bot`. Cette flexibilité est utile pour les scripts, mais elle rend la sélection de portée déterminante.
Avant d'autoriser un agent à écrire dans Base, Docs ou Mail, créez un compte de test et utilisez la commande de lecture correspondante. Conservez la sortie JSON, le code de sortie et la portée affichée par `auth scopes`; ce sont les éléments nécessaires pour comprendre un refus ou une action inattendue.
Avertissements de sécurité à prendre au sérieux
Le README évoque hallucination, exécution imprévisible et injection de prompt. Une fois autorisé, l'agent agit sous l'identité de l'utilisateur dans les portées accordées. Le projet annonce une protection contre l'injection, l'assainissement de sortie terminal et le trousseau natif du système. Il envoie aussi des signaux de contrôle des risques pour les API HTTPS officielles, réglables par `lark-cli config risk-control off`, `on` ou `default`.
Ces fonctions sont des protections déclarées par le projet, pas une évaluation indépendante. Conservez `default`, préférez le bot intégré comme assistant privé et vérifiez les données destinées aux discussions de groupe. La licence MIT permet la réutilisation selon ses conditions, sans garantie de sécurité ou d'aptitude à la production. Conservez la sortie de `lark-cli auth scopes`, le compte utilisé et la commande exacte. Essayez d abord `lark-cli calendar +agenda --format json`, puis une écriture dans un espace de test avec `--dry-run` si la commande le permet. Vérifiez stdout, stderr, le code de sortie et `ok`. Testez aussi `lark-cli config risk-control default` et une autorisation sans interface graphique. Ces observations couvrent le contrat JSON et les garde-fous réellement exposés par lark-cli.
Conclusion éditoriale
lark-cli convient à une équipe qui veut piloter Lark ou Feishu depuis un terminal et traiter des sorties JSON dans un agent. Il convient moins à une automatisation qui ne peut pas gérer l'autorisation navigateur ou les politiques de la plateforme. Exécutez `npx @larksuite/cli@latest install`, puis `lark-cli auth status` et une commande de lecture en `--format json`; vérifiez `ok == true`, stderr et les portées avant toute écriture.
Notes de la communauté