freshcrate
Skin:/
Home > MCP Servers > Agent

Agent

Agent! connects any AI to your Mac. 13 LLM providers โ€” cloud, local, or on-device. It writes code, builds Xcode projects, manages git, organizes files, automates Safari, controls any app, and handl

Why this rank:Strong adoptionRecent releaseHealthy release cadence

Description

Agent! connects any AI to your Mac. 13 LLM providers โ€” cloud, local, or on-device. It writes code, builds Xcode projects, manages git, organizes files, automates Safari, controls any app, and handles whatever you throw at it. Talk to it by text, voice, or iMessage from your iPhone. Just say what you need. One native Mac app. Zero subscriptions.

README

Agent! icon

๐Ÿฆพ Agent! for macOS 26.4+

image

Agentic AI for your ๏ฃฟ Mac Desktop

Open Source alternative to Claude Code, Cursor and Open Claw

Latest ReleaseGitHub StarsGitHub ForksmacOS 26.4+Swift 6.2Tip JarThank you for your interest and support!

  • Apple AI as a real tool-calling agent: On-device Apple Intelligence (FoundationModels.Tool) handles UI automation requests like "take a photo using Photo Booth" locally โ€” multi-step tool calls, zero cloud LLM tokens, falls through to the cloud LLM only on failure.
  • SDEF + runtime app discovery: Bundle ID resolution is now zero-hardcoded. Apps in Agent/SDEFs/ plus every .app in /Applications, /System/Applications, ~/Applications are discovered at runtime โ€” installing a new app extends what the agent can target with no code edit.
  • Prompt caching for every OpenAI-format provider: Z.ai, OpenAI, Grok, Mistral, DeepSeek, Qwen, Gemini, BigModel, Hugging Face โ€” cached_tokens is parsed from the response and shown in the LLM Usage panel. JSON request bodies use .sortedKeys so byte-stable prefixes actually hit the provider's cache.
  • On-device token compression: Apple AI summarizes old conversation turns when context exceeds 30K tokens (Tier 1 of tieredCompact) โ€” free, private, no API tokens consumed. Toggleable in the brain icon popover.
  • Anti-hallucination prompt rule: Every system prompt now includes explicit guidance against fabricating findings from incomplete tool reads. The 10-consecutive-reads guard pushes the model toward "narrow or call done()" instead of "guess".
  • Autonomous task loop, Xcode integration, AXorcist desktop automation, privileged daemon, multi-tab LLM config, Ollama pre-warming via LLMRegistry โ€” all the previously-shipped fundamentals are still there.

One app. Any AI. Total command over your Mac.

Agent! wires 17 LLM providers โ€” Claude, GPT, Gemini, Grok, Mistral, DeepSeek, Qwen, Z.ai, BigModel, Hugging Face, Ollama (cloud and local), vLLM, LM Studio, Codestral, Mistral Vibe, and on-device Apple Intelligence โ€” into a native macOS app that doesn't just talk about doing things. It does them.

Watch it read your codebase, fix the bug, build the Xcode project, and commit the diff while you make coffee. Tell it to open Safari and text you the price of flights to Tokyo. Say "Agent!" from across the room and have it run your test suite by voice. Text your Mac from iMessage and get a polished answer before you reach your car.

It edits files with surgical string-replace diffs โ€” every change one-click undoable from a Time-Machine-style rollback. It drives any Mac app through the Accessibility API โ€” no AppleScript required. It remembers your preferences across sessions. It spawns parallel sub-agents for work that fans out. It indexes entire codebases into a portable JSONL repo-map that any LLM can consume. It runs shell commands as you, or as root via a Launch Daemon you approve exactly once.

Bring your own API key. Run it fully local on Ollama, vLLM, or LM Studio. Or run it free, forever, on Apple Intelligence. No subscription. No telemetry. No vendor lock-in. Your keys, your machine, your data.

Download it. Say what you need. Watch it happen.

Quick Start (Download)

  1. Download Agent! and drag to Applications
  2. Open Agent! -- it sets up everything automatically
  3. Pick your AI -- Settings โ†’ choose a provider โ†’ enter API key

Quick Start (Build from Source)

  1. Clone the repository:
    git clone https://github.com/macos26/agent.git
    cd Agent

Option A: Build with Xcode (Apple Developer account)

  1. Open Agent.xcodeproj in Xcode.
  2. Build and Run the Agent target.
  3. Approve the Helper Tool: When prompted, authorize the privileged daemon to allow root-level command execution.

Option B: Build without an Apple Developer account

  1. Run the build script (requires only Xcode Command Line Tools):
    ./build.sh              # Debug build
    ./build.sh Release      # Release build
  2. The app lands in build/DerivedData/Build/Products/Debug/Agent!.app
  3. Run it: open "build/DerivedData/Build/Products/Debug/Agent!.app"

โš ๏ธ Without a developer account the app is ad-hoc signed. The Launch Agent/Daemon helpers won't register (SMAppService needs a team ID), but the LLM loop, all tools, accessibility, AppleScript, shell, and MCP all work.

Then:

  1. Configure your AI Provider: Go to Settings and enter your API key or select a local provider like Ollama.

๐Ÿ’ก Cheap GLM setup: GLM-5.1 runs on all four cheap providers โ€” Ollama, Hugging Face, Z.ai, BigModel โ€” at pennies per million tokens. New here? Start with Z.ai (fastest signup, GLM-5.1 is the default, nothing to provision). Running locally? Only GLM-4.7-Turbo (32B) fits on consumer hardware (M2/M3/M4 Mac, 64-128GB, via Ollama) โ€” GLM-5 and GLM-5.1 are too large (~1.6TB), use them via the cloud providers above.

What Can It Do?

"Play my Workout playlist in Music" "Build the Xcode project and fix any errors" "Take a photo with Photo Booth" "Send an iMessage to Mom saying I'll be home at 6" "Open Safari and search for flights to Tokyo" "Refactor this class into smaller files" "What calendar events do I have today?"

Just type what you want. Agent! figures out how and makes it happen.


Key Features

๐Ÿง  Agentic AI Framework

Built-in autonomous task loop that reasons, executes, and self-corrects. Agent! doesn't just run code; it observes the results, debugs errors, and iterates until the task is complete.

๐Ÿ›  Agentic Coding

