Skip to main content

Claude Code SDK i GitHub Action — automatyzacja bez interfejsu

TL;DR: Claude Code SDK to programmatyczny dostęp do agenta Claude w trybie headless — bez GUI, bez klikania, tylko bash i pipe. Zbudowany na tej samej filozofii co narzędzia Unix: podłącz wszędzie, łącz w łańcuchy, buduj CI. Claude GitHub Action (open source) działa na szczycie SDK — wystarczy skomentować issue w GitHubie, żeby Claude sam zaimplementował feature lub zrecenzował PR.

TL;DR

Claude Code SDK to programmatyczny dostęp do agenta Claude w trybie headless — bez GUI, bez klikania, tylko bash i pipe. Zbudowany na tej samej filozofii co narzędzia Unix: podłącz wszędzie, łącz w łańcuchy, buduj CI. Claude GitHub Action (open source) działa na szczycie SDK — wystarczy skomentować issue w GitHubie, żeby Claude sam zaimplementował feature lub zrecenzował PR.

Co to jest headless mode

Claude Code SDK to nie kolejny wrapper na API czatu. To dostęp do agenta — tego samego, który działa w terminalu — w trybie bezgłowym.

"It is a way to programmatically access the power of the Claude Code Agent in headless mode. This is a new kind of primitive and a new kind of building block that allows you to build applications that just weren't possible before."

Różnica jest fundamentalna: agent ma kontekst projektu, rozumie strukturę plików, może zapisywać kod — a nie tylko generować tekst.

Filozofia Unix — dlaczego to działa

SDK jest zaprojektowany jak narzędzie Unix. Oznacza to:

  • Możesz go podłączyć wszędzie, gdzie działa bash lub terminal
  • Dane wchodzą pipem, dane wychodzą pipem
  • Można budować złożone łańcuchy przetwarzania

To nie jest metafora. Poniższe komendy działają dosłownie.

Komendy SDK — z transkryptu, bez zmian

Podstawowe wywołanie


claude -p "write me a fibonacci sequence generator" --allowed-tools write_file

Flaga --allowed-tools daje agentowi proaktywny dostęp do narzędzi — np. zapis plików na lokalnym systemie. Bez niej Claude działa tylko w trybie read-only.

Analiza logów przez pipe


cat app.log | claude -p

Zamiast ręcznie czytać logi — pipe do Claude, który podsumowuje błędy. Działa na każdym output tekstowym.

Parsowanie wyjścia systemowego


ifconfig | claude -p

Ten sam wzorzec dla ifconfig, df, ps aux — cokolwiek, czego output jest trudny do zinterpretowania ręcznie.

JSON output — klucz do automatyzacji


claude -p "zadanie" --output-format json

Zamiast plain text Claude zwraca strukturyzowany JSON. To jest co sprawia, że SDK jest programistycznie użyteczny — możesz parsować output i budować na nim kolejne kroki pipeline'u.

Zastosowania CI/CD (wymienione wprost)

  • Code review — Claude reviewuje kod w pipeline
  • Własne lintery — dla rzeczy, których nie da się zdefiniować programistycznie, Claude robi to za ciebie
  • Chatboty — zasilane przez Claude Code agenta (możliwe, nie zademonstrowane)
  • Remote environments — pisanie kodu w odizolowanych środowiskach (możliwe, nie zademonstrowane)

GitHub Action — demo na żywo

GitHub Action to gotowa implementacja zbudowana na szczycie SDK. Jest open source.

Potrafi:

  • Tworzyć nowe feature'y na podstawie issue
  • Reviewować pull requesty
  • Triażować bugi

Workflow (dokładnie tak jak na prezentacji)

Issue #1 — power-ups do quiz app:

Treść issue: "add a powerup option in the config — 50/50 elimination for the skip question, it should award user points even though the question was skipped, users should be able to configure this from the config page"

Issue celowo miało skąpe detale — dużo przestrzeni twórczej dla agenta.

Issue #2 — per-question timer:

Globalne odliczanie istniało, brakowało timera per pytanie.

Przebieg:

  • Komentarz na issue: @Claude please implement this feature
  • ~4–5 sekund — Claude odpowiada komentarzem z potwierdzeniem i linkiem do job run
  • W logach GitHub Action widoczny JSON output z SDK
  • Claude sam tworzy TODO listę → przechodzi przez nią punkt po punkcie
  • Oba issue były przetwarzane równolegle jednocześnie
  • Ten sam mechanizm działa do review PR — Claude komentuje zmiany

Nadchodzące (ogłoszone, niezademonstrowane)

  • Python bindings dla SDK
  • TypeScript bindings dla SDK

Jak to wdrożyć

  • Zainstaluj Claude Code: claude w terminalu
  • Przetestuj pipe: echo "explain this" | claude -p
  • Przetestuj log analysis: cat twoj-log.txt | claude -p
  • Dodaj --output-format json i sparsuj output w skrypcie
  • Zainstaluj Claude GitHub Action na repozytorium
  • Stwórz issue z opisem feature'a i zakomentuj @Claude please implement this

Powiązane tematy

  • 01-podstawy — podstawy CLI i codzienna praca z Claude Code
  • 04-spec-driven-development — jak unikać vibe codingu i doom loops w CI
  • 04-automatyzacja — n8n vs Zapier vs Make — gdzie SDK pasuje w pipeline
  • 03-wzorce-agentow — wzorce dla agentów, w tym Planer-Executor i Meta-agent