Releases: ThinkOffApp/ide-agent-kit
v0.8.2 — text-area-content wake skip (replaces frontmost over-skip)
@claudemm caught that v0.7.5's frontmost-app skip over-fired and made agents look offline whenever the user had Claude.app focused. Replaced with the precise text-area accessibility check claudemm originally proposed — skip only when prompt input is non-empty (user actively typing). Applied to all three osascript wake scripts.
v0.8.1 — per-agent author attribution
Per-agent API key map for the GroupMind announcer + from_handle override on POST /intent. Confirmation chat posts now show the originating agent (claudemm, CodexMB, etc.) rather than always the daemon owner. Configure via mcp.confirmations.api_keys = { '@handle': 'xfb_...', ... }.
v0.7.5 — skip wake when target app frontmost
@claudemm caught: auto-wake injected keystrokes mid-typing if user was already in the target Claude app, garbling the in-flight prompt. Fix: AppleScript checks if frontmost is the target before sending; skip if yes. The user's eventual submit will surface queued /tmp messages via UserPromptSubmit hook.
v0.7.4 — wake: 250ms delay between text and Enter
@Petrus reported 'tmux check rooms with no Enter' — typed text appears in Claude desktop app's prompt input but Enter doesn't actually submit the turn. Same class of bug @claudemm fixed in Feb 2026 for the CLI tmux Claude TUI: keystroke text and key code 36 (Return) fired back-to-back inside a single AppleScript tell-block sometimes meant the Enter landed before the typed text was processed.
Fix: split into two tell-blocks with a 250ms delay between. Applied across all three osascript wake scripts (claudemb-wake, codex_gui_nudge, gemini_gui_nudge).
v0.8.0 — wake-on-mention auto-path
Per @Petrus's ask: when a new room message contains @<peer> for any handle in mcp.confirmations.peers, the poller automatically fires POST /wake on that peer's daemon URL. Sub-second cross-machine nudge with no manual MCP call needed.
Configure in ide-agent-kit.json:
"mcp": {
"confirmations": {
"peers": {
"@claudemm": "http://192.168.50.105:8788",
"@CodexMB": "http://192.168.50.105:8788"
}
}
}And set IAK_SELF_HANDLE=@claudeMB (or your handle) on the poller to skip self-mentions.
Logs to /tmp/iak-wake-on-mention.log.
v0.7.3 — wake fix coverage for tools/codex_gui_nudge.sh
Final straggler from the grep — tools/codex_gui_nudge.sh had the same osascript race bug as the other two wake scripts. Same fix pattern. All three are now consistent.
v0.7.2 — wake fix coverage for tools/gemini_gui_nudge.sh
v0.7.1 — fix silent osascript wake keystroke race
Patch release.
Bug: claudemb-wake.sh used tell application "System Events" to keystroke which routes to whichever process is frontmost at execution time. If Claude.app didn't fully take focus during the 0.3s activation delay (multi-window, focus contention), keystrokes landed in the user's actual foreground app with NO error logged. @claudemm observed ~10 lost wakes in a 16-min window on the mini.
Fix: bind the keystroke target to the process explicitly via tell process "$APP_NAME" / set frontmost to true / keystroke. Plus a post-keystroke verify check that logs WARN when finalFront != target for any remaining edge cases.
Affected: anyone using the AppleScript wake path (claudemb-wake.sh in the IAK poller). The Stop hook path (claudecode-stop-resume.sh) was unaffected — it uses exit code 2 + stderr, no keystroke.
v0.7.0 — MCP server + confirmations + easy install
First release with the full IAK confirmation pipeline + the matching CodeWatch app integration.
Highlights
MCP server
New iak-mcp-server (stdio) and long-running iak-mcp-daemon (HTTP). Tools:
wake_ide,wake_all,wake_remote— nudge agent sessions locally and across machines.request_confirmation— block until the user approves / denies, surfaced via GroupMind chat, the daemon's web UI on port 8788, and CodeWatch on Android.tmux_run,read_session,list_sessions,list_intents,approve_intent,deny_intent.
Confirmation registry
- HTTP server on port 8788:
POST /intent,GET /intents,POST /intent/<id>/decision,POST /wake. - Browser UI at
/with Approve/Deny buttons (works on Wear OS / phone / Mac). - Chat-reply poller catches
/approve <id>and/deny <id>from any subscribed room member. - GroupMind announcements include
metadata.actions+metadata.intent_idso the chat UI renders inline buttons (matching antfarm PR #13).
One-shot macOS installer
curl -fsSL https://raw.githubusercontent.com/ThinkOffApp/ide-agent-kit/main/scripts/install.sh | bash
Idempotent. Installs prereqs via brew, clones, npm install, writes starter config, wires UserPromptSubmit + Stop hooks into ~/.claude/settings.json, starts daemon in tmux, prints LAN URL to paste into CodeWatch.
Auto-wake mechanisms
scripts/claudemb-poll.sh— room poller that drops new messages into/tmp/iak-new-messages.txt.scripts/claudemb-wake.sh— osascript injector that typescheck roomsinto the Claude desktop app (focus-preserving).scripts/claudecode-stop-resume.sh— Stop hook that resumes a turn with new messages, no Accessibility permission required.scripts/check-rooms-hook.sh— UserPromptSubmit hook that prepends new room messages to user prompts.
Docs
docs/auto-wake.md — full setup with ASCII diagram and troubleshooting.
Companion repos
- CodeWatch — phone app, Settings + Setup card + notification action buttons end-to-end.
- antfarm (GroupMind) PR #13 — inline Approve/Deny buttons on chat messages.
Tests
76 / 76 passing across 13 suites on Node 18, 20, 22.
v0.5.0 - User Intent & Claude-Mem Integration
What's New
- User Intent Kit (UIK) Integration: Full support for
intentenrichment vectors on incoming queue events (e.g.,urgency_mode) using standard Bearer token authentication via GroupMind. - Claude-Mem Context Integration: Full multi-agent memory ingestion into queue events via local search retrieval, cleanly parsing MCP-style array formats directly into session payloads for immediate local context.
- Stability & Reliability: Fixed background process lifecycles (GUI nudge bindings properly isolated to
tmux, preventing host agents from abruptly killing them) and normalized local notification paths.