Terminal, Paketmanager & die Claude-Landschaft

Bevor es um Agents und MCP-Server geht, lohnt sich ein Blick auf den Werkzeugkasten: Woraus besteht die Claude-Produktfamilie eigentlich, warum ist das Terminal dein wichtigstes Interface für agentische Arbeit, und wie hängen Pakete, Environments und Lizenzen zusammen?

Die Claude-Produktlandschaft

Stell dir Anthropics Entwickler-Produkte als Schichten vor, vom rohen Baustein bis zum fertigen Produkt:

  • Claude API — roher Modellzugriff. Du schickst Nachrichten an die Messages API und bekommst Antworten zurück. Alles andere baut darauf auf.
  • Claude SDK — die offiziellen Client-Bibliotheken (Python, TypeScript und mehr), die die API mit typisierten Requests, Streaming-Helfern und Fehlerbehandlung umhüllen.
  • Claude Agent SDK — ein Framework, um eigene Agents zu bauen. Es liefert den Agent-Loop, eingebaute Tools (Dateizugriff, Bash, Suche) und Context Management mit — du gibst Prompt und Optionen vor, statt den Loop selbst zu schreiben.
  • Claude Code — ein fertiger Coding-Agent als CLI, gebaut auf genau diesem Stack. Du installierst ihn, startest ihn in einem Projektordner, und er liest, editiert und führt Code für dich aus.

Prüfungshinweis: Die CCAF-Prüfung konzentriert sich auf Claude Code, das Agent SDK, die API und MCP. Claude Chat und Cowork sind Endnutzer-Produkte und nicht prüfungsrelevant.

Terminal- & Shell-Grundlagen

Das Terminal ist ein Textfenster in deinen Rechner; die Shell ist das Programm darin, das deine Befehle interpretiert. bash (die "Bourne Again Shell") ist der Klassiker unter Linux, zsh der macOS-Standard — für unsere Zwecke verhalten sich beide fast identisch. Dein Editor zeigt Dateien an; die Shell tut Dinge:

cd projects/my-app   # Verzeichnis wechseln
ls                   # Dateien auflisten (Windows cmd: dir)
pwd                  # Wo bin ich?

Warum ist das wichtig? Agentische Tools leben im Terminal. Claude Code läuft dort, Installations-Skripte laufen dort, und wenn ein Agent einen Bash-Befehl ausführt, solltest du lesen können, was er da tut. Ein sicherer Umgang mit der CLI ist für diese Zertifizierung eine Kernkompetenz, kein Nice-to-have.

Claude Code installieren

Der offizielle Weg führt über npm:

npm install -g @anthropic-ai/claude-code

Es gibt auch native Installer — curl -fsSL https://claude.ai/install.sh | bash unter macOS/Linux oder irm https://claude.ai/install.ps1 | iex in der PowerShell unter Windows. Nach der Installation öffnest du ein Terminal in einem Projektordner und startest:

claude

Paketmanager & Registries

Niemand schreibt einen HTTP-Client von Grund auf neu. Eine Registry ist ein öffentlicher Index wiederverwendbarer Pakete; ein Paketmanager ist das CLI, das sie herunterlädt und Versionen verwaltet:

  • npm installiert JavaScript/TypeScript-Pakete von npmjs.com
  • pip installiert Python-Pakete von PyPI (pypi.org)
npm install axios                        # JS: HTTP-Client
pip install requests beautifulsoup4      # Python: HTTP + HTML-Parsing

Jeder kann in diese Registries publishen — prüfe also die Vertrauenssignale, bevor du dich auf ein Paket verlässt: wöchentliche Downloads, letztes Release, offene Issues, und ob eine bekannte Organisation dahintersteht.

Virtuelle Environments & uv

Zwei Python-Projekte auf einer Maschine wollen früher oder später zwei verschiedene Versionen desselben Pakets. Virtuelle Environments lösen das, indem jedes Projekt sein eigenes, isoliertes Set installierter Pakete bekommt. Der klassische Workflow ist python -m venv .venv plus Aktivierung — funktioniert, ist aber umständlich.

uv ist das moderne All-in-one: Environment-Manager, Paketmanager und Python-Versionsmanager in einem einzigen, schnellen Tool.

uv init my-scraper     # neues Projekt mit pyproject.toml
uv add requests        # Dependency hinzufügen (Env wird automatisch verwaltet)

Mini-Hands-on: eine Webseite abrufen

Python, mit requests + BeautifulSoup:

import requests
from bs4 import BeautifulSoup

response = requests.get("https://example.com")
soup = BeautifulSoup(response.text, "html.parser")

print(soup.title.string)
for link in soup.find_all("a"):
    print(link.get("href"))

Das JavaScript-Pendant mit dem eingebauten fetch:

const response = await fetch("https://example.com");
const html = await response.text();

const title = html.match(/<title>(.*?)<\/title>/)[1];
console.log(title);

In beiden Fällen dieselbe Idee: Seite anfragen, dann das Gewünschte extrahieren.

Open-Source-Lizenzen in 60 Sekunden

Code ist standardmäßig urheberrechtlich geschützt — ohne Lizenz darfst du ihn nicht legal weiterverwenden. Open-Source-Lizenzen räumen dir Rechte von vornherein ein:

  • MIT — mach fast alles (nutzen, verändern, verkaufen), solange du den Copyright-Hinweis beibehältst.
  • Apache-2.0 — wie MIT, plus eine explizite Patentlizenz der Contributor, was größere Unternehmen oft bevorzugen.

Wichtig: Eine MIT-lizenzierte Dependency zu nutzen macht deine App nicht Open Source. Du lieferst den Hinweis mit; dein eigener Code bleibt deiner — Closed Source inklusive.

Glossar

  • CI/CD — Continuous Integration / Continuous Delivery: Automatisierung, die deinen Code bei jedem Push baut, testet und deployt.
  • Headless Agent — ein Agent, der ohne UI und ohne zuschauenden Menschen läuft, ausgelöst per Zeitplan oder Webhook. Wird später beim Agent SDK relevant.
  • REPL — Read-Eval-Print Loop: ein interaktiver Prompt (wie python oder node), der jede Zeile sofort auswertet.
Quiz zu diesem Modul starten