Claude Code jako Agent AI – 7 Przykładów Zadań w Terminalu Przeskocz do głównej treści

Claude Code jako Agent AI – 7 Praktycznych Przykładów zadań w Terminalu [2026]

22 sierpnia 2026 8 min czytania Adrian Kowalski

Claude Code to nie tylko narzędzie do jednorazowych zapytań – to w pełni funkcjonalny agent AI, który może samodzielnie wykonywać złożone zadania, modyfikować kod, tworzyć pliki, analizować projekty i wiele więcej. W tym przewodniku pokażę Ci, jak w pełni wykorzystać możliwości Claude Code jako agenta programistycznego w 2026 roku.

Spis treści

Czym są agenci Claude Code?

W przeciwieństwie do zwykłego czatu AI, gdzie odpowiadasz na pytania, agent Claude Code ma dostęp do:

  • Systemu plików – może czytać, tworzyć i modyfikować pliki
  • Terminala – może wykonywać komendy, uruchamiać testy, instalować pakiety
  • Gita – może tworzyć commity, gałęzie, przeglądać historię
  • Własnego kontekstu – zarządza długimi sesjami przez /compact i /condense
  • Narzędzi – może używać linterów, formatterów, menedżerów pakietów

To sprawia, że Claude Code jest agentem programistycznym – wykonuje zadania samodzielnie, a nie tylko podpowiada rozwiązania.

Instalacja i pierwsze uruchomienie (Claude Code v0.4+)

W 2026 roku Claude Code jest dostępny w wersji stabilnej 0.4+. Najnowsza wersja wprowadza kilka kluczowych usprawnień:

# Instalacja najnowszej wersji
npm install -g @anthropic-ai/claude-code@latest

# Sprawdź zainstalowaną wersję
claude --version

# Konfiguracja (wymagane raz)
claude login

# Uruchomienie w bieżącym katalogu projektu
cd /moj/projekt
claude

Nowości w Claude Code 0.4/0.5+

FunkcjaWersjaOpis
Tryb agenta0.4+Autonomiczne wykonywanie wieloetapowych zadań bez potwierdzania każdego kroku
Skróty kontekstowe0.4+@file, @folder, @git – szybkie odwołania do zasobów
Tryb głosowy0.4+Dyktowanie promptów głosem (wymaga mikrofonu)
Sesje równoległe0.4+Możliwość prowadzenia kilku niezależnych sesji jednocześnie
Auto-git0.5+Automatyczne tworzenie commitów po zakończeniu zadania
Planowanie zadań0.5+Agent tworzy plan przed wykonaniem i pokazuje go do akceptacji

Tryb agenta – jak to działa?

Po uruchomieniu claude w katalogu projektu, domyślnie znajdujesz się w trybie interaktywnym. Możesz przełączyć się w tryb agenta na dwa sposoby:

Sposób 1: Mów wprost co zrobić

Po prostu opisz zadanie, a Claude automatycznie przejdzie w tryb agenta, jeśli zajdzie taka potrzeba:

claude

# W sesji interaktywnej napisz:
"Znajdź w projekcie wszystkie pliki .php które mają więcej niż 500 linii
 i podziel każdy z nich na mniejsze moduły. Dla każdego pliku utwórz
 nowy katalog z nazwą oryginalnego pliku i rozbij kod."

Claude przeanalizuje projekt, pokaże Ci plan, a po Twojej akceptacji rozpocznie pracę.

Sposób 2: Użyj flagi --agent

# Wymuś tryb agenta od razu
claude --agent "Przeprowadź refaktoring kodu w katalogu src/
  zgodnie z zasadami SOLID. Dla każdej wprowadzonej zmiany
  utwórz osobnego commita z opisem."

Praktyczne przykłady użycia agenta krok po kroku

Oto 7 realistycznych scenariuszy, w których Claude Code jako agent sprawdza się doskonale.

1. Automatyczne code review

# Przejdź do gałęzi z zmianami
git checkout feature/dodaj-płatności

# Uruchom Claude Code w trybie review
claude

# W sesji wpisz:
"Przeprowadź code review ostatnich zmian w tej gałęzi.
 Porównaj z gałęzią main.
 Wypisz: problemy bezpieczeństwa, antypatterny,
 sugestie optymalizacji, brakujące testy."

2. Migracja bazy danych i kodu

claude

"Chcę zmigrować tabelę 'users' z MySQL na PostgreSQL.
 1. Znajdź wszystkie zapytania SQL w projekcie dotyczące users
 2. Zmień składnię MySQL na PostgreSQL
 3. Zaktualizuj konfigurację połączenia w .env.example
 4. Utwórz skrypt migracyjny w katalogu database/migrations/
 5. Zaktualizuj dokumentację README.md
 Zatwierdź każdą zmianę osobnym commitem."

3. Generowanie pełnej dokumentacji projektu

claude

"Przeanalizuj cały projekt i wygeneruj:
 1. README.md z opisem architektury, setupem i deploymentem
 2. CONTRIBUTING.md z zasadami współpracy
 3. API.md z dokumentacją endpointów (znajdź routing)
 4. CHANGELOG.md na podstawie commitów w gicie
 5. Wykres zależności między modułami (Mermaid)
 Umieść wszystko w katalogu docs/"

4. Debugowanie i naprawa błędów

claude

"W aplikacji występuje błąd 'Cannot read properties of null'
 przy ładowaniu dashboardu. Kroki:
 1. Znajdź wszystkie miejsca gdzie występuje ten błąd
 2. Przeanalizuj stos wywołań
 3. Dodaj null safety checks
 4. Utwórz test jednostkowy reprodukujący błąd
 5. Uruchom testy i upewnij się, że przechodzą"

5. Uaktualnienie zależności (dependency bump)

claude