Full coding environment built in. Reads codebases, edits files with precision, runs shell commands, builds Xcode projects, manages git, and auto-enables coding mode to focus the AI on development tools. Replaces Claude Code, Cursor, and Cline -- no terminal, no IDE plugins, no monthly fee. Features Time Machine-style backups for every file change, letting you revert any edit instantly.

๐Ÿ” Dynamic Tool Discovery

Automatically detects and uses available tools (Xcode, Playwright, Shell, etc.) based on your prompt. No manual configuration required for core tools.

๐Ÿ›ก Privileged Execution

Securely runs root-level commands via a dedicated macOS Launch Daemon. The user approves the daemon once, then the agent can execute commands autonomously via XPC.

Why there's no manual setCodeSigningRequirement on the XPC listener

Users sometimes ask why AgentHelper's XPC listener accepts connections without a manual connection.setCodeSigningRequirement(...) check. The short answer: SMAppService already enforces signing identity one layer below your code, so the check would be redundant.

That recommendation is a holdover from the pre-SMAppService SMJobBless era, where launchd did not validate identity for you and the XPC server had to set a designated-requirement string itself. SMAppService changed that contract:

  • The app-bundle-embedded plist plus signature-gated registration is the code-signing requirement.
  • The Mach service names (Agent.app.toddbruss.helper, Agent.app.toddbruss.user) are namespaced to the signed bundle that registered them โ€” no other bundle can claim them.
  • Any signature mismatch (tampering, re-signing, different Team ID, bundle swap) breaks the XPC channel at the launchd layer โ€” listener(_:shouldAcceptNewConnection:) is never even invoked.

Empirical proof: Agent! itself attempted to re-sign its own daemons during an experiment and immediately lost the ability to connect. NSXPCConnection to both Mach services failed at the launchd layer before a single byte reached the listener delegate โ€” exactly the behavior a manual setCodeSigningRequirement call would enforce, except SMAppService is doing it in the kernel's XPC lookup path where it cannot be bypassed from userland.

Enforcement Mechanism Bypassable from userland?
Helper must be in signed app bundle Gatekeeper + SMAppService registration No
Helper must match app's Team ID (469UCUB275) Code signing + SMAppService No
Mach service name bound to signed bundle launchd / XPC namespace No
Helper binary hash matches registered identity SMAppService + kernel XPC lookup No (re-signing breaks the channel)
User approved the helper System Settings โ†’ Login Items & Extensions No (user gesture required)

Adding setCodeSigningRequirement explicitly would be reasonable belt-and-braces defense-in-depth (useful only if the app were ever ported off SMAppService, or if SIP were disabled), but it is not a gap in the current architecture. See docs/SECURITY.md for the full trust-anchor write-up.

๐Ÿ–ฅ Desktop Automation (AXorcist)

Control any Mac app through the Accessibility API. Click buttons, type into fields, navigate menus, scroll, drag -- all programmatically. Powered by AXorcist for reliable, fuzzy-matched element finding.

๐Ÿค– 17 AI Providers

