Releases: macOS26/Agent
🦾 Agent! 1.0.68 (Build 156)
✨ 🦾 Agent! What's New in 1.0.68?
🔧 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 revision to 86 for improved diff_apply prompting
🧠 Apple Intelligence Fixes
- Fixed non-agent tool names being misrouted to
run_agent - Tightened
run_agenttrigger to exact phrase match only - Fixed duplicate log entries for accessibility tasks
🖥️ UI Improvements
- Paste chips: Long Cmd+V pastes now appear as removable preview chips instead of flooding the text field
- Tab labels: Main tab shows current model name; LLM tabs preserve raw model casing
- Per-tab usage: Added individual usage breakdown to each LLM tab
- Log formatting: Multi-line messages now drop below the timestamp on their own line
🧹 Code Quality
- Consolidated vision model detection into shared
isVisionModel()(removed two duplicate private methods) - Summarized verbose comments across 10 source files
- Skipped suggestion matching for long inputs to prevent main-thread stalls
- Fixed tool output formatting (newline prefix and
:0:0warning cleanup) - Added iteration cap enforcement
🚀 Agent! v1.0.67 (Build 155)
What's Changed
🤖 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 clicking
- Verify Apple AI tool outputs before claiming success — forward to LLM on failure
- Log Apple AI tool actions to activity log — expose what Apple AI does
- Harden Apple AI triage — never claim completion on failure or uncertainty
- Fix Apple Intelligence isEnabled defaulting to false
- Fix: inject previous conversation turn into Apple Intelligence rephrase prompt
🛠️ Agent Scripts
- Fix agent script run routing: script tabs run on same tab, main tab spawns separate tab
- Fix AgentScript.swift: restore missing function declaration, compileCmd guards, and closing braces
- Route Apple Intelligence tool logs to correct script tab
- Pass project folder to Apple AI shell tool — fixes "not a git repository"
🔒 Security & Guardrails
- Add action_not_performed guardrail at app and prompt layers
- README + SECURITY.md: document action_not_performed three-layer defense
- README: add Tool Execution Gating to Defense Layers
⚙️ Internal
- Bump version to 1.0.67 (build 155)
- Version bump to 1.0.65 (build 153)
- Version bump to 1.0.64 (build 152)
- Fix bump_version/get_version to use selected project instead of Xcode open documents
- README updates and improvements
Full Changelog: 1.0.61.149...1.0.67.155
🚀 Agent! v1.0.65 (Build 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 Apple AI tool outputs before claiming success — forwards to LLM on failure
- Log Apple AI tool actions to activity log for transparency
- Harden Apple AI triage — never claim completion on failure or uncertainty
Documentation
- README: Tool Execution Gating added to Defense Layers section
- README: Tip Jar section added
Full Changelog: https://github.com/toddbruss/Agent/compare/1.0.61.149...1.0.65.153
🚀 Agent! v1.0.61 (Build 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.
🔧 Bug Fixes
- Fix double echo — skip
appendLogfor shell commands that already streamed output - Remove tool result cache — eliminate read loop blocker that caused stale responses
- Remove file read dedup cache — LLMs work around stub responses anyway; cleaner tool flow
🧠 Apple AI Improvements
- Skip accessibility triage for file-path and coding prompts — faster task routing
- Add
!bypass prefix — force Apple AI to skip triage when you know what you want - Add AppleScript + shell tools alongside accessibility for Apple AI agent
🖥️ UI & UX
- Propagate parent tab project folder to spawned script tabs — scripts inherit the right working directory
- Add provider tooltip to LLM Usage popup model rows — see which provider serves each model
📖 Documentation
- Add Defense Layers section to README covering security features
- Add build-without-developer-account instructions +
build.shscript - Add emojis to toolbar icon table, remove SF Symbol text names
- Fix GLM model sizes — 744B/754B MoE, not 32B
- Clarify GLM-5/5.1 are cloud-only (may be possible to run FP8 locally); GLM-4.7-Turbo (32B) runs locally
⬆️ Upgrade Notes
- If upgrading from v1.0.60, no migration needed — settings and tabs are preserved.
Agent! v1.0.60
🦾 Agent! Agentic AI for macOS 26.4+ Mac
🖥️ 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 dual-API URLs as Z.ai (code + vision endpoints)
🍎 Apple AI triage: don't intercept shell commands (open, ls, git, etc.)
🖥️ FallbackChainView: show model display name (with -Code suffix for Z.ai)
🔀 Per-tab provider: sync Settings picker to active tab's LLMConfig
🔧 Model refresh: consolidate 3 model-refresh functions into 1 fetchModelsIfNeeded(for:force:)
🐛 Bug Fixes
🍎 Apple AI refusal: fix not falling through to cloud LLM
📦 batch_commands: remove per-step delimiters, run as single script
🔄 batch: fix duplicate output + guard empty git branch name
📱 manage_app: fix action overwrite + read app from input[app] too
✏️ edit_file: show line numbers in activity log status line
🏗️ Refactoring
📂 Organize AgentViewModel + Views into subfolders, strip redundant prefixes
✂️ Shorten multi-line comments across 94 files (-460 lines)
📏 Wrap long lines across project with SwiftFormat
⬆️ Bump to macOS 26.4+ with 5 new Apple FoundationModels features
🔨 Upgrade to Xcode version bump docs
🚀 Agent! 1.0.59 (Build 147)
🚀 Agent! 1.0.59 (Build 147)
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
- 429 debugging: Log the actual API response body on 429 errors and add
clearRetryAfterhelper - BigModel: Same dual-API URLs as Z.ai — code and vision endpoints registered separately
- Z.ai: Proper dual-API URLs for code and vision endpoints
- Apple AI triage: Don't intercept shell commands (
open .,open /path,ls,git, etc.) — let them pass through to the shell handler - Per-tab provider: Sync Settings picker to the active tab's LLMConfig so each tab can use a different provider
- Model refresh consolidation: Route all model-refresh calls through a single
fetchModelsIfNeeded(for:force:), replacing 3 separate functions - FallbackChainView: Show model display name (with
-Codesuffix for Z.ai)
Tool / Infrastructure
- batch: Fix duplicate output and guard empty git branch name
- batch_commands: Remove per-step delimiters, run as a single script for cleaner output
- Remove read guard snap-out: LLMs need unlimited reads for project research
Version
- Version bump to 1.0.59 (Build 147)
🚀 Agent! 1.0.57.145
What's new with Agent!
🧠 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 (replaces ~4 chars/token estimate) - 🔥
prewarm()— Pre-warm on-device model at app launch for instant first response - 🎛️
GenerationOptions— Greedy sampling for triage, low temp for annotations - 📝
Transcript— Expose session transcript for context inspection
- 🔢
- 🔄 Refusal Fallback — When Apple Intelligence responds with "I'm sorry" or "I'm unable" after calling the accessibility tool, it now falls through to the cloud LLM instead of showing the refusal as a successful result
🏗️ Architecture & Codebase
- 📂 ViewModel Reorganization — AgentViewModel split into 9 subfolders (Core, Helpers, Messages, NativeToolHandlers, TabHandlers, TabTask, TaskExecution, TaskUtilities, Features)
- 🎨 Views Reorganization — Views split into 9 subfolders (ContentView, ActivityLog, Input, Settings, Header, Tabs, Output, Shared, Tools)
- ✂️ Naming Cleanup — Stripped
AgentViewModel+prefix from 57 files,ActivityLogView+from 8 files - 🗑️ Removed Duplicates — Deleted 2 duplicate files (ContentView+Popovers, ContentView+Tabs)
- 📜 Script Service — New script service infrastructure
🐛 Bug Fixes
- 🔧 manage_app Fix — Fixed action overwrite bug where the ax_ prefix handler destroyed the list default. Both handlers now read sub_action first, then fall back to action. Also reads app name from both
input[app]andinput[name]since models pass it either way
📚 Documentation
- 📖 Xcode Version Bump Tools — Added version bump tool documentation to README
Full Changelog: v1.0.55-release...1.0.57.145
Agent! 1.0.52.139
🦾 Agent! 1.0.52 Agentic AI for your Apple Mac Desktop
🛡️ 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 threshold to 3, make it actionable, cover tab tasks
✨ Code Quality
- 📏 Break long code lines across ToolsView, ScriptService, Models, OpenAICompatible, Ollama, CodingService, AgentViewModel, FileTools, TabHandlers+Core
- 📏 Break long code lines in AgentViewModel+SubAgent, +TaskExecution, +TabTask
- 📏 Break long Set literal in ToolPreferencesService, paragraph in AboutSelf, signature in ChatModels
- 🧹 Drop dead planActive variable from main + tab task loops
- 🧹 Cleanup: dead mode handlers + drop empty Copy Agent Resources build phase
🖥️ UI Improvements
- 📋 ToolStepsView: persist expanded state across Cmd+B and new steps
- 📜 LLMOutputTextView: don't snap to bottom on mouse-exit when not streaming
♿ Accessibility
- 🎯 AXorcist-only — drop every coordinate-based caller in the Agent app
- 📸 AgentAccess — screenshots no longer block main thread
- 🚀 AgentAccess — openApp now calls forceLaunchAndActivate
- ⏪ AgentAccess — byte-for-byte revert to working 2.6.0 launchIfNeeded
- 🔙 Pin AgentAccess — restore NSRunningApplication.activate for docked apps
- 🔧 Pin AgentAccess — launchIfNeeded uses Element.showWindow()
📜 Agent Scripts
- ⚙️ agent_script compile: route through executeTCC (in-process), never the Launch Agent
- ⚙️ compileCommand: drop 'touch Package.swift' (TCC-blocked, also a no-op)
⚡ System Changes
- 🔨 Rip out mode system entirely — coding/automation/standard modes are gone
- ⏪ Revert: full system prompt + full tool descriptions on every turn
- 📸 Vision auto-screenshot: opt-in via visionAutoScreenshotEnabled (default OFF)
- ✏️ edit_file: route through CodingService.editFile (d1f-powered) + read_file fix
- 🔄 batch_commands: persist env vars / cwd / functions across steps + fix gitignore
- 📝 .gitignore: clean rewrite for current repo layout
- 📂 Restore tracked Agent / Agent.xcodeproj / AgentHelper trees
📚 Docs
- 📖 Document all 15 toolbar features with icons, descriptions, and detailed behavior
- 📝 Update README.md (multiple updates)
💾 DMG attached.
Agent! 1.0.41 (Build 126)
Agent! 1.0.41
🛠 Tool System
- Consolidated tool naming — all tools renamed with
_toolsuffix, auto-stripped after first turn - mkdir and cd actions added to file_manager
- Condensed tools — strip
_toolsuffix after first turn, auto-revert on failure - AgentTools 2.31.0 — synced all tool action lists with new naming
- Run agent — support both
run agent Xandagent run Xfor direct execution - Fix
run_agent— compile then dlopen/run dylib instead of just compiling
📺 LLM Output Overhaul
- NSTextTable inline rendering — tables render inline with proper padding and sizing
- AgentTerminalNeo integration — native auto-scroll, smooth streaming, cursor blink
- Auto-grow output — LLM Output grows with content, capped at 50% window height
- Draggable resize handle — resize LLM Output panel with drag, respects max height
- Live token counts — estimate input/output tokens during streaming
- Always-blinking cursor — seamless streaming to idle, AGENT! prompt blinks too
- Line-count-based height — eliminates NSTextTable overestimation and jitter
- Fix streaming jitter — height only grows, never shrinks
🧠 Fallback Chain
- Fallback Chain UI — configure backup models in toolbar, auto-switch on failure
- Model picker dropdowns — shows fetched models from all providers
- Eye icon for vision models in pickers and fallback entries
- Wire fallback chain into error handler — auto-switch on provider failure
🎨 UI Improvements
- Status icons and colors — 🧠/blue Thinking, ▶/green Running, 🖥/orange Executing, 🛡/red Root
- Coding Preferences icon turns green when any feature is on
- Agents menu retry — longer initial delay, 10 insertion attempts
- Window frame persistence — retains size after tiling
- Fix double overlay — tab selected shows only its own indicator
- Cmd+B toggles overlay on all tabs including running ones
🔧 Fixes
- batch_commands — run all in single shell session so variables persist
- Fix token accuracy — live output estimate, no double-counting
- Fix timer — 0.25s refresh for live tokens, freeze on cancel
- Fix elapsed time — freeze at actual value when done
- Fix duplicate recordFailure — was double-counting failures
- Fix drag jitter — global coordinate space for handle gesture
- Fix window resizing on drag — prevent window resize from LLM Output handle
🤖 Z.ai / Model Providers
- Dynamic model fetching — Z.ai models 100% from OpenAPI spec, zero hardcoding
- Two endpoints — coding (no vision) and general (vision), URL routing with
:vtag - Fetch models for ALL providers — Z.ai, Gemini, Grok, Mistral, etc.
- Coding endpoint models tagged with
-Codesuffix
🏗 Architecture
- Xcode-only gating — block xc tools when no
.xcodeprojdetected - Verify gate — build must pass before
task_completeallowed - Remove Claude Code references from source comments
- AgentTools pinned to 2.31.0, prompt revision 62
Agent! for macOS26 1.0.33
Agent! Agentic AI for your Apple Mac Desktop
⏱️ 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
@Statebleeding - Fix timer for direct script runs — set
taskStartDateon start, freeze on stop - Always show elapsed time — remembers where task stopped
- Reset timer when new task starts — no stale elapsed time from previous run
- Fix timer reset on tab switch — persist
taskElapsedon ScriptTab, restore on appear
🖥️ UI / Overlay
- LLM Output overlay — overlaid on activity log instead of pushing it down
- Overlay background refinements: dark mode blur material, light mode white background
- Cmd+Shift+D toggles LLM overlay on/off
- Auto-scroll activity log to bottom when new task starts
🧠 LLM Behavior
- Prefix every new task with
NEW TASKinstruction — overrides previous context - Extract shared
newTaskPrefix— single source of truth for task prompt prefix - Loop detection + no-reread rule — prevents LLMs from reading the same file in loops
- Smarter loop detection — only break on consecutive identical reads with no write between
- Allow 2 reads of same file, then return error telling LLM to use cached content
- Remove unused
recentToolCallsfrom main task path
🏗️ Architecture
- Extract shared
DaemonCore.swift— common command execution for Helper and User daemons - Wire
DaemonCore.swiftinto both AgentHelper and AgentUser targets - Main tab doesn't wait for agent scripts — fire and forget into script tab
📦 Version Bumps
- Bumped build number to 117, then 118, then 119
- Version bump to 1.0.33
Full Changelog: 1.0.32.118...1.0.33