"Zaktualizuj wszystkie zależności w package.json do najnowszych wersji.
 1. Utwórz nową gałąź 'chore/deps-update'
 2. Zaktualizuj każdą paczkę osobno
 3. Po każdej aktualizacji uruchom testy (npm test)
 4. Jeśli testy nie przechodzą, wycofaj tę aktualizację
 5. Utwórz commity z opisem co zostało zaktualizowane
 6. Na koniec pokaż podsumowanie: co działa, a co wymaga ręcznej interwencji"

6. Dodanie nowej funkcjonalności

claude

"Dodaj funkcję eksportu danych do CSV w panelu admina:
 1. Stwórz nowy kontroler ExportController
 2. Zaimplementuj endpoint GET /api/admin/export/csv
 3. Dodaj filtr dat (od-do) i wybór kolumn
 4. Wygeneruj plik CSV z nagłówkami
 5. Dodaj testy jednostkowe i integracyjne
 6. Zaktualizuj panel admina o przycisk 'Eksportuj CSV'
 7. Uruchom testy i napraw ewentualne błędy"

7. Automatyczne SEO dla strony internetowej

claude

"Zoptymalizuj SEO dla strony firmowej:
 1. Przejrzyj wszystkie pliki HTML i sprawdź meta title/description
 2. Tam gdzie brakuje, dodaj (użyj nazwy pliku jako tematu)
 3. Sprawdź czy obrazy mają atrybuty alt
 4. Dodaj strukturalne dane schema.org dla strony głównej
 5. Wygeneruj sitemap.xml w katalogu publicznym
 6. Sprawdź, czy nie ma zduplikowanych tagów  lub <h1>
 7. Dla każdej zmiany utwórz commita"</code></pre>



<h2 class="wp-block-heading">Skróty kontekstowe – @file, @folder, @git</h2>



<p class="wp-block-paragraph">W Claude Code 0.4+ możesz używać skrótów kontekstowych, aby szybko odwołać się do konkretnych zasobów:</p>



<figure class="wp-block-table"><table><thead><tr><th>Skrót</th><th>Opis</th><th>Przykład</th></tr></thead><tbody><tr><td><code>@file:ścieżka</code></td><td>Odwołanie do konkretnego pliku</td><td><code>@file:src/app.js</code></td></tr><tr><td><code>@folder:ścieżka</code></td><td>Odwołanie do całego katalogu</td><td><code>@folder:src/utils/</code></td></tr><tr><td><code>@git:ref</code></td><td>Odwołanie do commita lub gałęzi</td><td><code>@git:HEAD~3</code> lub <code>@git:main</code></td></tr><tr><td><code>@git:diff</code></td><td>Bieżące zmiany w repozytorium</td><td><code>@git:diff</code></td></tr><tr><td><code>@web:url</code></td><td>Pobranie treści ze strony</td><td><code>@web:https://example.com</code></td></tr><tr><td><code>@terminal</code></td><td>Wynik ostatniej komendy w terminalu</td><td><code>@terminal</code></td></tr></tbody></table></figure>



<p class="wp-block-paragraph"><strong>Przykład użycia skrótów w jednym prompcie:</strong></p>



<pre class="wp-block-code"><code>"Porównaj @file:src/old/api.php z @git:main -- src/new/api.php
 i powiedz, które zmiany są istotne. Następnie przejrzyj
 @folder:tests/ i sprawdź czy testy pokrywają obie wersje."</code></pre>



<h2 class="wp-block-heading">Zaawansowane techniki: task runner i skrypty CLI</h2>



<p class="wp-block-paragraph">Claude Code może być używany jako <strong>silnik automatyzacji</strong> – tworząc skrypty, które uruchamiają Claude na zadaniach cyklicznych:</p>



<pre class="wp-block-code"><code>#!/bin/bash
# Skrypt: auto-review.sh
# Uruchamia Claude Code jako agent do code review przed każdym pushem

echo "🔍 Uruchamiam automatyczne code review..."
claude --agent --no-input 
  "Przeprowadź szybkie code review: @git:diff.
   Jeśli znajdziesz krytyczne problemy (security, data loss),
   wypisz je i NIE zatwierdzaj. W przeciwnym razie zatwierdź commita."

# Skrypt: auto-docs.sh
# Generuje dokumentację API co tydzień

echo "📚 Generuję dokumentację..."
claude --agent "Przejrzyj kod w @folder:src/api/,
   zaktualizuj dokumentację w docs/api.md,
   dodaj informacje o nowych endpointach."</code></pre>



<p class="wp-block-paragraph">Dodaj taki skrypt do <strong>Git Hooks</strong> (np. <code>.git/hooks/pre-push</code>) i masz automatyczne code review przy każdym pushu.</p>



<h2 class="wp-block-heading">Tryb planowania zadań (task planning)</h2>



<p class="wp-block-paragraph">W wersji 0.5+ Claude Code oferuje <strong>tryb planowania</strong> – przed przystąpieniem do pracy, agent tworzy szczegółowy plan i pokazuje go do akceptacji:</p>



<pre class="wp-block-code"><code>claude

"Przebuduj architekturę aplikacji z monolitu na mikrousługi.
 Najpierw przygotuj plan, a potem go zrealizuj."

# Claude odpowie:
# 📋 PLAN:
# 1. Analiza obecnej struktury (30 min)
# 2. Wydzielenie modułu UserService (45 min)
# 3. Wydzielenie modułu PaymentService (45 min)
# 4. Dodanie API Gateway (30 min)
# 5. Konfiguracja Docker Compose (20 min)
# 6. Testy integracyjne (30 min)
#
# Czy chcesz kontynuować? (y/n)</code></pre>



<p class="wp-block-paragraph">Możesz zaakceptować cały plan, zmodyfikować poszczególne kroki lub odrzucić.</p>



