v1.0 już dostępna

Optymalizacja obrazów, która po prostu działa. Wszędzie.

Brak bindingów C++. Brak natywnych zależności. Zainstaluj i uruchom — w terminalu, pipeline CI lub skrzynce narzędziowej agenta AI.

GetWebP CLI to oparty na WASM, pozbawiony zależności optymalizator obrazów z wiersza poleceń, który konwertuje PNG, JPG, GIF, TIFF i BMP do WebP oraz AVIF. Działa w całości na Twojej maszynie, bez wysyłki do chmury, bez natywnych bindings i bez kompromisów w zakresie prywatności. Jedno polecenie npx instaluje wszystko — gotowe do użycia w terminalu, pipeline'ach CI/CD oraz jako tool-use dla agentów AI.

npx getwebp@latest ./images

Przestań walczyć z natywnymi zależnościami.

PackageX

Zero bindingów C++

Nie potrzebujesz python, make ani g++. Zainstaluj jednym poleceniem npx i uruchom wszędzie tam, gdzie działa Node.js.

Box

Pojedynczy plik / czyste WASM

Silnik WASM ~5 MB bez natywnych zależności. Działa na Docker Alpine, runnerach CI i funkcjach serverless.

Braces

Przewidywalne wyjście JSON

Zbudowane dla pipeline i agentów AI. Użyj --json, aby uzyskać strukturalne wyniki idealne do skryptów i automatyzacji.

Strukturalne wyjście do użytku programistycznego

Przełącz się na tryb AI za pomocą --json i otrzymaj maszynowo czytelne wyjście. Każdy plik, współczynnik kompresji, wymiary i status — wszystko w strukturalnym ładunku JSON.

Przykłady wyjścia CLI: tryby Human i AI

Tryb Human
# Activate Pro license
$ getwebp auth XXXX-XXXX-XXXX-ABCD
Verifying license...
 Activated! Pro plan unlocked.

# Convert a directory of images (Pro: recursive, concurrent)
$ getwebp ./images -o ./images/webp -q 85
 hero.jpg
 banner.png
 product-shot.jpg

Done: 3 succeeded, 0 failed
Avg saved: 34.2%

# Check current license status
$ getwebp status
Version    : 1.0.1
Mode       : Pro
License    : xxxx-xxxx-xxxx-ABCD
Expires    : 2026-12-31
Devices    : 1 / 3 used
Tryb AI (wyjście JSON)
// $ getwebp ./images -o ./images/webp -q 85 --json
// One JSON object per line (NDJSON). First line: version preamble.
{"@timestamp":"2026-04-12T10:00:00.000Z","@level":"info","@message":"GetWebP CLI 1.3.0","@module":"getwebp.cli","type":"version","data":{"getwebp":"1.3.0","ui":"1"}}
// Last line: convert.completed summary with all results.
{"@timestamp":"2026-04-12T10:00:01.234Z","@level":"info","@message":"Converted 3/3 files","@module":"getwebp.convert","type":"convert.completed","data":{
  "processed": 3,
  "successCount": 3,
  "failedCount": 0,
  "results": [
    {
      "file": "images/hero.jpg",
      "outputPath": "/abs/images/webp/hero.webp",
      "originalSize": 204800,
      "newSize": 134144,
      "savedRatio": 0.345,
      "saved": "34.5%",
      "quality": 82,
      "qualityMode": "auto",
      "status": "success"
    },
    {
      "file": "images/banner.png",
      "outputPath": "/abs/images/webp/banner.webp",
      "originalSize": 512000,
      "newSize": 327680,
      "savedRatio": 0.36,
      "saved": "36.0%",
      "quality": 85,
      "qualityMode": "auto",
      "status": "success"
    },
    {
      "file": "images/product-shot.jpg",
      "outputPath": "/abs/images/webp/product-shot.webp",
      "originalSize": 163840,
      "newSize": 102400,
      "savedRatio": 0.375,
      "saved": "37.5%",
      "quality": 80,
      "qualityMode": "auto",
      "status": "success"
    }
  ]
}}

Wbuduj go w swój przepływ pracy

name: Optimize Images
on:
  push:
    paths:
      - 'public/images/**'
jobs:
  optimize:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v4
      - name: Install getwebp CLI
        run: npm install -g getwebp
      - name: Convert images to WebP
        run: |
          getwebp ./public/images --json > report.ndjson
          # Check for failures: extract convert.completed and assert failedCount == 0
          grep '"convert.completed"' report.ndjson |             jq -e '.data.failedCount == 0'
      - name: Upload NDJSON report
        uses: actions/upload-artifact@v4
        with:
          name: webp-report
          path: report.ndjson

Free jest świetny do jednorazowych zadań. Pro jest stworzony do pipeline.

FunkcjaDarmowyPro
Konwersja pojedynczego katalogu
Kontrola stratna/bezstratna
Nieograniczona rekurencja (-r)
Wielowątkowa współbieżność
Nieograniczone wyjście JSON (--json)
Tryb watch (--watch)

FAQ dla deweloperów

Tak, całkowicie offline po instalacji. Silnik WASM działa wyłącznie na Twoim komputerze. Weryfikacja licencji wykonuje jedno połączenie sieciowe przy aktywacji, ale sama konwersja obrazów nigdy nie łączy się z internetem.

Tak. Ponieważ działa na czystym WASM przez Node.js, działa identycznie na macOS (Intel + Apple Silicon), Linux (x64 + ARM64) i Windows (x64). Nie są wymagane pliki binarne specyficzne dla platformy.

Sharp to fantastyczna biblioteka, ale wymaga kompilacji natywnych bindingów libvips, co nie działa w Alpine Docker i środowiskach serverless. getwebp używa czystego silnika WASM — brak kompilacji, brak gyp, brak natywnych zależności.

ImageMagick to narzędzie systemowe, które musi być instalowane oddzielnie (apt-get, brew), różni się w zależności od wersji systemu operacyjnego i nie ma strukturalnego wyjścia. getwebp to samodzielny pakiet Node.js z spójnym zachowaniem wszędzie.

Tak. Jedna licencja Pro może być aktywowana na maksymalnie 3 maszynach jednocześnie. Potrzebujesz więcej? Skontaktuj się z nami.