AgentiLoop/Agent has 651 GitHub stars and 72 forks. GitHot measured 0 stars in 24 hours and -2 in 7 days. Last checked 2026-11-09 21:48 UTC. Last push 2026-11-03.
So werden diese Zahlen gemessen
Agent! now supports macOS 14.6 or later, Apple Silicon and Intel, latest release. The Best AI agent for Mac: drives any app via Accessibility, codes/builds in Xcode, automates AppleScript, JXA, Swift and SMAppService shell (user/root). 23 LLM providers, local/cloud, plus on-device Apple Intelligence and Jev guard. Auto-Pilot, MCP, Avatar.
What you can do
- 🧠 Self-verifying task loop — reasons, executes, observes results, self-corrects. A task can't declare itself done until goal_state criteria are marked with evidence; an opt-in critic reviews the diff first.
- 🛠 Agentic coding — reads codebases, edits with string-replace diffs, builds Xcode projects natively (clickable errors), manages git, indexes repos into a portable JSONL repo-map. Every edit is snapshotted — one-click rollback or whole-task rewind_task.
- 🖥 Desktop automation — drives any Mac app through the Accessibility API (AXorcist), element-based with fuzzy auto-retry. Plus NSAppleScript, JXA and 51 ScriptingBridge app bridges, all in-process with TCC.
- 📜 AgentScript — Swift dylibs compiled at runtime and dlopen'd in-process with full TCC. Deleted scripts go to .Trash and are restorable.
Gemessener Sternzuwachs
- in 24h
- 0
- in 7 days
- -2
- in 15 days
- Aktualisierung verzögert
- in 1 month
- Aktualisierung verzögert
Nettoänderungen in überlappenden Zeiträumen, keine Tagessummen. Fehlende Messwerte bleiben leer. Sterne zeigen Interesse, nicht Qualität.
readme/README_de.md
Original🦾 AgentiLoop Agent!
🌐 Offizielle Website: agentiloop.ai — Downloads, Dokumentation, Rezensionen und News.
⭐ Wenn dir Agent! Zeit spart, gib dem Repo einen Stern. Sterne helfen anderen Mac-Nutzern, einen kostenlosen, nativen Open-Source-KI-Agenten zu finden, und halten das Projekt am Leben.
🆕 Der Neue im Viertel: AgentiLoop CLI ⚡️
Die agentische Schleife, entfesselt in deinem Terminal. Mac. Windows. Linux. Du entscheidest.
Lerne die neuesten Mitglieder der Agent!-Familie kennen: zwei plattformübergreifende CLIs mit exakt denselben Fähigkeiten. Wähle deine Variante:
Erstellt mit AgentiLoop Agent! für Mac. Ja, der Agent hat seine eigenen kleinen Geschwister geschrieben. 🤖✨ v0.0.5 ist da: ein größerer Werkzeugkasten mit glob/grep-Suche, web_fetch, Todos, AGENTS.md, /undo, eigenen Slash-Befehlen und --json. Jetzt herunterladen!
README-Übersetzungen
English · Español · Français · Deutsch · 中文 (简体) · Русский · 한국어 · 日本語
Schach in Agent
Was ist Agent!?
Eine App. Jede KI. Volle Kontrolle über deinen Mac.
Agent! ist eine zu 100 % native Swift-6.2-/SwiftUI-App, die 23 LLM-Anbieter — Claude, Codex, OpenAI, Gemini, Grok, Mistral, Mistral Vibe, DeepSeek, Hugging Face, Z.ai, BigModel, Alibaba DashScope, Qwen, Qwen Code, Meta Muse, MiniMax, OpenRouter, Requesty, A2Agent, OrcaRouter, Ollama (Cloud und lokal), vLLM und LM Studio — plus die geräteinterne Apple Intelligence — mit einer autonomen Aufgabenschleife verbindet, die wirklich etwas tut: Sie liest deinen Code, behebt den Fehler, baut das Xcode-Projekt, committet den Diff, steuert jede Mac-App über die Accessibility-API, führt Shell-Befehle als du oder als root aus, schickt dir Ergebnisse per iMessage und reagiert auf ein gesprochenes „Agent!".
Kein NPM, kein Electron, kein Abo, keine Telemetrie. Bring deinen eigenen API-Schlüssel mit, lauf komplett lokal oder kostenlos mit Apple Intelligence. Jedes Swift-Paket, von dem die App abhängt, wurde vom selben Autor geschrieben. Siehe Entstehungsgeschichte unten.
Schnellstart (Download)
- Lade Agent! herunter und ziehe es in „Programme" — oder mit Homebrew:
brew update && brew install --cask agentiloop-agent - Öffne Agent! — es richtet alles automatisch ein
- Wähle deine KI — Einstellungen → Anbieter wählen → API-Schlüssel eingeben
✅ Du musst nie aus dem Quellcode kompilieren. Jedes Release und jedes Pre-Release enthält eine vorkompilierte Mac-Binary (
.dmg+.zip), die von CI gebaut und von Apple signiert, notarisiert und gestapelt ist (AgentiLoop Team ID). Weil die offiziellen Binaries eine echte Developer ID tragen, registrieren sich Launch Agent und Launch Daemon immer und gehen nie „verloren“ — das passiert nur bei ad-hoc signierten Quellcode-Builds (siehe Option B unten). Sind deine Helfer verschwunden, installiere einfach die neueste Release-Binary.
Schnellstart (Aus dem Quellcode bauen)
Nur nötig, wenn du an Agent! selbst arbeiten willst. Alle anderen: nutzt die signierte Binary oben.
git clone https://github.com/AgentiLoop/agent.git
cd Agent
Option A — Xcode (Apple-Developer-Konto): Agent.xcodeproj öffnen, dein Development Team setzen, Target Agent bauen & starten, den Helper bei Aufforderung genehmigen.
Option B — ohne Developer-Konto (nur Xcode Command Line Tools):
./build.sh # Debug
./build.sh Release # Release
open "build/DerivedData/Build/Products/Debug/Agent!.app"
⚠️ Option-B-Builds sind ad-hoc signiert. Die Launch-Agent-/Daemon-Helper registrieren sich nicht (SMAppService braucht eine Team ID), aber LLM-Schleife, alle Tools, Accessibility, AppleScript, Shell und MCP funktionieren trotzdem.
💡 Günstiges Setup: GLM-5.3 über Z.ai (schnellste Anmeldung, Standardmodell) kostet nur Cents pro Million Tokens. Lokal? Nur GLM-4.7-Turbo (32B) passt auf Consumer-Hardware (64–128 GB Apple Silicon über Ollama).
Fehlerbehebung (Aus dem Quellcode bauen)
xcode-selectzeigt auf die Command Line Tools →sudo xcode-select -s /Applications/Xcode.app/Contents/Developer- Seltsames
BUILD FAILEDnach dem Pull → veraltete DerivedData:./build.sh clean && ./build.sh - Helper registrieren sich nie → bei Option B erwartet; für die Helper Option A verwenden
- Fehler bei Deployment Target / SDK → Agent! zielt auf macOS 14.6; macOS und Xcode aktualisieren
- Konfigurationsargument ist case-sensitiv →
./build.sh(Debug) oder./build.sh Release
Was kann es?
„Baue das Xcode-Projekt und behebe alle Fehler" · „Spiel meine Workout-Playlist in Musik" · „Mach ein Foto mit Photo Booth" · „Schick Mama eine iMessage, dass ich um 6 zu Hause bin" · „Öffne Safari und such nach Flügen nach Tokio" · „Teile diese Klasse in kleinere Dateien auf" · „Welche Kalendertermine habe ich heute?"
Tipp einfach, was du willst. Agent! findet heraus wie und setzt es um.
Hauptfunktionen
🧠 Selbstprüfende Aufgabenschleife — denkt, führt aus, beobachtet Ergebnisse, korrigiert sich selbst. Eine Aufgabe kann sich nicht als erledigt erklären, bis die
goal_state-Kriterien mit Beweisen markiert sind; ein optionaler Kritiker prüft zuerst den Diff.🛠 Agentisches Coding — liest Codebasen, bearbeitet mit String-Replace-Diffs, baut Xcode-Projekte nativ (klickbare Fehler), verwaltet Git, indiziert Repos in eine portable JSONL-Repo-Map. Jede Änderung wird gesichert — Ein-Klick-Rollback oder
rewind_taskfür die ganze Aufgabe.🖥 Desktop-Automatisierung — steuert jede Mac-App über die Accessibility-API (AXorcist), elementbasiert mit unscharfem Auto-Retry. Dazu NSAppleScript, JXA und 51 ScriptingBridge-App-Bridges, alle in-process mit TCC.
📜 AgentScript — Swift-Dylibs, zur Laufzeit kompiliert und per
dlopenin-process mit vollem TCC geladen. Gelöschte Skripte landen im.Trashund sind wiederherstellbar.🛡 Privilegierte Ausführung — Shell als du über einen Launch Agent oder als root über einen Launch Daemon, den du genau einmal genehmigst (SMAppService + XPC). Siehe docs/SECURITY.md, warum SMAppService die Signaturidentität bereits durchsetzt.
🎙 Sprache — sag „Agent!" gefolgt von deiner Aufgabe; geräteinterner
SFSpeechRecognizer, startet automatisch nach ~2,5 s Stille, läuft in Schleife.📱 iMessage-Fernsteuerung — schreib
Agent! next songvon deinem iPhone; nur genehmigte Absender. Braucht Vollzugriff auf die Festplatte fürchat.db.🌐 Web — eingebaute Safari-Automatisierung (JavaScript + AppleScript); optional Selenium und Playwright MCP für mehrere Browser.
🤝 Sub-Agenten — bis zu 3 parallel (6 nur lesend) isolierte Agenten mit Mailbox-Messaging und Modell-Override pro Agent.
🧩 MCP — beliebige MCP-Server unter Einstellungen → MCP-Server hinzufügen; Tools erscheinen als
mcp_<server>_<tool>. Beispiele (stdio und HTTP):{ "mcpServers": { "xcode": { "transport": "stdio", "command": "xcrun", "args": ["mcpbridge"], "env": {} }, "HelloWorld": { "transport": "stdio", "command": "/Users/you/bin/mcp-server-hello", "args": [], "env": {} }, "DemoHttp": { "transport": "http", "url": "http://localhost:8085/mcp", "headers": {} } } }HelloWorldundDemoHttpsind die Demo-Server aus AgentMCP; starte zuerstmcp-server-demo-http, damit auf Port 8085 etwas fürDemoHttplauscht.🗂 Tabs, Verlauf, Gedächtnis, Pläne, Skills — jeder Tab hat eigenen Projektordner und eigenes Log; persistentes Nutzergedächtnis; Multi-Plan-Checklisten in jedem Prompt.
🔄 Fallback-Kette — automatischer Wechsel zum nächsten konfigurierten Anbieter bei 429/Timeout/Netzwerkfehler.
Sponsoren
Sponsoring
Unternehmen und LLM-Anbieter, die das Projekt unterstützen möchten: siehe docs/SPONSORSHIP.md (Stufen, Platzierungen) und docs/PROVIDER_PROGRAM.md (LLM-Anbieter-Integration), oder direkt über GitHub Sponsors sponsern. Die gesamte Abrechnung läuft über GitHub Sponsors.
🤖 23 LLM-Anbieter
| Anbieter | Sponsor | Kosten | Am besten für |
|---|---|---|---|
| A2Agent | Günstig | DeepSeek, GLM, Kimi, MiniMax und Qwen mit einem OpenAI-kompatiblen Schlüssel zu einem Bruchteil der offiziellen Preise | |
| Apple Intelligence | Kostenlos, auf dem Gerät | Triage, Zusammenfassungen, Token-Kompression (Gehirn-Symbol, nicht in der Anbieterauswahl verfügbar) | |
| Claude | Pro Token (API-Key) oder Abo (OAuth) | Lange autonome Aufgaben, Extended Thinking, Prompt-Caching | |
| Codex | ChatGPT-Abo | OpenAI-Modelle über ChatGPT-OAuth — kein API-Key, keine Token-Kosten | |
| DeepSeek | Günstig | Budget-Coding, Cache-Hit-Reporting | |
| Google Gemini | Kostenpflichtig (Free Tier) | Langer Kontext, Vision | |
| Grok (xAI) | Kostenpflichtig | Echtzeit-Informationen | |
| Hugging Face | Variabel | Offene Modelle, serverless oder dedizierte Endpunkte | |
| Lokales Ollama / vLLM / LM Studio | Kostenlos + Hardware | Komplett offline; echtes Kontextfenster pro Modell wird erkannt | |
| Meta Muse | Kostenpflichtig | Muse Spark über die Meta Model API (api.meta.ai), OpenAI-kompatibler LLM_…-Schlüssel |
|
| MiniMax | Günstig | 1M-Token-Kontext | |
| Mistral / Mistral Vibe | Kostenpflichtig | Open-Weight-Cloud, Code, Agent-Produkt | |
| Ollama (Cloud) | Free Tier | Gehostete offene Modelle | |
| OpenAI | Kostenpflichtig | Allzweck, Tool-Calling, Vision, reasoning_effort |
|
| OpenRouter | Kostenpflichtig | 200+ Modelle, ein Schlüssel; Claude über Anthropic-Protokoll | |
| OrcaRouter | Kostenpflichtig | 190+ Modelle mit einem OpenAI-kompatiblen Schlüssel zum Anbieterpreis; Auto-/Fusion-/Fallback-Routing | |
| Alibaba DashScope | Günstig | Qwen 3.8 über DashScope | |
| Qwen (qwen.ai Token Plan) | Abo | QwenCloud Token Plan (sk-sp--Schlüssel): qwen3.8-max, qwen3.7-plus, GLM-5.2, DeepSeek V4 |
|
| Qwen Code | Abo | Alibaba Coding Plan (sk-sp--Schlüssel): qwen3-coder-plus, qwen3.7-plus, GLM-5, Kimi K2.5, MiniMax-M2.5 |
|
| Requesty | Kostenpflichtig | 300+ Modelle mit einem OpenAI-kompatiblen Schlüssel; Preise und Fähigkeiten pro Modell | |
| Z.ai / BigModel | Günstig | GLM-5.3 — empfohlener Einstieg |
💡 Selbst gehostete Anbieter sind nur im Sinne der API-Gebühren kostenlos — ein brauchbares 30B+-Modell braucht einen M2/M3/M4 Ultra Mac Studio (64–128 GB). Ohne diese Hardware sind die günstigen Cloud-Wege oben deutlich billiger.
Tools
Die kanonischen Namen stammen aus AgentTools.Name.* (Quelle: das AgentTools-Paket). Pro Anbieter lassen sich einzelne Tools ausblenden.
| Gruppe | Tools |
|---|---|
| Core | done · list_tools · search · web_search · fetch · chat · memory · plan · goal_state · restore_tool_result · directory · skill · ask_user · index |
| Code / Build | file (read/write/edit/diff_apply/undo/list/search/mkdir/…) · git · xcode (build/run/analyze/snippet/code_review/add_file/bump_version/…) · agent_script |
| Shell | user_shell (Launch Agent) · root_shell (Launch Daemon) · shell (In-Process-Fallback) · batch · multi |
| macOS-Automatisierung | accessibility (25 elementbasierte Aktionen) · applescript (mit lookup_sdef) · javascript (JXA) |
| Web | safari · selenium · mcp_playwright_browser_* (optional) |
| Sub-Agenten | spawn_agent · tell_agent |
Vollständige Referenz pro Aktion: docs/TECHNICAL.md.
AgentScript — Swift-Skripte mit vollem TCC
AgentScripts sind einfache Swift-Dateien in ~/Documents/AgentScript/agents/Sources/Scripts/. Agent! kompiliert jede davon per SwiftPM zu einer .dylib (Package.swift listet jedes Skript plus die 51 ScriptingBridge-App-Bridges) und lädt sie per dlopen mit Agent!s eigenen TCC-Freigaben — Bedienungshilfen, Automation, Kalender, Kontakte, Mail, Fotos usw. Das LLM verwaltet sie über agent_script (create / edit / run / delete / restore / pull); ~35 Beispiele liegen im Ordner (Hello, TodayEvents, NowPlaying, CheckMail, CreateDmg, ArchiveXcode, …).
Einstiegspunkt — kein Top-Level-Code, kein exit(); stdout geht zurück ans LLM, der Rückgabewert ist der Exit-Status:
import Foundation
import CalendarBridge // jedes `import XBridge` wird automatisch verdrahtet — keine Package.swift-Änderung nötig
@_cdecl("script_main")
public func scriptMain() -> Int32 {
print("Hello from AgentScript! 👋")
return 0
}
Umgebungsvariablen — wie sie GESETZT werden. Das LLM fasst die Umgebung nie selbst an. Es ruft das Tool auf, und Agent!s ScriptService exportiert die Variablen in den Prozess des Skripts (env["AGENT_PROJECT_FOLDER"] = cwd, env["AGENT_SCRIPT_ARGS"] = arguments in ScriptService+Execution.swift; setenv(...) für die In-Process-Variante). Dieselben zwei Variablen werden in jeden user_shell- / root_shell- / shell-Befehl exportiert.
LLM-Tool-Aufruf Was Agent! ins Skript exportiert
───────────────────────────────────────────────────── ─────────────────────────────────────────────
agent_script(action:"run", name:"TodayEvents") AGENT_PROJECT_FOLDER=/Users/du/Documents/GitHub/Agent
(AGENT_SCRIPT_ARGS ist NICHT gesetzt)
agent_script(action:"run", name:"TodayEvents", AGENT_PROJECT_FOLDER=/Users/du/Documents/GitHub/Agent
arguments:"days=3,location=false,json=true") AGENT_SCRIPT_ARGS="days=3,location=false,json=true"
| Variable | Wann gesetzt | Bedeutung |
|---|---|---|
AGENT_PROJECT_FOLDER |
Immer | Der Projektordner des aktiven Tabs (oder $HOME, falls keiner). Auch das cwd des Runners wird darauf gesetzt. |
AGENT_SCRIPT_ARGS |
Nur wenn das LLM arguments:"…" übergibt |
Genau der String, den das LLM übergeben hat. Die Beispiele nutzen die Konvention key=value,key=value. |
Umgebungsvariablen — wie sie EINGELESEN werden. Im Skript kommen beide aus ProcessInfo.processInfo.environment. Das ist exakt das Parsing-Muster aus Hello.swift / TodayEvents.swift:
import Foundation
@_cdecl("script_main")
public func scriptMain() -> Int32 {
let env = ProcessInfo.processInfo.environment
// 1. Projektordner — immer vorhanden; zur Sicherheit auf cwd zurückfallen
let folder = env["AGENT_PROJECT_FOLDER"] ?? FileManager.default.currentDirectoryPath
// 2. Argumente — fehlen, sofern das LLM nicht `arguments:"…"` übergeben hat
let argsString = env["AGENT_SCRIPT_ARGS"] ?? ""
// 3. Standardwerte, dann "key=value,key=value" parsen
var daysAhead = 0
var showLocation = true
var outputJSON = false
for pair in argsString.split(separator: ",") {
let parts = pair.split(separator: "=", maxSplits: 1).map { $0.trimmingCharacters(in: .whitespaces) }
guard parts.count == 2 else { continue }
switch parts[0] {
case "days": daysAhead = Int(parts[1]) ?? 0
case "location": showLocation = parts[1].lowercased() == "true"
case "json": outputJSON = parts[1].lowercased() == "true"
default: break
}
}
print("Projektordner: \(folder)")
print("days=\(daysAhead) location=\(showLocation) json=\(outputJSON)")
return 0
}
Beide Variablen sind unabhängig — den Projektordner nie aus AGENT_SCRIPT_ARGS herauslesen. Bash-Äquivalent in user_shell: ls "$AGENT_PROJECT_FOLDER/Sources" (cwd ist bereits dort, kein cd nötig).
Echte AGENT_SCRIPT_ARGS-Konventionen aus den mitgelieferten Skripten (~/Documents/AgentScript/agents/Sources/Scripts/):
| Skript | arguments:, die das LLM übergibt |
Stil |
|---|---|---|
TodayEvents |
days=3,location=false,json=true |
key=value,… |
CheckMail |
unreadOnly=true,inboxCount=true,json=true |
key=value,… |
ListReminders |
completed=false,limit=5 |
key=value,… |
QuitApps |
excluded=Xcode,Agent,Terminal |
key=value mit Liste |
NowPlaying |
json=true,artwork=true |
key=value,… |
ArchiveXcode |
/path/to/Project.xcodeproj MyScheme 469UCUB275 |
positionsbasiert, leerzeichengetrennt (Scheme/Team-ID werden automatisch erkannt, wenn weggelassen) |
CreateDmg |
--app /path/to/App.app --output /path/out.dmg --name "My App" --compress |
Flag-Stil, leerzeichengetrennt, Anführungszeichen werden beachtet |
JSON-Eingabe / -Ausgabe — ein SEPARATER Mechanismus, unabhängig von den Umgebungsvariablen. Umgebungsvariablen werden von Agent! in den Prozess exportiert; JSON-Dateien sind einfache Dateien auf der Festplatte, die das Skript selbst mit FileManager / JSONSerialization liest und schreibt. Agent! erzeugt, übergibt oder parst sie nicht. Zwei echte Muster aus den mitgelieferten Skripten:
1. Nur JSON-Eingabe (SendMessage) — gar keine Env-Argumente; das Skript verlangt SendMessage_input.json und gibt 1 zurück, wenn sie fehlt:
// ~/Documents/AgentScript/json/SendMessage_input.json (vom LLM per file(action:"write") vor dem Lauf geschrieben)
{ "recipient": "Mama", "message": "Um 6 zu Hause", "imagePath": "~/Pictures/Photos Library.photoslibrary/originals/A/IMG_0001.jpeg" }
// ~/Documents/AgentScript/json/SendMessage_output.json (vom Skript geschrieben)
{ "success": true, "timestamp": "2026-09-03T21:14:02Z", "recipient": "Mama", "message": "Um 6 zu Hause" }
// bei Fehler: { "success": false, "timestamp": "…", "error": "Missing required field: recipient" }
// SendMessage.swift — so liest das Skript die Datei
let inputPath = "\(NSHomeDirectory())/Documents/AgentScript/json/SendMessage_input.json"
guard let inputData = FileManager.default.contents(atPath: inputPath) else {
writeOutput(outputPath, success: false, error: "Input file not found: \(inputPath)"); return 1
}
guard let json = try? JSONSerialization.jsonObject(with: inputData) as? [String: Any],
let recipientHandle = json["recipient"] as? String else { /* … */ return 1 }
let message = json["message"] as? String
let imagePath = json["imagePath"] as? String
2. Env-Argumente für Optionen, JSON für strukturierte Ausgabe (TodayEvents, NowPlaying, CheckMail, ListReminders) — Optionen kommen aus AGENT_SCRIPT_ARGS (oder der optionalen <Name>_input.json); bei json=true schreibt das Skript <Name>_output.json zusätzlich zur lesbaren stdout-Ausgabe, die ans LLM zurückgeht:
// agent_script(action:"run", name:"TodayEvents", arguments:"days=3,json=true")
// → ~/Documents/AgentScript/json/TodayEvents_output.json
{ "success": true, "timestamp": "…", "count": 2,
"events": [ { "summary": "Standup", "calendar": "Work", "startTime": "…", "endTime": "…", "allDay": false, "location": "…" }, … ] }
// agent_script(action:"run", name:"NowPlaying", arguments:"json=true,artwork=true")
// → ~/Documents/AgentScript/json/NowPlaying_output.json
{ "success": true, "playerState": "playing",
"track": { "name": "…", "artist": "…", "album": "…", "duration": 240 },
"artwork": { "saved": true, "path": "~/Documents/AgentScript/images/….png", "width": 500, "height": 500 } }
// TodayEvents.swift — so schreibt das Skript die Datei
func writeTodayEventsOutput(_ path: String, success: Bool, error: String? = nil,
events: [[String: Any]]? = nil, count: Int? = nil, outputJSON: Bool) {
guard outputJSON else { return }
var result: [String: Any] = ["success": success, "timestamp": ISO8601DateFormatter().string(from: Date())]
if !success, let error { result["error"] = error }
if success { if let events { result["events"] = events }; if let count { result["count"] = count } }
try? FileManager.default.createDirectory(atPath: (path as NSString).deletingLastPathComponent, withIntermediateDirectories: true)
if let out = try? JSONSerialization.data(withJSONObject: result, options: .prettyPrinted) {
try? out.write(to: URL(fileURLWithPath: path))
}
}
Gelöschte Skripte landen in ~/Documents/AgentScript/agents/.Trash/ (agent_script(action:"restore")); action:"pull" holt die Upstream-Version aus dem AgentScripts-Repo.
🔒 Jev — eine zweite Meinung vor Shell-Befehlen
Jev (TypeSafe System One) ist eine optionale Entscheidungsschicht, die Shell-Befehle prüft, bevor Agent! sie ausführt. Sie ergänzt den von dir gewählten LLM-Anbieter — sie ersetzt ihn nie.
- Was sie tut. Jeder Befehl, der die fest verdrahteten Regeln von
ShellSafetyServicebereits passiert hat, geht an Jev, das bewertet, wie wahrscheinlich er Daten unwiderruflich zerstört. Oberhalb deiner Schwelle wird der Befehl mit Prozentwert und Befehlstext abgelehnt; darunter läuft er. - Wo sie greift. Auf allen Shell-Pfaden: die In-Process-Shell, der Benutzer-Launch-Agent (
user_shell) und der privilegierte Launch Daemon (root_shell). - Einstellbare Schwelle. Einstellungen → LLM Common Settings → Reject at … % destructive, 0–100 % in 10-%-Schritten. Standard: 70 %.
- Bewusst fail-open. Ohne API-Schlüssel, bei ausgeschaltetem Schalter Consult Jev before tools oder bei einer TypeSafe-Störung gilt „keine Meinung“: Der Befehl läuft weiter und der Fehler wird protokolliert, nie stillschweigend als sicheres Urteil ausgegeben. Wird eine Aufgabe während einer Jev-Prüfung abgebrochen, startet der Befehl nicht.
- Sichtbar. Jede Prüfung protokolliert den Zerstörungsrisiko-Prozentwert, das Urteil erlaubt/abgelehnt, das antwortende Modell sowie Ein-/Ausgabe-Tokens.
- Konfiguration. API-Schlüssel (im Schlüsselbund gespeichert), Modellauswahl mit Katalog-Aktualisierung und der Beratungsschalter liegen in LLM Common Settings. Der Client steckt im mitgelieferten Swift-Paket
TypeSafeKit/TypeSafeMiddleware.
Datenschutz & Sicherheit
Deine Dateien, Bildschirminhalte und persönlichen Daten verlassen deinen Mac nie — Cloud-Anbieter sehen nur den Prompt-Text; lokale Anbieter halten alles offline. Jede Aktion wird protokolliert.
| Schicht | Was sie tut |
|---|---|
| Shell Safety Service | Blockiert rm -rf /, rm -rf ~, rm -rf mit nacktem Glob, --no-preserve-root hart — client-seitig und daemon-seitig durchgesetzt. Vom LLM nicht umgehbar. |
| XPC-Client-Vertrauen | Beide Listener verlangen Code-Signing mit demselben Team, abgeleitet aus der eigenen Signatur der App; Release-Builds lehnen Clients ohne Team ab. |
| Read-before-edit-Gate | Änderungen an ungelesenen oder extern geänderten Dateien werden verweigert (SHA-256), mit Auto-Read bei Verweigerung. |
| Datei-Backups + Rewind | Jede Änderung gesichert (1 Woche TTL); Rollback-UI, file(action:"undo") oder aufgabenbezogenes rewind_task. |
| TCC-In-Process-Routing | AppleScript-/JXA-/screencapture-/Accessibility-Befehle laufen in-process, wo Agent! die TCC-Freigaben hält, nie über die Daemons. |
| Tool-Ausführungs-Gating | Das LLM kann keine Ergebnisse erfinden — jeder Aufruf läuft durch dispatchTool() und liefert echte Ausgaben. Behauptungen wie „ich habe geklickt/gesucht…" ohne Tool bekommen eine Korrektur injiziert. |
| Typisierte Fehler + Guards | Jedes fehlgeschlagene Tool-Ergebnis trägt einen Wiederherstellungshinweis; Broken-Record- und Stuck-Guards stupsen an und stoppen dann; Abschluss-Gates begrenzen Verweigerungen auf 3 pro Aufgabe. |
| Konsolen-Audit-Trail | Jeder Tool-Aufruf und jeder Helper-Befehl wird protokolliert. |
Tastaturkürzel & Slash-Befehle
| Kürzel | Aktion |
|---|---|
Return |
Aufgabe starten · ⌘ . / Esc abbrechen |
⌘ T / ⌘ W / ⌘ 1–9 / ⌘ ⇧ ←→ |
Tab neu / schließen / wechseln / vor-zurück |
⌘ B / ⌘ D |
LLM-Output-Overlay / Chevrons umschalten |
⌘ F / ⌘ L / ⌘ V |
Log durchsuchen / Log leeren / Bild einfügen |
↑ / ↓ |
Prompt-Verlauf |
⌘ ⇧ M / ⌘ ⇧ P |
Messages-Monitor / Einstellungen |
⌘ ⇧ K L H J U |
Alles / LLM-Panel / Prompt-Verlauf / Aufgabenverlauf / Token-Zähler leeren |
Slash-Befehle laufen lokal: /clear [log|all|llm|history|tasks|tokens], /memory [show|clear|edit|<text>], /auto ….
Autopilot (/auto)
Führt die Aufgabenschleife in unbeaufsichtigten Zyklen aus (im Haupt-Tab oder in jedem LLM-Tab), bis ein Ziel erreicht ist, ein Zeitbudget abläuft oder du Stopp drückst. Es gibt kein Zyklenlimit und keine Iterationsgrenze pro Zyklus: Ist die Aufgabe eines Zyklus vollständig beendet und das Ziel nicht erreicht, startet der nächste Zyklus automatisch.
| Befehl | Was er tut |
|---|---|
/auto <goal> |
Arbeitet auf das Ziel hin, bis das LLM es als erreicht meldet |
/auto 4h <goal> |
Ebenso, aber Stopp nach 4 Stunden (30m und 1.5h gehen auch) |
/auto |
Prüft zuerst das Projekt und fragt dann per ask_user nach dem Ziel |
/auto history |
Listet frühere Autopilot-Ziele auf |
/auto last / /auto #N |
Startet das neueste / das N-te Ziel aus dem Verlauf neu |
/auto add <folder> |
Fügt einen Paritätsordner hinzu: jede Projektänderung wird dorthin gespiegelt |
/auto remove <folder> |
Entfernt einen Paritätsordner |
/auto status / /auto stop |
Zeigt die Sitzung / beendet sie nach dem aktuellen Zyklus (sofort, wenn zwischen Zyklen) |
Jeder Zyklus ist eine normale Aufgabe; seine Zusammenfassung wird an .agent/autopilot/progress.md angehängt und in den Prompt des nächsten Zyklus übernommen. Das LLM beendet die Sitzung, indem es seine finale Zusammenfassung mit AUTOPILOT: GOAL REACHED beginnt. Zyklen ohne Zusammenfassung (Fehler, Abbrüche) beenden die Sitzung nie, der nächste Zyklus wartet nur länger (15 s, 30 s, 60 s … bis 5 min). /auto-Befehle landen im Prompt-Verlauf (Pfeil hoch), Ziele in der Liste von /auto history. Aktive Sitzungen überstehen App-Neustarts: Beenden (oder ein Absturz) pausiert sie, und beim nächsten Start setzt jede in ihrem Tab mit dem nächsten Zyklus fort.
FAQ
Muss ich programmieren können? Nein — einfaches Deutsch (oder deine Muttersprache). Was kostet es? Die App ist für nichtkommerzielle und private Nutzung kostenlos (PolyForm Noncommercial 1.0.0). Du bezahlst deinen Anbieter; GLM-5.3 über Z.ai/BigModel oder DeepSeek sind für ernsthafte Arbeit am günstigsten. Lokale Modelle sind kostenlos, wenn du die Hardware besitzt. Welchen Mac brauche ich? Apple Silicon oder Intel, macOS 14.6+. Jeder moderne Mac für Cloud-Anbieter; 64 GB+ für lokale 30B-Modelle. Was unterscheidet das von Siri? Siri antwortet. Agent! handelt — Apps, Dateien, Code, System.
Mehr: docs/FAQ.md · Technische Architektur · Vergleiche (vs. Claude Code, Cursor, Cline, OpenClaw) · Sicherheitsmodell
Entstehungsgeschichte
Agent! ist das Ergebnis von drei Jahren Entwicklung agentischer KI-Apps — ANIE, Game Changer, BattleScript, XCF MCP Server and Client, D1F und rund acht originale Swift-Pakete. Das fehlende Puzzlestück war eine intelligente autonome Schleife; sobald sie erreicht war, floss das Beste dieser Projekte in Agent! zusammen. Es hat Videospiele geschrieben (Boss-Man), Apps erstellt, Gedichte per AppleScript in Pages verfasst, Disk-Images erzeugt und an GitHub-Releases angehängt. Wo Claude Code auf ~65 NPM-Pakete von Drittanbietern setzt, ist Agent! zu 100 % nativ, braucht sehr wenig RAM und bringt Xcode-Automatisierung, Swift-Syntax-6.2-Analyse, Accessibility, AppleScript, AgentScript/ScriptingBridge, Safari-Automatisierung und MCP-Unterstützung direkt mit.
Reverse Engineering mit Agent!

