Zéro dépendance
npm install rien. apt-get rien. Exécutez-le. Pas de bindings natifs, pas de bibliothèques système, pas de surprises.
$ getwebp ./images
getwebp est le nœud de traitement d'images local le plus compatible IA au monde. Un binaire. Zéro dépendance. Sortie JSON. Fonctionne partout où votre agent s'exécute.
GetWebP est un optimiseur d'images sans dépendances, propulsé par WASM, conçu pour les flux de travail d'agents IA. Il accepte les sorties structurées JSON, lit depuis stdin/stdout et convertit PNG, JPG, GIF, TIFF et BMP en WebP et AVIF — le tout localement, sans envoi vers le cloud et sans clés API. Une seule commande npx installe tout ce dont un agent IA a besoin pour traiter des images dans des pipelines CI/CD, des assistants de codage ou des flux de travail autonomes.
Le problème
Chaque dépendance est un point de défaillance potentiel pour vos workflows IA.
Pillow nécessite des extensions C compilées. Les agents sandbox et conteneurs Docker restreints refusent.
Différences API v6 vs v7. Delegates manquants. Conflits de paquets système. Votre pipeline tombe à 3h du matin.
Envoyer des images à des APIs externes signifie risque de conformité, latence, limites de débit et coût par image.
Quand l'environnement est fragile, votre agent ne peut pas distinguer les défaillances d'outils des vraies erreurs.
La solution
getwebp est conçu de bout en bout pour un usage programmatique.
Pas de runtime. Pas de dépendances. Pas de pip, brew, apt-get. Téléchargez et exécutez. Fonctionne dans Docker FROM scratch.
Chaque opération retourne du JSON analysable par machine. Votre agent lit succès, statistiques et erreurs sans parser du texte humain.
Même binaire, même comportement, partout. macOS, Linux, Windows, ARM, x86. Votre agent sait exactement à quoi s'attendre.
Fonctionnalités compatibles IA
npm install rien. apt-get rien. Exécutez-le. Pas de bindings natifs, pas de bibliothèques système, pas de surprises.
$ getwebp ./images
Chaque opération retourne du JSON structuré. Parsez-le, journalisez-le, agissez dessus. Parfait pour les patterns d'utilisation d'outils LLM.
Flag --jsonNatif pour les pipes. Lit depuis stdin, écrit vers stdout. Composez avec n'importe quelle commande shell ou chaîne d'outils IA.
Pipe-friendlyTraitez 1000 images en une commande. Recevez un tableau JSON avec les résultats par fichier. Pas de boucles.
1000 fichiers, 1 commande0 = succès, non-zéro = échec. Votre agent sait immédiatement sans parser la sortie.
Lisible par agentMême binaire, même comportement sur macOS, Linux, Windows, ARM, x86. CI et local correspondent toujours.
UniverselExemples de code
#!/bin/bash# Process images and parse JSON outputRESULT=$(getwebp ./images/*.jpg --json)if [ $? -eq 0 ]; then SAVED=$(echo $RESULT | jq -r '.compressionRatio') COUNT=$(echo $RESULT | jq -r '.processed') echo "✓ Processed $COUNT files, saved $SAVED"else echo "✗ Error: $(echo $RESULT | jq -r '.error')" exit 1fiimport subprocessimport jsonresult = subprocess.run( ["getwebp", "./images", "--json"], capture_output=True, text=True)if result.returncode == 0: data = json.loads(result.stdout) print(f"✓ Processed {data['processed']} files") print(f" Saved {data['compressionRatio']} ({data['totalInputSize']} → {data['totalOutputSize']})")else: error = json.loads(result.stderr) raise RuntimeError(f"getwebp failed: {error['error']}")- name: Optimize images run: | npx getwebp@latest ./public/images \ --json > optimization-report.json SAVED=$(cat optimization-report.json | jq -r '.compressionRatio') echo "Images optimized: $SAVED smaller"- name: Upload report uses: actions/upload-artifact@v4 with: name: image-optimization-report path: optimization-report.jsonFROM node:20-alpine# getwebp is a single binary — no system deps neededRUN npx getwebp@latest --install-binary /usr/local/bin/getwebpCOPY ./images /app/imagesRUN getwebp /app/images --json > /app/result.json \ && cat /app/result.json | jq '.compressionRatio'Avec --json, chaque opération retourne des données structurées sur lesquelles votre agent peut raisonner.
{ "success": true, "operation": "convert", "input": { "file": "hero.jpg", "size": "1.2 MB", "format": "JPEG" }, "output": { "file": "hero.webp", "size": "142 KB", "format": "WebP" }, "saved": "88%", "duration": "0.3s" }
Pas d'adaptateurs personnalisés. Si ça peut exécuter une commande shell, ça fonctionne avec getwebp.
Works with any tool that can run a shell command
Comparé aux autres outils de traitement d'images pour workflows programmatiques.
| Features | getwebpBest for AI | ImageMagick | Pillow | Cloudinary API | sharp (Node) |
|---|---|---|---|---|---|
| Zéro dépendance | |||||
| Sortie JSON | |||||
| 100 % hors ligne / local | |||||
| Binaire unique | |||||
| Codes de sortie prévisibles | |||||
| Sortie tableau JSON batch | |||||
| Identique multiplateforme | |||||
| Prêt pour agents IA |
Redimensionnez et compressez les images avant de les envoyer aux modèles de vision pour réduire les coûts en tokens jusqu'à 80 %. getwebp gère tout le lot avec une commande qui retourne du JSON.
Workflow
Example
# Reduce image size before sending to GPT-4V
result = subprocess.run([
"getwebp", image_path,
"--resize", "1024x1024",
"--json"
], capture_output=True, text=True)
data = json.loads(result.stdout)
# Tokens saved: ~80% for typical product photosFAQ
Arrêtez de combattre les dépendances.
Une commande. Zéro configuration. Sortie JSON. L'outil image qui manquait à votre stack IA.
No signup. No credit card. Works offline.
Every GetWebP product runs on the same WASM converter — pick the surface that fits your workflow.
Model Context Protocol server that gives Claude, Cursor, and Windsurf local image conversion.
Zero-dependency command-line converter. One npx command, runs in any terminal or CI pipeline.
Local-first integration surfaces — CLI in your shell, MCP in your agent. Zero AWS bill.