The provider picker (LLM Settings, toolbar button #7) shows 16 providers; Apple Intelligence is reached via the separate brain icon (#8). Source of truth: AgentTools.APIProvider.

Provider API key Best for
Claude (Anthropic) Paid Long autonomous tasks, complex reasoning, prompt caching
OpenAI Paid General purpose, tool calling, vision
Google Gemini Paid (free tier) Long context, vision, fast
Grok (xAI) Paid Real-time info
Mistral Paid Open-weight cloud, fast tool calling
Codestral (Mistral) Paid Code-specialized Mistral
Mistral Vibe Paid Mistral's chat/agent product
DeepSeek Cheap Budget cloud, strong coding, prompt cache hit reporting
Hugging Face Varies Open-source models hosted serverless or on dedicated endpoints
Z.ai Cheap GLM-5.1 via API โ€” recommended starting point
BigModel (Zhipu) Cheap GLM family via Zhipu's API
Qwen (Alibaba) Cheap Qwen 2.5 / 3 via Dashscope
Ollama (cloud) Free tier Run open models via Ollama's hosted endpoint
Local Ollama Free + hardware Self-hosted Ollama daemon โ€” fully offline, no account
vLLM Free + hardware Self-hosted vLLM server with prefix caching
LM Studio Free + hardware Self-hosted, easiest GUI for local models
Apple Intelligence Free, on-device Triage, summary, accessibility intent (via brain icon, not the provider picker)

๐Ÿ’ก Self-hosted "free" providers (Local Ollama, vLLM, LM Studio) are only free in the API-fee sense. Running a 30B+ model with usable speed needs an M2/M3/M4 Ultra Mac Studio (64-128GB unified memory) or a Linux box with 24GB+ VRAM. If you don't already have that hardware, the cloud paths above (Ollama Cloud, Hugging Face, Z.ai, BigModel, DeepSeek) are dramatically cheaper than buying it.

Toolbar Buttons

The Agent! header contains 15 buttons for quick access to settings, monitors, and tools. Each button opens a popover when clicked. Source of truth: Agent/Views/HeaderSectionView.swift.

# Icon Name What it does
1 โš™๏ธ Services Toggle the Launch Agent / Launch Daemon, manage project folder, scan command output
2 ๐Ÿ’ฌ Messages Monitor Toggle iMessage monitoring on/off โ€” green when active. Opens the recipients list and approval UI
3 โœ‹ Accessibility Open the Accessibility settings sheet (permission status, axorcist diagnostics)
4 ๐Ÿ–ฅ๏ธ MCP Servers Add/remove/configure MCP (Model Context Protocol) servers โ€” extends Agent! with mcp_* tools
5 </> Coding Preferences Toggle auto-verify, visual tests, auto-PR, auto-scaffold. Green when any are on
6 ๐Ÿ”ง Tools Per-provider tool toggles. Enable/disable individual built-in and MCP tools
7 ๐Ÿง  LLM Settings Pick AI provider, model, API key, base URL. Pulses when a task is running
8 ๐Ÿงฌ Apple Intelligence Configure FoundationModels (on-device Apple AI). Filled when available
9 ๐ŸŽ›๏ธ Agent Options Temperature, max iterations, vision auto-screenshot, plan-mode encouragement, etc.
10 ๐Ÿ”„ Fallback Chain Configure provider fallback order โ€” Agent! retries with the next provider when one fails
11 ๐Ÿ”ฒ HUD Toggle the green-CRT scanline overlay on the LLM Output view
12 ๐Ÿ“Š LLM Usage Per-model token usage and cost tracking. Green when there's recorded usage
13 โ†ฉ๏ธ Rollback Time-Machine-style file backup browser. Restore any previous version of any file Agent! edited
14 ๐Ÿ• History Past prompts, errors, and task summaries for the active tab. Re-run a previous prompt with one click
15 ๐Ÿ—‘๏ธ Clear Log Delete the activity log for the active tab (or all task history when no tab is selected). Confirms first

๐ŸŽ™ Voice Control โ€” "Agent!" Hotword

Hotword-anchored dictation via SFSpeechRecognizer. Click the microphone in the input bar to start the hotword session, then say "Agent!" followed by your task. Transcription is on-device, runs in real time, and listens for agent as a complete word (not as a substring of "intelligent" or "management"). Anything you say after the wake word becomes the task โ€” after ~2.5 seconds of silence, it auto-runs. The session loops automatically: when one task completes, it starts listening again. Click the mic to stop.

๐Ÿ“ฑ Remote Control via iMessage

Text your Mac from your iPhone:

Agent! What song is playing?
Agent! Check my email
Agent! Next Song

Your Mac runs the task and texts back the result. Only approved contacts can send commands.

๐ŸŒ Web Automation

Drives Safari hands-free -- search Google, click links, fill forms, read pages, extract information.

๐Ÿ“‹ Smart Planning

For complex tasks, Agent! creates a step-by-step plan, works through each step, and checks them off in real time.

๐Ÿ—‚ Tabs

Work on multiple tasks simultaneously. Each tab has its own project folder and conversation history.

๐Ÿ“ธ Screenshot & Vision

Take screenshots or paste images. Vision-capable AI models analyze what they see -- describe content, read text, spot UI issues.

๐ŸŒ Safari Web Automation (Built-in)

Agent! includes built-in Safari web automation via JavaScript and AppleScript. Search Google, click links, fill forms, read page content, and execute JavaScript -- all hands-free.

To enable: Open Safari โ†’ Settings โ†’ Advanced โ†’ check "Show features for web developers". Then go to Developer menu โ†’ check "Allow JavaScript from Apple Events".

๐ŸŽญ Playwright Web Automation (Optional)

Full cross-browser automation via Microsoft Playwright MCP. Click, type, screenshot, and navigate any website in Chrome, Firefox, or WebKit -- all controlled by the AI.

Setup (one-time):

# 1. Install Node.js (if not already installed)
brew install node

# 2. Install Playwright MCP server globally
npm install -g @playwright/mcp@latest

# 3. Install browser binaries (pick one or all)
npx playwright install chromium          # Chrome (~165MB)
npx playwright install firefox           # Firefox (~97MB)
npx playwright install webkit            # Safari/WebKit (~75MB)
npx playwright install                   # All browsers

Configure in Agent!:

Go to Settings โ†’ MCP Servers โ†’ Add Server, paste this JSON:

{
    "mcpServers": {
        "playwright": {
            "command": "npx",
            "args": ["@playwright/mcp"],
            "transport": "stdio"
        }
    }
}

Note: If npx is not found, use the full path: run which npx in Terminal and replace "npx" with the result (e.g. "/opt/homebrew/bin/npx").

Toggle ON and Playwright tools appear automatically. The AI can now control browsers directly.

Tools โ€” what list_tools actually returns

These are the canonical tool names defined in AgentTools.Name.* and exposed to every LLM provider via AgentTools.tools(for:). Source of truth: ~/Documents/GitHub/AgentTools/Sources/AgentTools/AgentTools.swift. The Agent app's user-pref toggles can hide individual tools per-provider, but the list below is the full set the LLM ever sees.

Core / discovery

Tool Actions / args What it does
done summary Signal task complete. Required at end of every task
list_tools โ€” Returns the live tool list for the current provider (built-in + MCP)
search query Web search via Tavily
chat write / transform / fix / about Write prose, transform/fix text, describe Agent capabilities
memory read / write / append / clear Persistent user preferences. "remember X" โ†’ append
plan create / update / read / list / delete Multi-plan CRUD with per-step status tracking
directory get / set / home / documents / library / none / cd Project folder for the current tab
fetch url Fetch URL, strip HTML, cap 8K chars
skill list / invoke / save / delete Reusable prompt templates
ask_user question Mid-task user dialog (waits up to 5 min)

Code / files / build

Tool Actions / args What it does
file read / write / edit / create / apply / undo / diff_apply / list / search / read_dir / mkdir / cd / if_to_switch / extract_function All file operations. edit = single-string replace. diff_apply = preferred for multi-line code edits
git status / diff / log / commit / diff_patch / branch / worktree Git operations โ€” use this instead of shell git
xcode build / run / list_projects / select_project / add_file / remove_file / grant_permission / analyze / snippet / code_review / get_version / bump_version / bump_build Native Xcode integration. Errors in the activity log are clickable
agent_script list / read / create / update / run / delete / combine Swift dylib scripts in ~/Documents/AgentScript/agents/ with full TCC

Shell / privilege tiers

Tool Args What it does
user_shell command Shell as current user via Launch Agent. Primary shell tool
root_shell command Shell as ROOT via Launch Daemon. Admin tasks only โ€” no sudo
shell command Fallback in-process shell (when Launch Agent is off)
batch commands Multiple shell commands in one call (newline-separated)
multi description, tasks Multiple tool calls in one batch

macOS automation

Tool Actions / args What it does
accessibility open_app / find_element / click_element / type_into_element / scroll_to_element / list_windows / inspect_element / get_properties / perform_action / set_properties / get_focused_element / get_children / read_focused / wait_for_element / wait_adaptive / highlight_element / manage_app / show_menu / click_menu_item / set_window_frame / get_window_frame / screenshot / check_permission / request_permission / get_audit_log Element-based AXorcist automation. Every action takes role+title+appBundleId โ€” no coordinates
applescript execute / lookup_sdef / list / run / save / delete NSAppleScript in-process with TCC
javascript execute / list / run / save / delete JXA (JavaScript for Automation)

Web automation

Tool Actions / args What it does
safari open / find / click / type / execute_js / get_url / get_title / read_content / google_search / scroll_to / select / submit / navigate / list_tabs / switch_tab / list_windows / scan / search Safari automation via JavaScript + AppleScript
selenium start / stop / navigate / find / click / type / execute / screenshot / wait Selenium WebDriver session โ€” use safari for normal Safari
mcp_playwright_browser_* (see Playwright MCP) Optional. Cross-browser automation via Playwright MCP

Sub-agents

Tool Args What it does
spawn_agent name, prompt, tools, max_iterations Spawn isolated sub-agent. Max 3 concurrent. Independent message history + mailbox
tell_agent to, message Send a message to a running sub-agent's mailbox

๐Ÿ’ก Note: The on-device app filters this list per-provider โ€” toggle individual tools in the Tools popover (button #6 in the toolbar above). Apple Intelligence has its own minimal default set because of its small context window. MCP tools are appended at runtime as mcp_<server>_<tool> and listed under "--- MCP Tools ---" by list_tools.

Privacy & Safety

  • Your data stays on your Mac. Files, screen contents, and personal data are never uploaded.
  • Cloud AI only sees your prompt text. Use local AI to stay 100% offline.
  • You're in control. Agent! shows everything it does and logs every action.
  • Built on Apple's security model. macOS permissions protect your system.

Defense Layers

Layer What it does
Shell Safety Service Hard-blocks catastrophic commands (rm -rf /, rm -rf ~, dd to /dev/disk, fork bombs, --no-preserve-root) before the Process is even constructed. Cannot be bypassed by the LLM.
TCC In-Process Routing 17-keyword detector routes AppleScript, osascript, JXA, screencapture, accessibility, Shortcuts, and ScriptingBridge commands to run in-process where Agent! holds TCC grants โ€” never through the Launch Agent/Daemon (separate bundle IDs = no TCC).
File Backup on Every Edit FileBackupService auto-snapshots every file before write_file, edit_file, and diff_apply. Recoverable via file(action:"restore") or the Rollback UI. 1-week TTL.
Agent Script .Trash delete_agent copies the script to ~/Documents/AgentScript/agents/.Trash/ before removal. Recoverable via agent_script(action:"restore").
Working Directory Normalization Every shell execution path (executeTCC, UserService, HelperService) normalizes the working directory โ€” if a file path is accidentally passed as cwd, it strips to the parent directory instead of crashing with "Not a directory".
Task Drain-Before-Start Starting a new task awaits the previous task's full termination before beginning โ€” prevents orphaned retry loops from mixing log output across providers.
Fallback Chain When the primary LLM fails (429, timeout, network), Agent! auto-switches to the next provider in the user-configured chain after 2 failures.
Actionable Errors Every tool error includes a Recovery: hint telling the LLM exactly what to try next โ€” no dead-end error messages that waste turns.
Read Cache Invalidation File read cache is invalidated on both successful edits AND failed edits, so the LLM always gets fresh content on the next read.
Basename Search When read_file or edit_file gets a wrong path, Agent! searches nearby directories for files with the same name and returns the correct paths inline โ€” the LLM self-corrects in one turn.
Tool Execution Gating The LLM cannot fabricate tool results. All tool calls flow through the app's dispatchTool() โ†’ actual execution (XPC, shell, in-process) โ†’ real output returned as tool_result. The LLM only sees and summarizes outputs that actually happened. If a tool fails, the real error is returned โ€” the LLM cannot claim success without a matching execution event.
action_not_performed Three-layer defense against false-action claims: (1) Prompt โ€” system prompt instructs the LLM to say "action not performed" if no tool was called. (2) App โ€” if the LLM returns text claiming "I searched/opened/clicked" but made zero tool calls that turn, a correction is injected forcing it to use the real tool. (3) Apple AI โ€” Apple Intelligence tool outputs are verified for substantive results before claiming success; empty/failed outputs automatically forward to the cloud LLM. Every Apple AI tool call is logged to the activity view with ๐ŸŽ prefix.

Keyboard Shortcuts

Source of truth: the TextField .onSubmit in Agent/Views/InputSectionView.swift for Return, and the inline NSEvent.addLocalMonitorForEvents block in Agent/Views/ContentView.swift for everything else.

Shortcut Action
Return Run current task (TextField submit โ€” no modifier needed)
โŒ˜ . / Escape Cancel running task
โŒ˜ B Toggle LLM Output overlay (show/hide)
โŒ˜ D Toggle both LLM chevrons on the current tab (expand/collapse)
โŒ˜ T New tab
โŒ˜ W Close current tab (or quit if no tabs)
โŒ˜ 1โ€“โŒ˜ 9 Switch tab. โŒ˜1 is the main tab; โŒ˜2โ€“โŒ˜9 are script tabs
โŒ˜ Shift โ† / โŒ˜ Shift โ†’ Previous / next tab
โŒ˜ F Toggle activity-log search bar
โŒ˜ L Clear log for the active tab
โŒ˜ V Paste image from clipboard
โ†‘ / โ†“ Prompt history (in the input field)
โŒ˜ Shift M Toggle Messages Monitor on/off
โŒ˜ Shift P Open Settings (system prompt editor lives here)
โŒ˜ Shift K Clear all (full reset)
โŒ˜ Shift L Clear LLM output panel only
โŒ˜ Shift H Clear prompt history
โŒ˜ Shift J Clear task history
โŒ˜ Shift U Clear token counters

Slash Commands

Type these in the input field and press Return โ€” they execute locally without going to any LLM. Source of truth: AgentViewModel+RunStop.swift.

Command Action
/clear or /clear log Clear the activity log for the current tab
/clear all Clear everything (log, LLM output, prompt history, task history, tokens)
/clear llm Clear the LLM output panel only
/clear history Clear prompt history
/clear tasks Clear task history
/clear tokens Reset token counters (task + session)
/memory or /memory show Print the current memory file contents to the activity log
/memory clear Wipe memory
/memory edit Open ~/Documents/AgentScript/memory.md in the system default editor
/memory <text> Append <text> to memory (anything else after /memory becomes the new line)

FAQ

Do I need to know how to code? No. Just type what you want in plain English.

Is it safe? Yes. Standard macOS automation, full activity logging, you approve permissions.

How much does it cost? The Agent! app itself is free (MIT License). Cloud AI providers charge for API usage โ€” the cheapest options for serious work are GLM-5/5.1 via Z.ai, BigModel, or Hugging Face (pennies per million tokens), or DeepSeek for budget coding. Self-hosted local models (Ollama, vLLM, LM Studio) have no API fees but only make sense if you already own the hardware to run them โ€” see the hardware note below.

What Mac do I need? macOS 26.4+. Apple Silicon required. For cloud providers, any modern Mac works fine. For self-hosted local models (Ollama, vLLM, LM Studio): a 7B model fits in 16GB unified memory, a 13B model in 24GB, a 30B model needs 64GB+ (M2/M3/M4 Ultra Mac Studio territory). Apple Intelligence (the on-device mediator for triage / accessibility intent / token compression) needs an Apple Silicon Mac with Apple Intelligence enabled in System Settings.

How is this different from Siri? Siri answers questions. Agent! performs actions -- controls apps, manages files, builds code, automates workflows.


Documentation


Built-in Xcode Tools

Agent! includes native Xcode integration that works without any MCP server setup. These built-in tools are often faster and more reliable than the MCP alternative since they run directly inside the app.

Tool What It Does
xcode build Build the current Xcode project, capture errors and warnings. Errors in the activity log are clickable and open directly in Xcode.
xcode run Build and run the app
xcode list_projects Discover open Xcode workspaces and projects
xcode select_project Switch the active project
xcode grant_permission Grant file access to the Xcode project folder
xcode get_version Read the current marketing version and build number from the Xcode project
xcode bump_version Bump the marketing version (major, minor, or patch), update the build number, build to verify, and auto-commit
xcode bump_build Increment only the build number

Just say "bump version" and Agent! reads the current version, asks major/minor/patch, updates Info.plist and project settings, builds to verify, and commits the change. No manual plist editing, no missed build numbers.

The AI automatically uses these when you ask it to build, fix errors, or work with Xcode projects. No configuration needed -- just have your project open in Xcode.

๐Ÿš€ iOS/iPadOS Support: Coming soon! Native support for building, running, and testing iOS and iPadOS apps directly from Agent! is in development.

Tip: For most coding workflows, the built-in tools are all you need. The MCP Xcode server below adds extras like SwiftUI Preview rendering and documentation search.


Screenshot 2026-04-02 at 12 00 03โ€ฏPM

Two ways to talk to Agent! โ€” voice and iMessage

Both features use the same wake word: "Agent!" (case-insensitive โ€” Agent!, agent!, AGENT!, even just Agent or agent all work).

๐ŸŽค Voice (dictation hotword)

Click the microphone in the input bar and start the hotword session, then speak. Agent! transcribes in real time using SFSpeechRecognizer and listens for the word "agent" as a complete word (not as a substring of "intelligent" or "management"). Anything you say after "agent" becomes the task. After ~2.5 seconds of silence, the task auto-runs.

Examples:

  • "Agent, what song is playing?"
  • "Agent take a screenshot of Safari"
  • "Agent build the Xcode project"

The hotword session loops automatically โ€” after one task completes, it goes back to listening. Click the mic again to stop.

๐Ÿ“ฑ iMessage (remote control)

Text your Mac from your iPhone. Agent! polls ~/Library/Messages/chat.db every 5 seconds for new messages and reacts to anything starting with Agent! (case-insensitive, exclamation mark optional).

Examples:

Agent! What song is playing?
agent! check my email
AGENT! next song
Agent  open Safari

Agent! sends an immediate "Working on it..." acknowledgment, runs the task on a dedicated Messages tab using your main tab's LLM config, and then texts the result back to you.

Setup (one-time):

  1. Grant Full Disk Access โ€” System Settings โ†’ Privacy & Security โ†’ Full Disk Access โ†’ enable Agent! (required to read chat.db directly via SQLite)
  2. Open the Messages Monitor โ€” toolbar button #2 (chat bubble icon, turns green when on)
  3. Approve a sender โ€” once a message arrives from a new contact, that contact appears in the recipients list. Toggle them on to approve.

Only approved senders can run tasks. Unapproved messages are logged but ignored. Your reply is sent back via AppleScript to the same handle that sent the command, capped at 4000 characters.

Outgoing replies have any leading "Agent!" stripped so the receiving Mac doesn't trigger its own command loop.


Agent! supports MCP servers for extended capabilities. Configure in Settings โ†’ MCP Servers.

Xcode MCP Server

Connect Agent! directly to Xcode for project-aware operations:

{
  "mcpServers" : {
    "xcode" : {
      "command" : "xcrun",
      "args" : [
        "mcpbridge"
      ],
      "transport" : "stdio"
    }
  }
}

Xcode MCP provides:

  • Project-aware file operations (read/write/edit/delete)
  • Build and test integration
  • SwiftUI Preview rendering
  • Code snippet execution
  • Apple Developer Documentation search
  • Real-time issue tracking

License

MIT - free and open source.


Agent! for macOS 26.4+ - Agentic AI for your ๏ฃฟ Mac Desktop

Note: Claude refers to the Anthropic AI model integrated into Agent! for LLM functionality. It is not a human contributor Agent!


Agent! vs Claude Code โ€” Architectural Comparison

Agent! is a 100% original pure Swift macOS application. It is not a port, fork, or derivative of any other project.

Claude Code Agent!
Language TypeScript/JavaScript Pure Swift 6.2
UI Framework Ink (terminal React) SwiftUI (native macOS)
Platform CLI โ€” Linux, macOS, Windows Native macOS 26.4+ only
Runtime Node.js/Bun Native compiled binary
Architecture Terminal REPL with streaming Desktop app with XPC daemons
Accessibility None (CLI) Full macOS AX via AXorcist (25 top-level actions, 30+ AX subtypes via perform_action)
AppleScript None Full NSAppleScript + JXA in-process with TCC
Xcode Integration Via Bash (xcodebuild) Native (build/run/analyze/snippet/add_file/bump_version/code_review โ€” 13 actions)
Apple Intelligence None FoundationModels on-device โ€” runs as a real Tool-calling agent for accessibility intent (e.g. "take a photo using Photo Booth" parsed and dispatched locally), task summaries, error explanations, and Tier 1 token compression. Falls through to the cloud LLM only on failure
ScriptingBridge None Full SDEF + 51 event bridges (Finder, Mail, Music, Safari, Calendar, etc.)
Vision Image input via API Image input via API
Auto-screenshots None (no UI) Opt-in auto-verification after UI actions (default OFF โ€” see visionAutoScreenshotEnabled)
iMessage None Remote agent via Messages (Full Disk Access required for chat.db)
Voice None Hotword-anchored dictation via SFSpeechRecognizer
CRT effect None Optional SwiftUI Canvas scanline overlay (toggle via HUD button)
Privilege Model User sandbox XPC Launch Agent (user) + Launch Daemon (root)
Sub-agents Task tool (publicly documented; implementation details not stated by Anthropic) Up to 3 concurrent isolated agents with mailbox messaging
MCP Node.js stdio/SSE Swift AgentMCP package
Scripts None Swift dylib compilation at runtime, dlopen'd in-process with full TCC
Prompt caching Anthropic cache_control ephemeral Anthropic cache_control ephemeral + automatic prefix-cache hit tracking for OpenAI/Z.ai/Grok/Mistral/Gemini/Qwen/DeepSeek; Ollama keep_alive: 30m
Context compaction Cloud Claude (paid tokens; conversation re-sent to Anthropic) Tiered: Tier 1 = on-device Apple Intelligence summarization (free, private, no API tokens). Tier 2 = aggressive prune if Apple AI unavailable. Triggers at 30K est. tokens, summaries memoized, 3-failure circuit breaker

โš ๏ธ Legal Notice & Attribution

Trademark Notice

"๐Ÿฆพ Agent! for macOS26" is an independent software project and is not affiliated with, endorsed by, sponsored by, or otherwise associated with Apple Inc. "Apple," "Mac," "Mac mini," "MacBook," "macOS," and related marks are trademarks of Apple Inc., registered in the U.S. and other countries. All other trademarks, service marks, and trade names referenced herein are the property of their respective owners and are used for identification purposes only.

"๐Ÿฆพ Agent!" and the ๐Ÿฆพ Agent! logo are trademarks of Todd Bruss. Use of these marks requires prior written permission. The MIT license below grants rights to the source code only โ€” it does not grant any trademark rights.

Source Code License (MIT)

The source code of "๐Ÿฆพ Agent! for macOS26" is open source and licensed under the MIT License. You are free to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the source code, subject to the conditions in the LICENSE file (retain copyright notice and the MIT permission notice in all copies or substantial portions of the software).

Compiled Binaries & Releases

Compiled binaries, installers, code-signed builds, and release artifacts distributed through this project's GitHub Releases, agent.macOS26.app, or any other official channel are the copyrighted work of Todd Bruss and are not covered by the MIT license that governs the source code. All rights to the official binaries โ€” including the "๐Ÿฆพ Agent!" name, logo, code-signing identity, and Developer ID โ€” are reserved.

Copyright ยฉ 2000, 2023โ€“2026 Todd Bruss, All Rights Reserved.

You are welcome to build your own binaries from source under the MIT license, provided you do not use the "๐Ÿฆพ Agent!" name, logo, or branding to identify your product.

Warranty Disclaimer

This software is provided "AS IS," without warranty of any kind, express or implied, including but not limited to the warranties of merchantability, fitness for a particular purpose, and non-infringement. In no event shall the author or copyright holder be liable for any claim, damages, or other liability, whether in an action of contract, tort, or otherwise, arising from, out of, or in connection with the software or the use or other dealings in the software.


Thank you for your interest in ๐Ÿฆพ Agent! โ€” an application crafted for Mac mini, MacBook, and Mac desktop computers running macOS 26.4 or later on genuine Mac hardware and software.

Sincerely, Todd Bruss Creator and Founder, ๐Ÿฆพ Agent! for macOS26.4+ https://agent.macOS26.app https://github.com/macos26/agent

Release History

VersionChangesUrgencyDate
v1.0.88.182# ๐Ÿค– Agent! 1.0.88.182 Release Notes ## ๐Ÿ”ง DeepSeek Re-Fix - Fixed DeepSeek provider integration issues that regressed in 1.0.87 - Re-tuned tool consolidation for DeepSeek models to prevent malformed tool calls - Improved error handling for DeepSeek API responses - Fixed streaming mode compatibility with DeepSeek v3 models ## ๐Ÿ“ฆ Install - Download Agent_1.0.88.181.dmg - Drag Agent! to /Applications - Launch and approve the privileged daemon when prompted High6/3/2026
v1.0.86## What's Changed - **Consolidated read_file handler** โ€” unified read implementation with SHA256-based dedup - **Streamlined read guards** โ€” simplified to one rule: one read per (file, range) to reduce unnecessary re-reads - Version bump to 1.0.86 (Build 180) **Full Changelog**: https://github.com/toddbruss/Agent/compare/v1.0.85...v1.0.86High5/26/2026
v1.0.85# ๐Ÿš€ This is the best Agent release so for by a long shot! ### ๐Ÿฆพ Major speed improvements with GLM-5.1 and most likely *all* LLMs! <img width="1526" height="1440" alt="image" src="https://github.com/user-attachments/assets/ce9b9252-3c90-438c-906a-b0ff4bd68336" /> ## ๐Ÿง  System Prompt & Behavior - Use the terse read-once rule verbatim - Tighten read-once rule in system prompt + cite tool-layer enforcement - Dedup any second read of an unchanged file (not just same range) - Add cross-High5/23/2026
1.0.83.175## Changes - Update README.md (a71dac59) - Reset elapsed timer at task-start callsite, not via view .onChange (1af60952) - Bump version to 1.0.81, build 172 (474372d8) - Consolidate trimLog + trimToRecentTasks into ScriptTab.capActivityLog (2e3806c0) - Add new image to README (490057d6) - Update README.md (cbf6ca3e) - WebSearch: add Exa as an AI-powered web search provider (0e1350be) - Merge pull request #19 from tgonzalezc5/feat/exa-search (9f25195c) - Merge branch 'main' of https://High5/16/2026
1.0.80.170<img width="1534" height="1440" alt="image" src="https://github.com/user-attachments/assets/26de21fd-78a6-4e54-b101-255116f8642f" /> ## ๐ŸŒ New Provider: OpenRouter - **OpenRouter as a first-class LLM provider** โ€” access hundreds of models through a single API key - **Protocol toggle** โ€” switch between OpenAI-compatible and Anthropic-compatible endpoints per model - **Smart model catalog** โ€” fetches and filters OpenRouter's /models to only show tool-capable models with real context windowHigh4/25/2026
1.0.76.166<img width="1522" height="1436" alt="image" src="https://github.com/user-attachments/assets/fdd0cc32-c1dd-435f-883a-c522353c0c2b" /> ## ๐Ÿง  Apple Intelligence - Add `run_agent` tool so Apple AI can launch agents via FoundationModels - Persist accessibility agent session across turns - Use Apple AI itself to classify follow-up prompts - Gate Accessibility intent parsing on Accessibility permission - Skip accessibility triage for file-path and coding prompts - Skip triage when project foHigh4/23/2026
1.0.75.164# Agent! 1.0.75 (build 164) <img width="1518" height="1435" alt="image" src="https://github.com/user-attachments/assets/61b4bddf-39c6-466f-8029-e0300b2d2e58" /> ## ๐Ÿง  Apple Intelligence Mediator - Refresh master **Enable Mediator** toggle on popover appear so sub-features re-evaluate against current state - Added separate **Triage Greetings** toggle - Tinted Apple Intelligence toggles with distinct colors - Brain icon now blends colors of active Apple-AI toggles via AngularGradient - High4/19/2026
v1.0.73.162# Agent! v1.0.73 (build 162) <img width="1664" height="1393" alt="image" src="https://github.com/user-attachments/assets/0a4e6774-d76e-497f-883e-e8df444f745f" /> ## ๐Ÿค– Apple Intelligence - Apple AI: skip tool + screenshot bypass to stop hallucinated clicks - Apple AI: refuse destructive UI actions during triage - Two bugs behind 'Apple AI claimed Safari opened' false positive - Brain icon: distinct color per Apple-AI toggle combo - Brain icon: one color per specific toggle that's off High4/18/2026
v1.0.72-build161## โœจ Features - feat: add MiniMax provider support - Claude auth: accept Claude Code OAuth tokens alongside API keys - Claude OAuth: prepend Claude Code identity system block - Claude models: OAuth-aware fetch, add Opus 4.7 to defaults ## ๐Ÿ› Bug Fixes - Fix edit_file diff syntax highlighting in activity log - Fence edit_file diff log with language for syntax coloring - Skip Apple triage in TaskExecution when Accessibility is off - Skip Apple triage when Accessibility permission is notHigh4/18/2026
v1.0.71.160# ๐Ÿš€ Agent! v1.0.71 (build 160) **Release date:** 2026-04-17 **Tag:** `v1.0.71.160` ## โœจ Highlights - **Full output to the LLM** โ€” removed per-tool-result, per-message, and `read_file` 50K char caps. Index and file reads return the complete body in a single turn. - **Claude Code OAuth support** โ€” paste a Claude Code setup token as an alternative to an API key. OAuth-aware model fetch and Claude Code identity system block are prepended automatically on OAuth sessions. - **MiniMax provider** โ€” High4/17/2026
1.0.70.159## What's Changed ### OpenAI Model List Improvements - **Stop filtering OpenAI models** โ€” now returns every model the API lists, no more hidden models (a3cb7be8) - Dropped legacy GPT-3.5 and dated GPT-4 snapshot filtering (1a8e9802) - Future-proofed model filter with blocklist for non-chat models (b3404e29) ### Apple Intelligence - Skip accessibility triage when a project folder is active unless a system app is explicitly named โ€” reduces unnecessary UI queries (f1c09596) **Full Changelog**: hHigh4/16/2026
v1.0.69.158## What's New in v1.0.69.158 <img width="1262" height="1286" alt="image" src="https://github.com/user-attachments/assets/95667f84-a785-4d2b-938c-6198a2907c59" /> ### ๐Ÿง  Project Index & Memory - **Project Index tool** โ€” portable JSONL index per file (lines, doc block, top-level symbols) - **Memory tool** โ€” persistent `/memories` filesystem with `global` and `project` scopes - Consolidated per-project hidden dirs under `.agent/{index,memory,worktrees,plans}` - Prompt version now derived High4/15/2026
1.0.68.156## โœจ ๐Ÿฆพ Agent! What's New in 1.0.68? <img width="1333" height="1281" alt="image" src="https://github.com/user-attachments/assets/02c27005-8903-43bd-be57-e3bb4b526d16" /> ### ๐Ÿ”ง diff_apply Reliability - Fixed truncation bug: source is now spliced into the file instead of replacing entire content - Fixed LLMs sending diff-formatted input to `diff_apply` - Replaced force-unwrap with safe if-let in range note parsing - Updated AgentTools to 2.50.7 with truncation fix - Bumped prompt revisHigh4/14/2026
1.0.67.155## What's Changed <img width="1340" height="1053" alt="image" src="https://github.com/user-attachments/assets/bc2b8865-a069-458d-8c4d-e26b3ca1c5b5" /> ### ๐Ÿค– Apple Intelligence - Use Apple AI itself to classify follow-up prompts - Persist accessibility agent session across turns - Disable shell and applescript tools for Apple AI โ€” accessibility only - Better app name recognition โ€” fixes Photo Booth confusion - Teach Apple AI accessibility agent to discover button labels before clickinHigh4/14/2026
1.0.65.153## What's Changed ### Version Management - **Bump version fixes** โ€” bump\_version/get\_version now correctly uses the selected project instead of Xcode open documents - Version bumps: 1.0.64 (152) โ†’ 1.0.65 (153) ### Security & Safety - **action\_not\_performed guardrail** โ€” three-layer defense against false-action claims (app layer, prompt layer, documentation) - README + SECURITY.md updated to document the action\_not\_performed defense layers ### Apple Intelligence Hardening - **Verify ApplMedium4/13/2026
1.0.61.149## ๐Ÿฆพ Agent! Agentic AI for your ๏ฃฟ Mac Desktop (or Laptop) ### Agent! Requires macOS 26.4 or later. M series preferred for Apple Intelligence. We don't know if Apple AI works on Intel. Also Apple AI is not supported inside a Mac VM. It's optional, but does help move things along by doing several tasks locally, saving you some tokens. <img width="1329" height="1422" alt="image" src="https://github.com/user-attachments/assets/ca333370-9b7d-48e2-980a-df70854f8e5f" /> ### ๐Ÿ”ง Bug Fixes - **FiMedium4/12/2026
1.0.60.148# ๐Ÿฆพ Agent! # ๐Ÿ–ฅ๏ธ agentic Ai for your Apple Mac Desktop or Laptop # ๐ŸŽ works with macOS 26.4+ ### โšก Improvements - ๐Ÿ”„ **Fallback chain**: trigger after 2 failures instead of 3 for faster recovery - ๐Ÿšฆ **429 handling**: record every failure with fallback chain, flat 10s retry (3 attempts ร— 10s) - ๐Ÿ“ **429 logging**: log actual API response body + add clearRetryAfter helper - ๐Ÿค– **Z.ai**: proper dual-API URLs โ€” code and vision endpoints registered separately - ๐Ÿง  **BigModel**: same dHigh4/11/2026
1.0.59.147## ๐Ÿš€ Agent! 1.0.59 (Build 147) <img width="1328" height="1360" alt="image" src="https://github.com/user-attachments/assets/876cf063-7425-4597-8d49-aa5cd6b8474d" /> ### LLM / Provider Improvements - **429 Fallback Chain Overhaul**: Fallback now triggers after 2 failures (down from 3) with a flat 10s retry, so the chain fires within ~30s instead of retrying forever - **429 handling**: Every 429 failure is now recorded against the fallback chain, not just after 3 consecutive failures - **Medium4/10/2026
1.0.57.145## What's new with Agent! <img width="1156" height="772" alt="image" src="https://github.com/user-attachments/assets/73de3092-cfe1-49f1-bb14-71abb7769a4e" /> ### ๐Ÿง  Apple Intelligence & Foundation Models - **macOS 26.4+ Upgrade** โ€” Deployment target bumped to macOS 26.4 with 5 new Apple FoundationModels features: - ๐Ÿ”ข `contextSize` โ€” Dynamic context window from SystemLanguageModel (replaces hardcoded 4096) - ๐Ÿ“Š `tokenCount(for:)` โ€” Precise token counting for tiered compaction (repMedium4/9/2026
v1.0.54.141## ๐Ÿš€ Agent! Release 1.0.54.141 <img width="1152" height="1032" alt="image" src="https://github.com/user-attachments/assets/a4848a82-8329-4ee8-bb5c-d1bb508014a9" /> ### ๐Ÿ”„ Reliability & Fallback - **Fallback chain now fires on exhausted retries** โ€” timeout and network exhaustion paths hand off to the next chain entry instead of giving up silently - New `tryFallbackChain(reason:)` helper records failures consistently ### ๐Ÿ“Š Charts & Metrics - **7-day chart shows single-day data** โ€” adHigh4/9/2026
v1.0.52.139## ๐Ÿฆพ Agent! 1.0.52 Agentic AI for your ๏ฃฟย Apple Mac Desktop <img width="1171" height="1260" alt="image" src="https://github.com/user-attachments/assets/71df984f-13d3-40d9-82ee-3a3ffa4decf6" /> ### ๐Ÿ›ก๏ธ Anti-Confabulation & Reliability - ๐Ÿง  Anti-confabulation: dedup tool names, prune aliases, harden read guard, add prompt rule - โœ๏ธ Edit reliability: drop truncation guard, add cache invalidate + no-op detect - โœ‚๏ธ Diff truncation guard + plan-mode unblock - ๐Ÿ”ง Stuck-edit nudge: lower thresMedium4/7/2026
v1.0.41## Agent! 1.0.41 <img width="1414" height="1361" alt="image" src="https://github.com/user-attachments/assets/a24d48ae-c5ea-4955-8de5-226451cbe516" /> ### ๐Ÿ›  Tool System - **Consolidated tool naming** โ€” all tools renamed with `_tool` suffix, auto-stripped after first turn - **mkdir and cd actions** added to file_manager - **Condensed tools** โ€” strip `_tool` suffix after first turn, auto-revert on failure - **AgentTools 2.31.0** โ€” synced all tool action lists with new naming - **Run ageMedium4/6/2026
1.0.33.118## Agent! Agentic AI for your ๏ฃฟ Apple Mac Desktop <img width="940" height="1039" alt="image" src="https://github.com/user-attachments/assets/920c00f9-0ba8-4b1e-a786-cc8088bb7c44" /> ### โฑ๏ธ Timer Improvements - Background timers โ€” elapsed computed from `taskStartDate`, ticks even when tab is not visible - Per-tab timers โ€” elapsed stored on ScriptTab/ViewModel, no shared `@State` bleeding - Fix timer for direct script runs โ€” set `taskStartDate` on start, freeze on stop - Always show elMedium4/4/2026
1.0.21## Agent 1.0.21 Release ### What's Changed - AgentAccess 2.3.1: unminimize docked windows before activating - AgentAccess 2.3.0: always activate app, handles docked/minimized - Graph improvements <img width="412" height="541" alt="image" src="https://github.com/user-attachments/assets/dc86eee5-4830-46fc-89d4-bf9b4c3f5f42" /> - Token badge: always show, today's total, blue+green lines only - Token chart: add AreaMark fills so green received line is visible ### Installation Download tMedium4/2/2026

Dependencies & License Audit

Loading dependencies...

Similar Packages

solace-agent-meshAn event-driven framework designed to build and orchestrate multi-agent AI systems. It enables seamless integration of AI agents with real-world data sources and systems, facilitating complex, multi-s1.28.0
nexentNexent is a zero-code platform for auto-generating production-grade AI agents using Harness Engineering principles โ€” unified tools, skills, memory, and orchestration with built-in constraints, feedbacv2.2.0
ragflowRAGFlow is a leading open-source Retrieval-Augmented Generation (RAG) engine that fuses cutting-edge RAG with Agent capabilities to create a superior context layer for LLMsv0.25.6
Cogitator-AI๐Ÿค– Kubernetes for AI Agents. Self-hosted, production-grade runtime for orchestrating LLM swarms and autonomous agents. TypeScript-native.main@2026-05-26
difyProduction-ready platform for agentic workflow development.1.14.2

More in MCP Servers

AstrBotAgentic IM Chatbot infrastructure that integrates lots of IM platforms, LLMs, plugins and AI feature, and can be your openclaw alternative. โœจ
agentscopeBuild and run agents you can see, understand and trust.
claude-plugins-officialOfficial, Anthropic-managed directory of high quality Claude Code Plugins.
langchain4jLangChain4j is an open-source Java library that simplifies the integration of LLMs into Java applications through a unified API, providing access to popular LLMs and vector databases. It makes impleme