Agent! ist auch eine Werkbank für Reverse Engineering. Es liest Disc-Images und ROMs, schreibt die Extraktionswerkzeuge, studiert den dekompilierten Code und baut das Spiel im Browser nach, wobei es seine Arbeit mit den Originaldaten abgleicht. So entstanden vier Rennspiele und ein Kampfspiel:
| Spiel | Was Agent! gemacht hat | Spielen |
|---|---|---|
| 🚕 CrazyTaxi | Three.js-Nachbau von Crazy Taxi (USA) für Sega Dreamcast. Python-Tools holen Strecken, Fahrzeuge, Figuren, Animationen und Audio von deiner eigenen Disc. Der Kollisionscode ist aus der Dekompilierung portiert und gegen die extrahierten Streckendaten geprüft | Eigene Disc nötig |
| 🍄 MarioKart64JS | Mario Kart 64 in Three.js nachgebaut, nicht emuliert. Strecken, Karts, Musik und Stimmen stammen aus dem originalen N64-ROM, mit allen 16 Strecken, Battle-Arenen, 15 Items, HD-Texturen und Online-Spiel | mk64js.gokart.games |
| 🏎️ F1 | Formelwagen-Rennen gegen ein KI-Feld auf 18 echten Strecken. Layouts, Höhenprofil und Steilkurven aus echten Fahrzeugpositionen und Telemetrie der OpenF1-API rekonstruiert | f1.gokart.games |
| 🏁 GoKart | Originales Kart-Rennspiel in Godot 4, das die Regeln von Mario Kart 64 nachbildet (Windschatten, Hubraumklassen, Grand-Prix-Wertung, Menüs, Musik), alles aus Code erzeugt, dazu Online-Mehrspieler | gokart.games |
| 🦇 BvS | Batman v Superman, ein 3D-Kampfspiel in Three.js, bei dem jeder Pixel aus Code gezeichnet wird: keine Modelldateien, Texturen oder Audio-Samples | bvs.agentiloop.ai |
Keines dieser Repos enthält Spieldaten. CrazyTaxi und MarioKart64JS brauchen deine eigene Kopie des Spiels. Alle sind Fan-Projekte für den privaten und Bildungsgebrauch.
Die Agent!-Familie
Agent! besteht aus einer Reihe begleitender Repos in der Organisation AgentiLoop. News, Downloads und Pressekit gibt es auf 🌐 agentiloop.ai (Quellcode der Website).
| Repo | Was es ist |
|---|---|
| AgentiLoopCLI · AgentiLoopGo | Die Agentenschleife als plattformübergreifende CLIs für macOS, Windows und Linux (Rust · Go) |
| AgentScripts | Die Swift-Skripte, die Agent! in-process kompiliert und ausführt |
| AgentTools | Tool-Schemas, System-Prompts und Anbieterverwaltung |
| AgentLLM | LLM-Anbieter-Protokolle, -Typen und -Registry |
| AgentMCP | MCP-Client (stdio + HTTP) |
| AgentAccess | Accessibility-Automatisierung |
| AgentEventBridges | ScriptingBridge-Protokolle für über 50 Mac-Apps |
| AgentD1F | Mehrzeilige Diff-Engine |
| AgentSwift | SwiftSyntax-Codeanalyse |
| AgentColorSyntax · AgentTerminalNeo | Syntaxhervorhebung · Retro-Terminal-Markdown |
| AgentAudit | os.log-Audit-Logging |
Star History
Mitwirken
Siehe CONTRIBUTING.md — in ~5 Minuten mit ./build.sh aus dem Quellcode bauen, kein Developer-Konto nötig. Pull Requests durchlaufen den CI-Build-&-Test-Workflow. Schau dir die good first issues an.
Lizenz
PolyForm Noncommercial 1.0.0 — kostenlos für nichtkommerzielle und private Nutzung. Kommerzielle Nutzung und kommerzielle Versionen der Software sind ausschließlich AgentiLoop.ai, einem Unternehmen von Logos InkPen LLC, vorbehalten. Für eine kommerzielle Lizenz kontaktiere AgentiLoop.
⚠️ Rechtlicher Hinweis & Zuschreibung
Markenhinweis
„AgentiLoop Agent! for Mac" ist ein unabhängiges Softwareprojekt und nicht mit Apple Inc. verbunden, von Apple genehmigt, gesponsert oder anderweitig assoziiert. „Apple", „Mac", „Mac mini", „MacBook", „macOS" und verwandte Marken sind Marken von Apple Inc., eingetragen in den USA und anderen Ländern. Alle anderen hier erwähnten Marken, Dienstleistungsmarken und Handelsnamen sind Eigentum ihrer jeweiligen Inhaber und werden nur zu Identifikationszwecken verwendet.
„AgentiLoop Agent!" und das AgentiLoop-Agent!-Logo sind Marken von AgentiLoop.ai, einem Unternehmen von Logos InkPen LLC. Die Nutzung dieser Marken erfordert vorherige schriftliche Genehmigung. Die untenstehende PolyForm-Noncommercial-Lizenz gewährt Rechte nur am Quellcode — sie gewährt keine Markenrechte.
Quellcode-Lizenz (PolyForm Noncommercial 1.0.0)
Der Quellcode von „AgentiLoop Agent! for Mac" ist quelloffen einsehbar und unter der PolyForm Noncommercial License 1.0.0 lizenziert. Es steht dir frei, den Quellcode für jeden nichtkommerziellen Zweck zu nutzen, zu kopieren, zu modifizieren und zu verteilen, vorbehaltlich der Bedingungen in der LICENSE-Datei (Beibehaltung des Required Notice sowie einer Kopie der Lizenzbedingungen oder eines Links darauf). Kommerzielle Nutzung und kommerzielle Versionen der Software sind ausschließlich AgentiLoop.ai, einem Unternehmen von Logos InkPen LLC, vorbehalten.
Kompilierte Binärdateien & Releases
Kompilierte Binärdateien, Installationsprogramme, code-signierte Builds und Release-Artefakte, die über die GitHub Releases dieses Projekts, AgentiLoop.ai, oder jeden anderen offiziellen Kanal verteilt werden, sind das urheberrechtlich geschützte Werk von AgentiLoop.ai, einem Unternehmen von Logos InkPen LLC und nicht von der PolyForm-Noncommercial-Lizenz abgedeckt, die den Quellcode regelt. Alle Rechte an den offiziellen Binärdateien — einschließlich des Namens „AgentiLoop Agent!", des Logos, der Code-Signing-Identität und der Developer ID — sind vorbehalten.
Copyright © 2026 AgentiLoop.ai, ein Unternehmen von Logos InkPen LLC. Alle Rechte vorbehalten.
Du bist herzlich eingeladen, deine eigenen Binärdateien aus dem Quellcode für nichtkommerzielle Nutzung unter der PolyForm-Noncommercial-Lizenz zu bauen, solange du nicht den Namen „AgentiLoop Agent!", das Logo oder das Branding zur Identifikation deines Produkts verwendest.
Gewährleistungsausschluss
Diese Software wird „WIE BESEHEN" bereitgestellt, ohne Gewährleistung jeglicher Art, weder ausdrücklich noch stillschweigend, einschließlich, aber nicht beschränkt auf die Gewährleistungen der Marktgängigkeit, der Eignung für einen bestimmten Zweck und der Nichtverletzung von Rechten Dritter. In keinem Fall haften der Autor oder der Urheberrechtsinhaber für Ansprüche, Schäden oder sonstige Haftung, sei es aus einer vertraglichen Handlung, unerlaubter Handlung oder anderweitig, die sich aus der Software oder der Nutzung oder anderen Vorgängen mit der Software ergeben.
Danke für dein Interesse an AgentiLoop Agent! — einer Anwendung, entwickelt für Mac-mini-, MacBook- und Mac-Studio-Computer, die macOS 14.6 oder neuer auf originaler Mac-Hardware und -Software ausführen.
- Website: https://AgentiLoop.ai
- Github : https://github.com/AgentiLoop/agent
Ähnliche Projekte entdecken
affaan-m/ECC
System zur Leistungsoptimierung für das Ausführungs- und Steuerungsframework von Agenten. Es bietet Skills, Instinkte, Memory, Sicherheit und forschungsorientierte Entwicklung für Claude Code, Codex, Opencode, Cursor und darüber hinaus.
300,694 SterneNousResearch/hermes-agent
Der Agent, der mit dir wächst
262,399 Sternemultica-ai/andrej-karpathy-skills
Eine einzelne CLAUDE.md-Datei zur Verbesserung des Verhaltens von Claude Code, abgeleitet aus Andrej Karpathys Beobachtungen zu Fallstricken beim Programmieren mit LLMs.
231,805 Sternefirecrawl/firecrawl
Stärke deine KI-Agenten mit Daten aus dem Web und darüber hinaus. Wir bauen die Bibliothek für Superintelligenz. 🔥
200,444 Sterne