À propos du projet
OpenCLI est un outil en ligne de commande qui connecte sites web, sessions navigateur, applications Electron et outils locaux dans des interfaces déterministes pour les humains comme pour les agents IA. Il fournit trois surfaces d'automatisation principales : des adaptateurs intégrés pour les sites populaires, le contrôle du navigateur par les agents IA, et un hub CLI pour les outils locaux.
Fonctionnalités principales
1. Adaptateurs intégrés : OpenCLI est livré avec des adaptateurs pour plus de 100 sites, dont Bilibili, Zhihu, Xiaohongshu, Reddit, HackerNews, Twitter/X, LinkedIn, Amazon, Upwork, Midjourney, et bien d'autres. Chaque adaptateur expose des commandes spécifiques au site comme `opencli bilibili hot`, `opencli twitter trending`, ou `opencli hackernews top`.
2. Contrôle du navigateur par agent IA : Installez la compétence `opencli-browser` dans les agents IA (Claude Code, Cursor, etc.) pour leur permettre de naviguer, cliquer, taper, remplir des formulaires, extraire des données et inspecter n'importe quelle page via votre session Chrome connectée. L'agent utilise des instantanés structurés du DOM plutôt que des captures d'écran pour une interaction fiable.
3. Hub CLI : Passerelle unifiée pour les outils en ligne de commande existants comme `gh`, `docker`, `vercel`, `wrangler`, `obsidian`, `longbridge`, `lark-cli`, `ntn` (Notion), `dws` (DingTalk), `wecom-cli`, `tg`, `discord`, et `wx`. Enregistrez des outils personnalisés avec `opencli external register`.
4. Adaptateurs d'applications de bureau : Contrôlez les applications Electron comme Cursor, Trae CN, Codex, Antigravity, ChatGPT App, ChatWise, Qoder, Discord, Doubao, et Trae SOLO via le protocole Chrome DevTools.
Installation
OpenCLI nécessite Node.js >= 20.18.1. Installez-le via npm (`npm install -g @jackwener/opencli`) ou utilisez l'application de bureau OpenCLIApp pour macOS/Windows. Une extension Chrome (Browser Bridge) connecte OpenCLI à votre navigateur, disponible sur le Chrome Web Store ou par installation manuelle.
Primitives d'automatisation du navigateur
La commande `opencli browser` fournit des primitives pour l'automatisation du navigateur : `open`, `state`, `click`, `type`, `fill`, `select`, `keys`, `wait`, `get`, `find`, `extract`, `frames`, `screenshot`, `scroll`, `back`, `eval`, `network`, `tab list`, `tab new`, `tab select`, `tab close`, `init`, `verify`, et `close`. Les sessions sont gérées avec des noms de session explicites, et les onglets peuvent être ciblés individuellement.
Développement d'adaptateurs
Écrivez de nouveaux adaptateurs de bout en bout avec la compétence `opencli-adapter-author`. Le flux de travail comprend la reconnaissance du site, la découverte des points de terminaison, le choix de l'authentification (PUBLIC/COOKIE/INTERCEPT/UI/LOCAL), le décodage des champs et la vérification. Les connaissances sur les sites sont conservées localement pour être réutilisées entre les adaptateurs.
Prise en charge des téléchargements
Téléchargez des images, des vidéos et des articles depuis les plateformes prises en charge, notamment Xiaohongshu, Bilibili, Twitter, Douban, Pixiv, 1688, Xiaoyuzhou (audio et transcriptions), Zhihu (articles Markdown) et Weixin (articles WeChat). Les téléchargements de vidéos nécessitent `yt-dlp`.
Formats de sortie
Toutes les commandes prennent en charge `--format` avec `table` (par défaut), `json`, `yaml`, `md`, et `csv` pour l'envoi vers jq, les LLM ou les tableurs.
Plugins
Étendez OpenCLI avec des plugins communautaires via `opencli plugin install github:user/repo`. Les plugins disponibles incluent GitHub Trending, l'agrégateur de tendances multiplateforme, les articles chauds Juejin, le mur/flux/recherche VK, et l'éditeur d'articles X.
Configuration
Les variables d'environnement contrôlent la sélection du profil, le placement des fenêtres (premier plan/arrière-plan), la persistance des sessions, les délais d'attente, les points de terminaison CDP et la journalisation verbose. Les codes de sortie suivent `sysexits.h` d'Unix pour l'intégration CI/script.
Licence : Apache-2.0
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.