<h2 class="wp-block-heading">Wskazówki i najlepsze praktyki</h2>



<ol class="wp-block-list"><li><strong>Precyzyjne instrukcje</strong> – im bardziej szczegółowo opiszesz zadanie, tym lepszy wynik. Podawaj konkretne ścieżki plików, nazwy klas, oczekiwany rezultat.</li>
<li><strong>Używaj @file i @folder</strong> – zamiast opisywać co agent ma znaleźć, wskaż mu dokładnie gdzie szukać. Oszczędza tokeny i czas.</li>
<li><strong>Dziel duże zadania na mniejsze</strong> – zamiast „przebuduj całą aplikację” lepiej: „najpierw zrefaktoruj moduł logowania, potem płatności”.</li>
<li><strong>Używaj /compact regularnie</strong> – w długich sesjach kontekst rośnie. Kompresuj go co 10-15 interakcji, aby utrzymać wydajność.</li>
<li><strong>Testuj przed zatwierdzeniem</strong> – agent może popełniać błędy. Zawsze sprawdzaj wygenerowany kod przed dodaniem go do repozytorium.</li>
<li><strong>Używaj gałęzi w gicie</strong> – przed uruchomieniem agenta na większych zmianach, utwórz nową gałąź. Łatwiej wycofać się z błędnych decyzji.</li>
<li><strong>Monitoruj koszty</strong> – używaj <code>claude --cost</code> i <code>/status</code> aby kontrolować wydatki na API. Agent może wykonać setki wywołań API w ramach jednego zadania.</li></ol>



<h2 class="wp-block-heading">Podsumowanie</h2>



<p class="wp-block-paragraph">Claude Code jako agent programistyczny to potężne narzędzie, które może <strong>wielokrotnie przyspieszyć</strong> codzienną pracę programisty. Od code review, przez refaktoring, po dodawanie nowych funkcjonalności – agent radzi sobie z większością zadań, które normalnie zajęłyby godzinami.</p>



<p class="wp-block-paragraph">Kluczowe wnioski:</p>



<ul class="wp-block-list"><li>Tryb agenta (<code>--agent</code>) pozwala Claude wykonywać wieloetapowe zadania autonomicznie</li>
<li>Skróty kontekstowe (<code>@file</code>, <code>@folder</code>, <code>@git</code>) znacząco ułatwiają precyzyjne instrukcje</li>
<li>Planowanie zadań (w 0.5+) daje kontrolę nad procesem bez mikrozarządzania</li>
<li>Automatyzacja przez skrypty bash + Git Hooks pozwala włączyć Claude w CI/CD pipeline</li>
<li>Zawsze używaj gałęzi w gicie i monitoruj koszty API</li></ul>



<p class="wp-block-paragraph">Masz pomysł na automatyzację z użyciem Claude Code? <a href="/kontakt/"><strong>Skontaktuj się z nami</strong></a> – pomożemy Ci zaprojektować i wdrożyć rozwiązania AI w Twojej firmie.</p>




<p class="wp-block-paragraph">📌 Zobacz również: <a href="/ai-cli-kompletny-przewodnik-po-komendach-claude-code-ollama-i-narzedziach-ai-2026/"><strong>przewodnika po komendach AI CLI</strong></a>.</p>



<p class="wp-block-paragraph">📌 Zobacz również: <a href="/#kontakt"><strong>kontakt</strong></a>.</p>


<hr class="wp-block-separator has-alpha-channel-opacity" />



<p class="wp-block-paragraph"><em>Artykuł aktualizowany na bieżąco zgodnie z najnowszą wersją Claude Code (lato 2026).</em></p>
            </div>

            <!-- Tagi -->
            
            <!-- Udostępnij -->
            <div class="mt-8 pt-8 border-t border-gray-200">
                <h3 class="text-sm font-semibold text-gray-500 uppercase tracking-wide mb-3">Udostępnij artykuł</h3>
                                <div class="flex flex-wrap gap-3">
                    <a href="https://www.facebook.com/sharer/sharer.php?u=https%3A%2F%2Fdevlynx.pl%2Fclaude-code-jako-agent-ai-7-praktycznych-przykladow-zadan-w-terminalu-2026%2F"
                       target="_blank" rel="noopener"
                       class="inline-flex items-center gap-2 px-4 py-2 bg-blue-600 text-white text-sm font-medium rounded-lg hover:bg-blue-700 transition-colors">
                        <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M24 12.073c0-6.627-5.373-12-12-12s-12 5.373-12 12c0 5.99 4.388 10.954 10.125 11.854v-8.385H7.078v-3.47h3.047V9.43c0-3.007 1.792-4.669 4.533-4.669 1.312 0 2.686.235 2.686.235v2.953H15.83c-1.491 0-1.956.925-1.956 1.874v2.25h3.328l-.532 3.47h-2.796v8.385C19.612 23.027 24 18.062 24 12.073z"/></svg>
                        Facebook
                    </a>
                    <a href="https://www.linkedin.com/shareArticle?mini=true&url=https%3A%2F%2Fdevlynx.pl%2Fclaude-code-jako-agent-ai-7-praktycznych-przykladow-zadan-w-terminalu-2026%2F&title=Claude+Code+jako+Agent+AI+%E2%80%93+7+Praktycznych+Przyk%C5%82ad%C3%B3w+zada%C5%84+w+Terminalu+%5B2026%5D"
                       target="_blank" rel="noopener"
                       class="inline-flex items-center gap-2 px-4 py-2 bg-sky-700 text-white text-sm font-medium rounded-lg hover:bg-sky-800 transition-colors">
                        <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z"/></svg>
                        LinkedIn
                    </a>
                    <a href="https://twitter.com/intent/tweet?url=https%3A%2F%2Fdevlynx.pl%2Fclaude-code-jako-agent-ai-7-praktycznych-przykladow-zadan-w-terminalu-2026%2F&text=Claude+Code+jako+Agent+AI+%E2%80%93+7+Praktycznych+Przyk%C5%82ad%C3%B3w+zada%C5%84+w+Terminalu+%5B2026%5D"
                       target="_blank" rel="noopener"
                       class="inline-flex items-center gap-2 px-4 py-2 bg-gray-900 text-white text-sm font-medium rounded-lg hover:bg-gray-800 transition-colors">
                        <svg class="w-4 h-4" fill="currentColor" viewBox="0 0 24 24"><path d="M18.244 2.25h3.308l-7.227 8.26 8.502 11.24H16.17l-4.714-6.231-5.401 6.231H2.744l7.737-8.835L1.254 2.25H8.08l4.259 5.622zm-1.161 17.52h1.833L7.084 4.126H5.117z"/></svg>
                        X / Twitter
                    </a>
                </div>
            </div>

            <!-- Nawigacja między wpisami -->
                                    <div class="mt-12 pt-8 border-t border-gray-200 grid grid-cols-1 md:grid-cols-2 gap-4">
                                    <a href="https://devlynx.pl/ai-cli-kompletny-przewodnik-po-komendach-claude-code-ollama-i-narzedziach-ai-2026/"
                       class="flex items-start gap-3 p-5 bg-gray-50 rounded-xl hover:bg-blue-50 border border-transparent hover:border-blue-200 transition-all group">
                        <svg class="w-5 h-5 text-gray-400 group-hover:text-blue-500 mt-1 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path>
                        </svg>
                        <div>
                            <div class="text-xs text-gray-400 mb-1">Poprzedni artykuł</div>
                            <div class="font-semibold text-gray-800 group-hover:text-blue-700 text-sm leading-snug">AI CLI – Kompletny Przewodnik po Komendach Claude Code, Ollama i Narzędziach AI 2026</div>
                        </div>
                    </a>
                
                            </div>
            
            <!-- Komentarze -->
                            <div class="mt-12">
                    
