Releases: macOS26/Agent
Releases · macOS26/Agent
Agent! 1.0.76.166
🧠 Apple Intelligence
- Add
run_agenttool 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 folder is active (unless a system app is named)
- Skip triage when Accessibility permission is not granted
- Better app name recognition — fixes Photo Booth confusion
- Stop biasing accessibility tool toward Photo Booth
- Teach accessibility agent to discover button labels before clicking
- Refuse destructive UI actions during triage
- Skip tool + screenshot bypass to stop hallucinated clicks
- Inject previous conversation turn into rephrase prompt
- Fix
isEnableddefaulting to false - Fix misrouting non-agent tool names to
run_agent - Tighten
run_agenttrigger to exact phrase only - Fix duplicate log entry for accessibility tasks
🎨 UI & Design
- 🧠 Brain icon: AngularGradient multi-color blend for active Apple AI toggles
- Tint Apple Intelligence toggles with distinct colors (red/orange/blue/green)
- Mediator: gray brain icon when disabled (was red)
- Accessibility intent toggle: teal → deep blue
- Add separate Triage greetings toggle
- Add 3px to LLMOutputBox height to prevent cursor blink jitter
- Settings: add refresh button to Claude model picker
- Mirror outgoing iMessage into Messages tab
📸 Images & Attachments
- Paste: popup to pick image resolution, remembers last choice
- Screenshot button: apply same resolution popup as paste
- Cache hi-res originals of pasted/screenshot attachments
- Auto-repair U+202F narrow-no-break-space in screenshot paths
- Add
copy_imageaction to the file tool
🔧 Bug Fixes
- Fix accessibility handler: accept
appBundleIdkey inmanage_app,click_menu_item,set_window_frame - Fix
bump_version/get_versionto use selected project instead of Xcode open documents - Fix iMessage send lockup: use
osascriptsubprocess instead of in-process NSAppleScript - Fix double echo: skip
appendLogfor shell commands that already streamed output - Fix agent script run routing: script tabs run on same tab, main tab spawns separate tab
- Fix: Token Compression toggle now guards every compression entry point
- Fix: respect Token Compression toggle for ALL tiers, not just Apple AI summarization
- Replace force-unwrap with if-let in
diff_and_apply rangeNote - Fix tool output formatting: newline prefix and
:0:0warning cleanup
✏️ Diff & Apply
diff_and_apply: actually use the LLM-provided source snippet- Fix
diff_applytruncation: splice source into file instead of replacing entire content - Fix LLMs sending diff-formatted input to
diff_apply edit_file: show line numbers in activity log status lineedit_file: log only the status line, skip D1F diff and full file dump- FilePath on its own line at both log sites
- Put blank line inside the diff block
📖 Help System
- Add macOS Help Book bundle (
Agent.help) with full Help Viewer compatibility - Adopt CSS-variable pattern + color-scheme meta for dark mode
- Replace
<kbd>with<code class="key">to match Logos pattern - Fix Help "content unavailable" — switch
HPDBookTypefrom remote (1) to local (3) - Rebuild
Agent.helpindexwithhiutil - Flatten
Agent.helpstructure to match Logos (fixes invisible keyboard shortcuts) - Switch target to hand-authored
Info.plistsoCFBundleHelpBookFolder/Nameactually land
📚 Documentation
- Document Launch Daemon as optional, user-controllable
- Remove outdated Write Protection claim from security docs
- Document
SMAppServicere-signing empirical proof inSECURITY.md - Explain why no manual
setCodeSigningRequirementis needed - Update founder's title, badge colors, formatting, copyright, and legal notices
- Remove poem section and founder cancer message from README
- Remove ReleaseNotes folder and contents
🔨 Maintenance & Chores
- Bump version to 1.0.76 (build 166)
- Pin
AgentTools 2.51.6+AgentD1F 1.0.3+AgentSwift 1.1.1+AgentTerminalNeo 1.37.2 - Add
FUNDING.ymlfor GitHub Sponsors (macOS26)
Agent! 1.0.75 (build 164)
Agent! 1.0.75 (build 164)
🧠 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
- Smoother multi-toggle blend with interleaved midpoint colors
- Gray brain icon when Mediator disabled (was red)
- Accessibility intent toggle recolored teal → deep blue
- Gate Accessibility intent parsing on Accessibility permission
- Apple AI: skip tool + screenshot bypass to stop hallucinated clicks
- Apple AI: refuse destructive UI actions during triage
- Fix two bugs behind "Apple AI claimed Safari opened" false positive
📘 Help Book
- Added full macOS Help Book bundle (
Agent.help) with Help Viewer compatibility - Switched Agent! target to hand-authored Info.plist so
CFBundleHelpBookFolder/Nameland correctly - Fix Agent Help "content unavailable" —
HPDBookType1 → 3 (local) - Removed remote URL from Help book (local-only Pull Help)
- Flattened
Agent.helpstructure to match Logos (fixes invisible keyboard shortcuts) - Replaced
<kbd>with<code class="key">to match Logos pattern - Adopted CSS-variable pattern +
color-schememeta for dark mode - Fixed Keyboard Shortcuts help readability
- Rebuilt
Agent.helpindexwithhiutil
🛠️ Diff & Apply
diff_and_apply: actually use the LLM-provided source snippet- Put the blank line inside the diff block
- Added blank line between diff block and status line
filePathonto its own line at both log sites- Added
copy_imageaction to the file tool
🗜️ Token Compression
- Token Compression toggle now guards every compression entry point
- Respect Token Compression toggle for ALL tiers, not just Apple AI summarization
📸 Screenshots & Attachments
- Paste: popup to pick image resolution, remembers last choice
- Screenshot button: apply same resolution popup as paste
- Cache hi-res originals of pasted/screenshot attachments
- Auto-repair U+202F narrow-no-break-space in screenshot paths
💬 Messaging & Tabs
- Fix iMessage send lockup: use
osascriptsubprocess instead of in-processNSAppleScript - Mirror outgoing iMessage into Messages tab
- Record tool steps on tab tasks so Steps list renders
- Mark tab tool steps red when
tool_resultcontent indicates failure - Detect JSON-shaped tool failures in Steps error heuristic
📊 Usage & Settings
- Usage popover: record subscription billing per-call, show Included
- Settings: added refresh button to Claude model picker
- Added 3px to
LLMOutputBoxheight to prevent cursor blink jitter
🐚 Shell
- Shell tool: include exit code in
tool_resultcontent on failure
📚 Docs & Repo
- Point repo URLs at
macos26/agent - README: explain why no manual
setCodeSigningRequirementis needed - SECURITY: document SMAppService re-signing empirical proof
- Repin AgentD1F 1.0.3, AgentSwift 1.1.1, AgentTerminalNeo 1.37.2, AgentTools 2.51.6
Agent! v1.0.72 (Build 161)
✨ 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 not granted
- Claude auth: strip whitespace/newlines from pasted credentials
🚀 Improvements
- Remove per-tool-result and per-message caps — full output to LLM
- read_file: remove 50K char cap — return full file to LLM
- Remove hardcoded default model lists — fetch is the only truth
- index_create/recreate/append/continue: return full JSONL body in same turn
📚 Documentation
- revert: restore full README (undo 6250603 short version)
- docs: clarify Launch Agent is not privileged
- Docs: add CLAUDE_CODE_OAUTH.md — how to mint + paste a claude setup-token
🔖 Release
- Bump version to 1.0.72 (161)
🔀 Merges
- Merge pull request #6 from octo-patch/feature/add-minimax-provider
- Merge branch 'main' of https://github.com/macOS26/Agent
🔧 Recent Fixes
- Add Codex LLM provider (
CodexService.swift) + provider setup wiring - New docs:
docs/CODEX.md,docs/CODEX_OAUTH_RESEARCH.md - TaskExecution refinements:
Setup,ToolBatch,Guards,ErrorHandler,FileTools - AgentViewModel:
StuckGuard,LLMServices,ScriptTabs,ModelFetching,SubAgent,Loggingimprovements - Apple Intelligence mediator + Claude service updates
- UI:
FallbackChainView,SettingsView,ToolsView,NewMainTabSheet,ThinkingIndicatorViewpolish - LaunchAgent/LaunchDaemon plist tweaks
🦾 Agent! 1.0.70 (Build 159)
What's Changed
OpenAI Model List Improvements
- Stop filtering OpenAI models — now returns every model the API lists, no more hidden models (a3cb7be)
- Dropped legacy GPT-3.5 and dated GPT-4 snapshot filtering (1a8e980)
- Future-proofed model filter with blocklist for non-chat models (b3404e2)
Apple Intelligence
- Skip accessibility triage when a project folder is active unless a system app is explicitly named — reduces unnecessary UI queries (f1c0959)
Full Changelog: https://github.com/toddbruss/Agent/compare/v1.0.69.158...1.0.70.159
v1.0.69.158
What's New in v1.0.69.158
🧠 Project Index & Memory
- Project Index tool — portable JSONL index per file (lines, doc block, top-level symbols)
- Memory tool — persistent
/memoriesfilesystem withglobalandprojectscopes - Consolidated per-project hidden dirs under
.agent/{index,memory,worktrees,plans} - Prompt version now derived from marketing + build number (no more hardcoded revision)
✏️ Editing & Diff
- diff_apply fix — splice source into file instead of replacing entire content
- Fix diff_apply truncation and diff-formatted input handling
- Edit reliability: drop truncation guard, add cache invalidation + no-op detect
- Stuck-edit nudge: lower threshold to 3, make actionable
🍎 Apple Intelligence
- Apple AI: persist accessibility agent session across turns
- Apple AI: use Apple AI itself to classify follow-up prompts
- Apple AI: add
run_agenttool for launching agents via FoundationModels - Apple AI: disable shell and applescript tools — accessibility only
- Fix Apple AI misrouting non-agent tool names to run_agent
- Fix Apple Intelligence
isEnableddefaulting to false
🎨 UI Polish
- Long Cmd+V pastes captured as removable chips with first+last char preview
- LLM output: stop last-word flickering with cursor
- LLM output: don't snap to bottom on mouse-exit when not streaming
- Tab labels: main tab shows current model, LLM tabs preserve raw model case
- ToolStepsView: persist expanded state across Cmd+B and new steps
- Multi-line log messages drop onto their own line below timestamp
🔧 Fixes & Cleanup
- Fix LLM tab provider/model clobber + per-tab usage breakdown
- Fix tool output formatting: newline prefix and
:0:0warning cleanup - Replace force-unwrap with if-let in diff_and_apply
- Pin AgentTools 2.50.10 — adds PROJECT INDEX prompt section
- Efficient-action system prompt rules to curb redundant file re-reads
- Anti-confabulation: dedup tool names, prune aliases, harden read guard
- Summarize comments across all major Swift files
- Wrap long lines with SwiftFormat across the project
📦 Dependencies
- AgentTools 2.50.10
- AgentAccess 2.9.5 (screenshots no longer block main thread)
DMG to follow.
🦾 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.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! 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.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