<div id="comments" class="mt-0">

    <!-- Lista komentarzy -->
    
    <!-- Formularz nowego komentarza -->
            	<div id="respond" class="comment-respond">
		<h3 id="reply-title" class="comment-reply-title">Dodaj komentarz <small><a rel="nofollow" id="cancel-comment-reply-link" href="/claude-code-jako-agent-ai-7-praktycznych-przykladow-zadan-w-terminalu-2026/#respond" style="display:none;">Anuluj odpowiedź</a></small></h3><form action="https://devlynx.pl/wp-comments-post.php" method="post" id="commentform" class="comment-form"><div class="mt-0">
                <label for="comment" class="block text-sm font-medium text-gray-700 mb-1">Komentarz <span class="text-red-500">*</span></label>
                <textarea id="comment" name="comment" rows="5" required
                    class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors resize-y"
                    placeholder="Twoja opinia lub pytanie..."></textarea>
                </div><div class="grid grid-cols-1 md:grid-cols-2 gap-4"><div>
                <label for="author" class="block text-sm font-medium text-gray-700 mb-1">Imię i nazwisko <span class="text-red-500">*</span></label>
                <input type="text" id="author" name="author" value=""
                    class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors"
                    placeholder="Jan Kowalski" aria-required='true'>
                </div>
<div>
                <label for="email" class="block text-sm font-medium text-gray-700 mb-1">Adres e-mail <span class="text-red-500">*</span></label>
                <input type="email" id="email" name="email" value=""
                    class="w-full px-4 py-3 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-blue-500 transition-colors"
                    placeholder="jan@przyklad.pl" aria-required='true'>
                </div></div>

<p class="comment-form-cookies-consent"><input id="wp-comment-cookies-consent" name="wp-comment-cookies-consent" type="checkbox" value="yes" /> <label for="wp-comment-cookies-consent">Zapamiętaj moje dane w tej przeglądarce podczas pisania kolejnych komentarzy.</label></p>
<div class="flex items-center gap-4 mt-2"><button type="submit" id="submit" name="submit"
                class="inline-flex items-center gap-2 px-6 py-3 bg-gradient-to-r from-blue-600 to-purple-600 text-white font-semibold rounded-xl hover:opacity-90 transition-opacity shadow-md mt-2">
                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 19l9 2-9-18-9 18 9-2zm0 0v-8"></path>
                </svg>
                submit
            </button> <input type='hidden' name='comment_post_ID' value='339' id='comment_post_ID' />
<input type='hidden' name='comment_parent' id='comment_parent' value='0' />
</div></form>	</div><!-- #respond -->
	    </div>

                </div>
                    </div>
    </div>

    <!-- CTA -->
    <div class="bg-gradient-to-r from-blue-600 to-purple-600 py-12">
        <div class="container-custom max-w-4xl text-center text-white">
            <p class="text-lg mb-4">Chcesz czytać więcej artykułów o technologii i IT?</p>
            <a href="https://devlynx.pl/blog/"
               class="inline-flex items-center gap-2 px-6 py-3 bg-white text-blue-700 font-semibold rounded-xl hover:bg-blue-50 transition-colors shadow-lg">
                <svg class="w-5 h-5" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path>
                </svg>
                Wróć do bloga
            </a>
        </div>
    </div>
</main>


    </div>
    
    
    
        <!-- BlogPosting Schema -->
    <script type="application/ld+json">
    {
        "@context": "https://schema.org",
        "@type": "BlogPosting",
        "headline": "Claude Code jako Agent AI – 7 Praktycznych Przykładów zadań w Terminalu [2026]",
        "description": "Claude Code to nie tylko narzędzie do jednorazowych zapytań – to w pełni funkcjonalny agent AI, który może samodzielnie wykonywać złożone zadania, modyfikować kod, tworzyć pliki, analizować projekty i wiele…",
        "author": {
            "@type": "Person",
            "name": "Adrian Kowalski"
        },
        "publisher": {
            "@type": "Organization",
            "name": "DevLynx",
            "logo": {
                "@type": "ImageObject",
                "url": "https://devlynx.pl/wp-content/uploads/2026/06/devlynx-logo-512x512.png"
            }        },
        "datePublished": "2026-08-22T10:19:19+02:00",
        "dateModified": "2026-08-22T10:58:06+02:00",
        "mainEntityOfPage": {
            "@type": "WebPage",
            "@id": "https://devlynx.pl/claude-code-jako-agent-ai-7-praktycznych-przykladow-zadan-w-terminalu-2026/"
        },
                "image": {
            "@type": "ImageObject",
            "url": "https://devlynx.pl/wp-content/uploads/2026/08/Gemini_Generated_Image_2tgsl72tgsl72tgs-1024x572.jpg",
            "width": 1200,
            "height": 630
        },
                "articleSection": "<a href="https://devlynx.pl/category/bez-kategorii/" rel="category tag">Bez kategorii</a>",
        "keywords": ""
    }
    </script>

    <!-- BreadcrumbList dla artykułu -->
    <script type="application/ld+json">
    {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
        {
            "@type": "ListItem",
            "position": 1,
            "name": "DevLynx",
            "item": "https://devlynx.pl/"
        },
        {
            "@type": "ListItem",
            "position": 2,
            "name": "Blog IT Porady Technologiczne dla Firm",
            "item": "https://devlynx.pl/blog/"
        },
        {
            "@type": "ListItem",
            "position": 3,
            "name": "Bez kategorii",
            "item": "https://devlynx.pl/category/bez-kategorii/"
        },
        {
            "@type": "ListItem",
            "position": 4,
            "name": "Claude Code jako Agent AI – 7 Praktycznych Przykładów zadań w Terminalu [2026]",
            "item": "https://devlynx.pl/claude-code-jako-agent-ai-7-praktycznych-przykladow-zadan-w-terminalu-2026/"
        }
    ]
}    </script>
        
    <!-- Back to Top Button -->
    <button 
        id="back-to-top" 
        class="hidden fixed bottom-8 right-8 bg-gradient-to-r from-blue-600 to-purple-600 text-white p-4 rounded-full shadow-2xl hover:shadow-blue-500/50 transition-all duration-300 transform hover:scale-110 z-50 glow"
        aria-label="Przewiń do góry strony"
    >
        <svg aria-hidden="true" class="w-6 h-6" fill="none" stroke="currentColor" viewBox="0 0 24 24">
            <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 10l7-7m0 0l7 7m-7-7v18"></path>
        </svg>
    </button>
    
    <!-- Footer -->
    <footer class="bg-gray-900 text-white">
        <div class="container-custom py-16">
            <div class="grid grid-cols-1 md:grid-cols-4 gap-8 mb-12">
                <!-- O firmie -->
                <div>
                    <h3 class="text-2xl font-bold mb-4">DevLynx</h3>
                    <p class="text-gray-400 mb-6">Tworzymy nowoczesne rozwiązania IT, które pomagają firmom rozwijać się w cyfrowym świecie.</p>
                                                        </div>
                
                <!-- Nawigacja -->
                <div>
                    <h4 class="text-lg font-semibold mb-4">Nawigacja</h4>
                    <ul class="space-y-2 text-gray-400" aria-label="Nawigacja stopki">
                        <li><a href="https://devlynx.pl/" class="hover:text-white transition-colors">Strona główna</a></li>
                        <li><a href="https://devlynx.pl/#uslugi" class="hover:text-white transition-colors">Usługi</a></li>
                        <li><a href="https://devlynx.pl/#portfolio" class="hover:text-white transition-colors">Portfolio</a></li>
                        <li><a href="https://devlynx.pl/blog/" class="hover:text-white transition-colors">Blog</a></li>
                        <li><a href="https://devlynx.pl/#kontakt" class="hover:text-white transition-colors">Kontakt</a></li>
                    </ul>
                </div>
                
                <!-- Usługi -->
                <div>
                    <h4 class="text-lg font-semibold mb-4">Usługi</h4>
                    <ul class="space-y-2 text-gray-400" aria-label="Lista usług">
                        <li><a href="https://devlynx.pl/web-development" class="hover:text-white transition-colors">Strony & Aplikacje Web</a></li>
                        <li><a href="https://devlynx.pl/mobile-apps" class="hover:text-white transition-colors">Aplikacje Mobilne</a></li>
                        <li><a href="https://devlynx.pl/ecommerce" class="hover:text-white transition-colors">E-commerce</a></li>
                        <li><a href="https://devlynx.pl/ui-ux" class="hover:text-white transition-colors">UI/UX Design</a></li>
                        <li><a href="https://devlynx.pl/cloud-devops" class="hover:text-white transition-colors">Cloud & DevOps</a></li>
                        <li><a href="https://devlynx.pl/security" class="hover:text-white transition-colors">Bezpieczeństwo IT</a></li>
                    </ul>
                </div>
                
                <!-- Kontakt -->
                <div>
                    <h4 class="text-lg font-semibold mb-4">Kontakt</h4>
                    <ul class="space-y-3 text-gray-400" aria-label="Dane kontaktowe">
                        <li class="flex items-center">
                            <svg class="w-5 h-5 mr-2 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z"></path>
                            </svg>
                            <a href="mailto:kontakt@devlynx.pl" class="hover:text-white transition-colors">kontakt@devlynx.pl</a>
                        </li>
                        <li class="flex items-center">
                            <svg class="w-5 h-5 mr-2 flex-shrink-0" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                                <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M8 12h.01M12 12h.01M16 12h.01M21 12c0 4.418-4.03 8-9 8a9.863 9.863 0 01-4.255-.949L3 20l1.395-3.72C3.512 15.042 3 13.574 3 12c0-4.418 4.03-8 9-8s9 3.582 9 8z"></path>
                            </svg>
                            <a href="https://devlynx.pl/#kontakt" class="hover:text-white transition-colors">Formularz kontaktowy</a>
                        </li>
                    </ul>
                    <a href="https://devlynx.pl/#kontakt" class="inline-block mt-5 px-5 py-2.5 bg-gradient-to-r from-blue-600 to-purple-600 text-white text-sm font-semibold rounded-lg hover:opacity-90 transition-opacity" aria-label="Napisz do nas przez formularz kontaktowy">
                        Napisz do nas →
                    </a>
                </div>
            </div>
            
            <div class="border-t border-gray-800 pt-8">
        <div class="flex flex-col md:flex-row justify-between items-center text-gray-400 text-sm">
            <p>© 2026 DevLynx. Wszystkie prawa zastrzeżone.</p>
            <div class="flex space-x-6 mt-4 md:mt-0" aria-label="Linki prawne">
                                                <a href="https://devlynx.pl/polityka-prywatnosci/" class="hover:text-white transition-colors">Polityka prywatności</a>
                        <a href="https://devlynx.pl/regulamin/" class="hover:text-white transition-colors">Regulamin</a>
                        <a href="https://devlynx.pl/polityka-prywatnosci/#cookies" class="hover:text-white transition-colors">Cookies</a>
                    </div>
                </div>
            </div>
        </div>
    </footer>
    
    <!-- Cookie Consent Banner (RODO Compliance) -->
        <div id="cookie-banner" class="fixed bottom-0 left-0 right-0 bg-gray-900 text-white p-4 z-[9999] shadow-2xl border-t-4 border-primary">
        <div class="container-custom flex flex-col md:flex-row items-center justify-between gap-4">
            <div class="flex items-start gap-3">
                <svg class="w-6 h-6 text-yellow-400 flex-shrink-0 mt-1" fill="none" stroke="currentColor" viewBox="0 0 24 24">
                    <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"></path>
                </svg>
                <p class="text-sm md:text-base">
                    Ta strona używa plików cookies dla poprawy doświadczeń użytkownika. 
                    <a href="https://devlynx.pl/polityka-prywatnosci/" class="underline hover:text-primary transition-colors">
                        Więcej informacji
                    </a>
                </p>
            </div>
            <div class="flex gap-2 flex-shrink-0">
                <button 
                    onclick="acceptCookies()" 
                    class="bg-primary hover:bg-secondary px-6 py-2 rounded-lg font-semibold transition-colors shadow-lg hover:shadow-xl"
                    aria-label="Zaakceptuj cookies"
                >
                    Akceptuję
                </button>
                <button 
                    onclick="rejectCookies()" 
                    class="bg-gray-700 hover:bg-gray-600 px-6 py-2 rounded-lg font-semibold transition-colors"
                    aria-label="Odrzuć cookies"
                >
                    Odrzuć
                </button>
            </div>
        </div>
    </div>
    
    <script>
    function acceptCookies() {
        // Ustaw cookie na 1 rok
        document.cookie = "devlynx_cookie_accepted=true; max-age=31536000; path=/; SameSite=Lax";
        
        // Usuń banner
        const banner = document.getElementById('cookie-banner');
        if (banner) {
            banner.classList.add('animate-fade-out');
            setTimeout(() => banner.remove(), 300);
        }
        
        // Tu możesz załadować Google Analytics, Facebook Pixel itp.
        // loadGoogleAnalytics();
        // loadFacebookPixel();
    }

    function rejectCookies() {
        // Ustaw cookie odmowy
        document.cookie = "devlynx_cookie_accepted=false; max-age=31536000; path=/; SameSite=Lax";
        
        // Usuń banner
        const banner = document.getElementById('cookie-banner');
        if (banner) {
            banner.classList.add('animate-fade-out');
            setTimeout(() => banner.remove(), 300);
        }
    }
    </script>
        
    <!-- Contact Form JavaScript -->
    <script>
    document.addEventListener('DOMContentLoaded', function() {
        const form = document.getElementById('contact-form');
        const inquiryType = document.getElementById('inquiry_type');
        const messageField = document.getElementById('message');
        const charCount = document.getElementById('char-count');
        const submitBtn = document.getElementById('submit-btn');
        const btnText = document.getElementById('btn-text');
        const btnLoading = document.getElementById('btn-loading');
        const formMessage = document.getElementById('form-message');

        // Animacje wejścia formularza przy scrollu
        const observerOptions = {
            threshold: 0.1,
            rootMargin: '0px 0px -50px 0px'
        };

        const observer = new IntersectionObserver(function(entries) {
            entries.forEach(entry => {
                if (entry.isIntersecting) {
                    entry.target.classList.remove('opacity-0', 'translate-y-8');
                    entry.target.classList.add('opacity-100', 'translate-y-0');
                }
            });
        }, observerOptions);

        // Obserwuj formularz i karty kontaktowe
        const formContainer = document.querySelector('.form-container');
        const contactInfo = document.querySelector('.contact-info-container');
        
        if (formContainer) observer.observe(formContainer);
        if (contactInfo) observer.observe(contactInfo);

        // Licznik znaków dla wiadomości
        if (messageField && charCount) {
            messageField.addEventListener('input', function() {
                const count = this.value.length;
                charCount.textContent = count;
                
                if (count > 950) {
                    charCount.classList.add('text-red-500');
                    charCount.classList.remove('text-gray-500');
                } else {
                    charCount.classList.add('text-gray-500');
                    charCount.classList.remove('text-red-500');
                }
            });
        }

        // AJAX Form Submission
        if (form) {
            form.addEventListener('submit', async function(e) {
                e.preventDefault();

                // Walidacja podstawowa
                const fullName = document.getElementById('full_name').value.trim();
                const email = document.getElementById('email').value.trim();
                const phone = document.getElementById('phone').value.trim();
                const message = document.getElementById('message').value.trim();
                const honeypot = document.getElementById('website').value;

                // Sprawdź honeypot (pole antyspamowe)
                if (honeypot) {
                    showMessage('Wykryto spam. Formularz nie został wysłany.', 'error');
                    return;
                }

                // Sprawdź imię/nazwę firmy
                if (!fullName || fullName.length < 3) {
                    showMessage('Proszę podać imię i nazwisko lub nazwę firmy (min. 3 znaki).', 'error');
                    return;
                }

                // WALIDACJA: Email LUB telefon - przynajmniej jedno wymagane
                if (!email && !phone) {
                    showMessage('Proszę podać email lub telefon (wymagane co najmniej jedno).', 'error');
                    
                    // Podświetl oba pola
                    document.getElementById('email').classList.add('border-red-500');
                    document.getElementById('phone').classList.add('border-red-500');
                    
                    setTimeout(() => {
                        document.getElementById('email').classList.remove('border-red-500');
                        document.getElementById('phone').classList.remove('border-red-500');
                    }, 3000);
                    return;
                }

                // Walidacja email (jeśli podany)
                if (email) {
                    const emailPattern = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
                    if (!emailPattern.test(email)) {
                        showMessage('Proszę podać poprawny adres email.', 'error');
                        document.getElementById('email').classList.add('border-red-500');
                        setTimeout(() => {
                            document.getElementById('email').classList.remove('border-red-500');
                        }, 3000);
                        return;
                    }
                }

                // Walidacja telefonu (jeśli podany)
                if (phone) {
                    const phonePattern = /^[+]?[0-9\s\-()]{9,}$/;
                    if (!phonePattern.test(phone)) {
                        showMessage('Proszę podać poprawny numer telefonu (min. 9 cyfr).', 'error');
                        document.getElementById('phone').classList.add('border-red-500');
                        setTimeout(() => {
                            document.getElementById('phone').classList.remove('border-red-500');
                        }, 3000);
                        return;
                    }
                }

                // Walidacja wiadomości
                if (!message || message.length < 20) {
                    showMessage('Wiadomość musi zawierać co najmniej 20 znaków.', 'error');
                    return;
                }

                // Pokaż loading
                setLoading(true);

                try {
                    // Zbierz dane z formularza
                    const formData = new FormData(form);
                    formData.append('action', 'devlynx_contact_form');
                    formData.append('nonce', '319f89d4e3');

                    // Wyślij AJAX
                    const response = await fetch('https://devlynx.pl/wp-admin/admin-ajax.php', {
                        method: 'POST',
                        body: formData
                    });

                    const data = await response.json();

                    if (data.success) {
                        showMessage(data.data.message || 'Wiadomość została wysłana pomyślnie!', 'success');
                        form.reset();
                        if (charCount) charCount.textContent = '0';
                        
                        // Animacja sukcesu na przycisku
                        submitBtn.classList.add('animate-pulse');
                        setTimeout(() => {
                            submitBtn.classList.remove('animate-pulse');
                        }, 2000);
                    } else {
                        showMessage(data.data.message || 'Wystąpił błąd podczas wysyłania formularza.', 'error');
                    }
                } catch (error) {
                    console.error('Error:', error);
                    showMessage('Wystąpił błąd podczas wysyłania formularza. Spróbuj ponownie.', 'error');
                } finally {
                    setLoading(false);
                }
            });
        }

        function setLoading(loading) {
            if (loading) {
                submitBtn.disabled = true;
                btnText.classList.add('hidden');
                btnLoading.classList.remove('hidden');
                submitBtn.classList.add('opacity-75', 'cursor-not-allowed');
            } else {
                submitBtn.disabled = false;
                btnText.classList.remove('hidden');
                btnLoading.classList.add('hidden');
                submitBtn.classList.remove('opacity-75', 'cursor-not-allowed');
            }
        }

        function showMessage(message, type) {
            formMessage.innerHTML = `
                <div class="p-4 rounded-lg animate-fade-in ${type === 'success' ? 'bg-green-50 text-green-800 border-2 border-green-200' : 'bg-red-50 text-red-800 border-2 border-red-200'}">
                    <div class="flex items-start">
                        <svg class="w-6 h-6 mr-3 flex-shrink-0 mt-0.5" fill="currentColor" viewBox="0 0 20 20">
                            ${type === 'success' 
                                ? '<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z" clip-rule="evenodd"/>'
                                : '<path fill-rule="evenodd" d="M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z" clip-rule="evenodd"/>'
                            }
                        </svg>
                        <p class="font-medium">${message}</p>
                    </div>
                </div>
            `;
            
            // Scroll do wiadomości
            formMessage.scrollIntoView({ behavior: 'smooth', block: 'center' });
            
            // Auto-hide po 6 sekundach dla sukcesu
            if (type === 'success') {
                setTimeout(() => {
                    formMessage.innerHTML = '';
                }, 6000);
            }
        }
    });

    // FAQ Accordion
    document.addEventListener('DOMContentLoaded', function() {
        const faqQuestions = document.querySelectorAll('.faq-question');
        
        faqQuestions.forEach(function(question) {
            question.addEventListener('click', function() {
                const answer = this.nextElementSibling;
                const icon = this.querySelector('.faq-icon');
                const isOpen = !answer.classList.contains('hidden');
                
                // Zamknij wszystkie inne odpowiedzi
                document.querySelectorAll('.faq-answer').forEach(function(a) {
                    a.classList.add('hidden');
                });
                document.querySelectorAll('.faq-icon').forEach(function(i) {
                    i.classList.remove('rotate-180');
                });
                
                // Przełącz aktualną odpowiedź
                if (!isOpen) {
                    answer.classList.remove('hidden');
                    icon.classList.add('rotate-180');
                    
                    // Płynne przewinięcie do pytania
                    setTimeout(() => {
                        question.scrollIntoView({ behavior: 'smooth', block: 'nearest' });
                    }, 100);
                }
            });
        });
    });
    </script>
    
    <script type="speculationrules">
{"prefetch":[{"source":"document","where":{"and":[{"href_matches":"/*"},{"not":{"href_matches":["/wp-*.php","/wp-admin/*","/wp-content/uploads/*","/wp-content/*","/wp-content/plugins/*","/wp-content/themes/devlynx-theme/*","/*\\?(.+)"]}},{"not":{"selector_matches":"a[rel~=\"nofollow\"]"}},{"not":{"selector_matches":".no-prefetch, .no-prefetch a"}}]},"eagerness":"conservative"}]}
</script>
<script id="devlynx-scripts-js" src="https://devlynx.pl/wp-content/themes/devlynx-theme/assets/js/main.min.js?ver=1781636273"></script>
<script id="wp-emoji-settings" type="application/json">
{"baseUrl":"https://s.w.org/images/core/emoji/17.0.2/72x72/","ext":".png","svgUrl":"https://s.w.org/images/core/emoji/17.0.2/svg/","svgExt":".svg","source":{"concatemoji":"https://devlynx.pl/wp-includes/js/wp-emoji-release.min.js?ver=7.1.2"}}
</script>
<script type="module">
/*! This file is auto-generated */
var e="script#wp-emoji-settings",t=document.querySelector(e);if(!(t instanceof HTMLScriptElement))throw new Error("Element missing: "+e);const r=JSON.parse(t.text),s=(window._wpemojiSettings=r,"wpEmojiSettingsSupports"),o=["flag","emoji"];function i(e){try{var t={supportTests:e,timestamp:(new Date).valueOf()};sessionStorage.setItem(s,JSON.stringify(t))}catch(e){}}function c(e,t,n){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);t=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(n,0,0);const r=new Uint32Array(e.getImageData(0,0,e.canvas.width,e.canvas.height).data);return t.every((e,t)=>e===r[t])}function p(e,t){e.clearRect(0,0,e.canvas.width,e.canvas.height),e.fillText(t,0,0);var n=e.getImageData(16,16,1,1);for(let e=0;e<n.data.length;e++)if(0!==n.data[e])return!1;return!0}function u(e,t,n,r){switch(t){case"flag":return n(e,"\ud83c\udff3\ufe0f\u200d\u26a7\ufe0f","\ud83c\udff3\ufe0f\u200b\u26a7\ufe0f")?!1:!n(e,"\ud83c\udde8\ud83c\uddf6","\ud83c\udde8\u200b\ud83c\uddf6")&&!n(e,"\ud83c\udff4\udb40\udc67\udb40\udc62\udb40\udc65\udb40\udc6e\udb40\udc67\udb40\udc7f","\ud83c\udff4\u200b\udb40\udc67\u200b\udb40\udc62\u200b\udb40\udc65\u200b\udb40\udc6e\u200b\udb40\udc67\u200b\udb40\udc7f");case"emoji":return!r(e,"\ud83e\u1fac8")}return!1}function f(e,t,n,r){let a;const s=(a="undefined"!=typeof WorkerGlobalScope&&self instanceof WorkerGlobalScope?new OffscreenCanvas(300,150):document.createElement("canvas")).getContext("2d",{willReadFrequently:!0}),o=(s.textBaseline="top",s.font="600 32px Arial",{});return e.forEach(e=>{o[e]=t(s,e,n,r)}),o}function a(e){var t=document.createElement("script");t.src=e,t.defer=!0,document.head.appendChild(t)}r.supports={everything:!0,everythingExceptFlag:!0},new Promise(t=>{let n=function(){try{var e=JSON.parse(sessionStorage.getItem(s));if("object"==typeof e&&"number"==typeof e.timestamp&&(new Date).valueOf()<e.timestamp+604800&&"object"==typeof e.supportTests)return e.supportTests}catch(e){}return null}();if(!n){if("undefined"!=typeof Worker&&"undefined"!=typeof OffscreenCanvas&&"undefined"!=typeof URL&&URL.createObjectURL&&"undefined"!=typeof Blob)try{var e="postMessage("+f.toString()+"("+[JSON.stringify(o),u.toString(),c.toString(),p.toString()].join(",")+"));",r=new Blob([e],{type:"text/javascript"});const a=new Worker(URL.createObjectURL(r),{name:"wpTestEmojiSupports"});return void(a.onmessage=e=>{i(n=e.data),a.terminate(),t(n)})}catch(e){}i(n=f(o,u,c,p))}t(n)}).then(e=>{for(const n in e)r.supports[n]=e[n],r.supports.everything=r.supports.everything&&r.supports[n],"flag"!==n&&(r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&r.supports[n]);var t;r.supports.everythingExceptFlag=r.supports.everythingExceptFlag&&!r.supports.flag,r.supports.everything||((t=r.source||{}).concatemoji?a(t.concatemoji):t.wpemoji&&t.twemoji&&(a(t.twemoji),a(t.wpemoji)))});
//# sourceURL=https://devlynx.pl/wp-includes/js/wp-emoji-loader.min.js
</script>
</body>
</html>