Skip to content

Releases: rullerzhou-afk/clawd-on-desk

v0.16.0

Choose a tag to compare

@github-actions github-actions released this 23 Aug 08:24
8c08337

v0.16.0

v0.16.0 is an agent-integration, remote-notification, accessory-geometry, and
macOS release-hardening update. It adds the first experimental DeepSeek Harness
bridge, manual ZCode permission approval, Slack notifications, Kimi quota
visibility, and a Spanish interface. It also hardens OpenCode/Codex integration,
preference recovery, Windows fullscreen detection, and Developer ID packaging.

Agent Integrations And Permissions

  • DeepSeek Harness bridge (#876) — adds a Windows-first experimental,
    plugin-only integration for the web profile, with managed immutable
    generations, state events, and manual Allow Once / Deny handling for ordinary
    approval requests. ask_user_question, automation, foreign packages, unknown
    mutations, and unsupported DSH versions remain fail-closed. Thanks to
    first-time contributor @RS-Nocsi.
  • Manual ZCode approval (#880) — adds the blocking PermissionRequest hook
    and desktop Allow/Deny bubble while deliberately keeping ZCode outside global
    and per-session permission automation. Foreign hooks remain the sole owner,
    and no-decision paths fall back to ZCode's native UI. Thanks to @liugou27.
  • OpenCode JSONC and Desktop bridge support (#899, #900) — writes the plugin
    into the effective JSON/JSONC configuration and supports OpenCode Desktop's
    Node utility-process bridge. Permission forwarding now requires the live,
    owner-only Clawd runtime identity instead of sending reverse-bridge credentials
    to scanned ports, while preserving no-decision fallback to the native
    permission flow when Clawd is unavailable or intentionally silent.
  • Codex and Gemini detection fixes (#897) — installation discovery now
    distinguishes real CLI evidence from directories created by other products or
    by Clawd itself.
  • Codex hook review stability and Claude hook repair (#870, #873) — keeps
    official-hook trust stable across builds and safely handles environment-based
    worktree hook paths.

Remote Approval, Notifications, And Quota

  • Slack notification-only channel (#836, recovered and hardened in #909) —
    sends bounded, ordered completion/error and permission-request announcements
    by Incoming Webhook or bot token. Slack never makes approval decisions, link
    unfurling is disabled, secrets remain outside prefs, and outbound summaries
    avoid raw sensitive search content. Thanks to first-time contributors
    @wang4433 and @shengmai-justin.
  • Feishu/Lark approver lookup by email (#750) — resolves an approver through
    the selected platform and binds the saved identity to that platform and App.
    Thanks to first-time contributor @Cobb04.
  • Safe Feishu/Lark upgrade guidance — configurations saved before platform
    and approver provenance binding stay fail-closed. A one-time startup notice
    and Doctor warning now explain the required repair instead of letting remote
    approval disappear silently.
  • Kimi subscription quota rings (#881) — adds bounded local quota refresh and
    shared Dashboard/Orbit presentation for Kimi Code CLI.
  • Safer session labels in remote output (#905, #909) — notifications use the
    snapshot-owned display tag and suppress opaque internal workspace identifiers.

Desktop Runtime And Reliability

  • Accessory-aware drag hitboxes (#866) — moving and animated accessories now
    participate in the canonical geometry handshake, including mini mode and
    holiday/accessory changes, so the interactive surface follows what is drawn.
    Thanks to first-time contributor @CheeseAgent.
  • Subagent activity tiers (#877) — juggling intensity follows live subagent
    lifecycle identities instead of aggregate session count.
  • Windows fullscreen detection (#889) — distinguishes maximized normal windows
    from fullscreen applications so ordinary maximization no longer triggers the
    fullscreen overlay policy. Thanks to @KaiC5504.
  • Unreadable or damaged preferences are visible and still safe (#888, #891)
    — Clawd no longer overwrites a prefs file it could not read. If readable
    contents are malformed, it preserves the original as clawd-prefs.json.bak
    and repairs the primary file, but agent gates remain closed for that launch.
    If the backup cannot be created, the primary file and Settings writes remain
    locked instead of risking the only copy. Startup and Doctor explain the exact
    recovery path and required restart. Thanks to @chrono-meta.
  • Completion and accessory lifecycle cleanup — closes stale completion and
    geometry state that could otherwise survive into later activity.

Packaging, Localization, And Diagnostics

  • Developer ID signing and notarization (#915) — official macOS tag builds
    require the complete signing secret set, validate PKCS#8 input, lock the
    certificate to the configured Apple Team, assert required entitlements are
    true, notarize, mount both DMGs, and verify the exact bundled apps. A partial
    secret set or ad-hoc tag build fails closed.
  • Five-target native release gate — manual and tag release workflows now
    require target-native packaged Koffi calls on Windows x64/ARM64, macOS
    Intel/Apple Silicon, and Linux x64 before a draft can be created.
  • No eager macOS Keychain access (#914) — Remote SSH identity remains lazy so
    ordinary startup does not request Keychain access.
  • Spanish UI and README (#890) — adds complete es locale coverage. Thanks
    to first-time contributor @Zamaniego.
  • Theme validator exit semantics (#892, #903) — distinguishes invalid themes
    from a validator that could not run. Thanks to @chrono-meta.
  • WinGet release-process clarification (#896) — keeps submission
    prepare-only and records the architecture-validation boundary.
  • Release diagnostics repaired — DSH ownership now compares canonical paths,
    including symlinked homes and managed roots, and Windows-only filesystem tests
    no longer create impossible Windows paths on POSIX runners.

Contributors

Six first-time contributors landed changes in this release:

Returning contributors include @chrono-meta (#888, #892), @KaiC5504 (#889),
@PeterShanxin (#859), and @liugou27 (#880).

Upgrade Notes

  • Launch Clawd once after upgrading so installed and enabled integrations can
    reconcile their packaged hooks, plugins, and extensions.
  • Existing Feishu/Lark users must open Settings → Remote Approval, select the
    correct platform, save App ID / App Secret again, and then save the
    approver again. Until both bindings are refreshed, the client intentionally
    stays off; the desktop approval bubble remains the local fallback.
  • DeepSeek Harness is experimental, disabled by default, and limited to the
    supported @deepseek-ai/dsh@0.1.0-rc.6 web profile. API-backed session and
    approval smoke is not yet claimed as Windows-verified.
  • Slack is notification-only. Answer permission requests in Clawd, Telegram, or
    Feishu/Lark; Slack cannot Allow or Deny.
  • Packaged macOS and Linux builds still do not perform in-app updates. Download
    future versions manually from GitHub Releases.

Validation Status

Local source-tree validation passed on August 23, 2026: verify:release,
Electron installation verification, and all 8,621 automated tests completed
with 8,591 passes, zero failures, and 30 platform/dependency skips. The asset
audit reported zero errors and one warning because the 52.40 MiB tracked tree is
above its 50 MiB warning budget.

The final code-bearing candidate at
119257ebad54dbcd8b24df178397e83341cbcc9e passed the manual
Build & Release workflow
on August 23, 2026. The run completed the release validator, Developer ID
signing and notarization, Windows/macOS/Linux full test and packaging jobs, and
target-native package audits for Windows x64/ARM64, macOS Intel/Apple Silicon,
and Linux x64. This release-note-only follow-up must pass the same workflow on
the final main head before the tag is created.

Separate real-device evidence was collected before the final release-note and
Windows DSH canonical-path repairs: required Windows hardware checks passed on a
real x64 machine after upgrading from v0.15.0, and the available macOS hardware
checks passed with the signed pre-final candidate. The recommended Windows
DPI/display-scale change was not run. The final draft assets still require the
downloaded-package smoke checks below before publication.

Any later commit must rerun the exact-tree manual workflow. This candidate is
not publish-ready until a tag creates the draft release, its downloaded assets
pass smoke testing, and the remaining applicable platform/agent evidence in the
release checklist is recorded. Skipped tests and source-only checks are not
substitutes for those gates.

Issue #813 diagnostic build 3 (v0.14.0 base)

Choose a tag to compare

@rullerzhou-afk rullerzhou-afk released this 17 Aug 06:41

Diagnostic build only — not a Clawd release

This package is for collecting controlled Ubuntu/Linux evidence for Issue #813. It is based on Clawd v0.14.0 (86125b9) and keeps the application version at 0.14.0.

Please download README.txt and follow Phase 1 exactly. Prefer the portable tar.gz; it does not require FUSE. Start with default mode A only. If the lag does not reproduce with the pet visible, stop that run and report that the baseline did not reproduce.

The build isolates its user data, disables integration/update/permission side effects, refuses another Clawd main process, and checks that the two pet BrowserWindows remain destroyed at +0, +5, and +30 seconds. These checks constrain the experiment; they do not establish a root cause.

SHA-256:

  • Clawd-on-Desk-0.14.0-issue813diag3-x64.tar.gz: fdbaab57894369b6b396906fb1013cee830f5e8db4d1b4e9c2206f67c99d4c61
  • Clawd-on-Desk-0.14.0-issue813diag3-x86_64.AppImage: 243d58e1501ba11b70672cb28c25e4128871f04a98582956e8c6cbbf588b1c8c
  • README.txt: 1a00a5dec96f05c0b0f7b4ae2e41810c63115c8d3c695253f4c1fa2e0cce0f33

Source commit: 47ea9ae724ec4a8a0fb4be11d2e6cbcfdefc8bd4

v0.15.0

Choose a tag to compare

@github-actions github-actions released this 13 Aug 00:31
b5a5ec8

v0.15.0

v0.15.0 is a quota-legibility, free-roam, and platform-reliability release. The
subscription quota ring becomes readable at a glance — identity-based colors, vendor
glyphs, and a readout that follows whichever window is actually raising the alarm.
Free roam gains two independent ways to bound where the pet wanders. The OpenCode
family, Codex, macOS, and Windows runtime paths each closed a set of real-world
defects reported against v0.14.0.

This release also prepares the project to take over WinGet manifest publishing, after
discovering that x64 users had been receiving the ARM64 installer since v0.6.2, and
welcomes two first-time contributors.

Subscription Quota And Usage

  • Identity-based ring colors and vendor glyphs (#863) — healthy rings are colored
    by source identity rather than headroom, so the rolling and weekly windows stay
    distinguishable instead of collapsing into one thick green band. The Claude coin now
    carries the vendor mark, taken from the same MIT icon upstream that supplies the
    other Lobe Icons agent glyphs; every other runtime icon is byte-for-byte unchanged,
    with provenance and hashes updated in source-manifest.json and the MIT attribution
    list in NOTICE.md.
  • The readout follows the alert (#864) — the coin used to always print the rolling
    window while the ring colored itself from the tightest window, so a coin could read
    "1% 5h" while the inner ring sat at 61% amber. The title now hands over to the
    tightest window once it crosses the warning threshold, so in the common case the
    digits report the alert instead of leaving color to carry it alone. A flashback
    briefly replays the rolling number at the moments it is most likely to be asked
    about; color remains the only alert channel during that ~1.6s window, in the 60-85%
    band that does not pulse, and under prefers-reduced-motion. Each coin's glyph is
    scaled to its own artwork rather than one shared zoom.
  • Used / Remaining display modes (#789) — a persisted preference selects whether
    the ring reports consumption or headroom, without changing quota ingestion or the
    warning thresholds. The same change consolidates reusable Settings buttons, warning
    dialogs, segmented choices, and dropdown behavior, and stabilizes Settings scrolling
    and dropdown lifecycles — including the theme-accessory case that previously lost its
    real scroll range after a selection. Thanks to @YOIMIYA66.
  • Correct context windows for custom Claude models (#809, issue #797) — when local
    Claude quota collection is enabled, context usage is read from the Claude statusline
    rather than inferred, so a custom model no longer displays a context length that does
    not match the model actually in use. Collection stays opt-in (Settings → General)
    because it installs Clawd's own statusline; an occupied third-party statusline is
    preserved rather than taken over, and Clawd falls back to transcript-derived context
    when registration does not succeed.

Free Roam

  • Constrain to axis (#795, issue #686) — an opt-in setting restricts idle wandering
    to horizontal or vertical movement only, for users who prefer grid-aligned motion
    over diagonal drift. Default off, so existing behavior is unchanged. Thanks to
    first-time contributor @weed33834.
  • Optional roam fence (#810) — free roam can be bounded to a rectangle expressed as
    fractions of the work area, so the pet can be kept to, say, the bottom-right quadrant.
    The fence is re-read on every target pick, so edits apply live without a restart, and
    the minimum hop distance scales down so small fences still produce reachable targets.
    Thanks to @anthonyonazure.
  • Hardened axis targets (#819) — axis-constrained targets are clamped against the
    same bounds as unconstrained ones, and the movement-style wording is clarified.

OpenCode Family

  • Real session titles in the HUD (#841, issue #829) — OpenCode sessions show their
    actual title instead of the project folder, and the title updates after OpenCode
    renames a session. Titles are bounded, kept out of logs, stripped of Unicode
    bidirectional formatting marks before display, and carry no telemetry stamp. Thanks
    to @xiaoshidefeng.
  • No premature idle during long active work (#853, issue #850) — an active agent
    could fall back to idle mid-task and release the session; the stale floor is now
    scoped to interactive sessions and no longer fires while tools are still running.
    Thanks to @PeterShanxin.
  • Ordered state delivery and directory-scoped disposal (#855, #858) — /state
    requests for one session are serialized so an older lifecycle request can no longer
    arrive after a newer rename and restore the stale title, and
    server.instance.disposed clears only the disposing directory's sessions instead of
    every cached session process-wide. Sustained state updates queued behind an
    unresponsive local endpoint are coalesced to the latest snapshot and the retained
    backlog is hard-capped. Lifecycle and metadata barriers retain their order within
    that bound; SessionEnd replaces stale queued snapshots without overtaking the
    active request. Regression coverage locks these ordering and stale-floor boundaries.
  • Session cwd bound to its owning session (#798, issue #796) — a session's working
    directory can no longer be attributed to a different session.

Codex Runtime

  • Terminal turns fenced across event sources (#831, issue #821) — after a Codex turn
    ends, late PreToolUse / PostToolUse events can no longer pull the pet back into a
    typing state, and token_count telemetry is separated from session liveness so a
    metadata refresh cannot keep a stuck working session from timing out.
  • Bounded rollout log reads (#820, issue #817) — rollout log consumption is bounded
    and recovery retries are hardened, closing a main-process error path.
  • No flicker during Codex Pet drag transitions (#804, issue #620) — drag direction,
    release, and state changes switch animation rows inside the already-loaded SVG
    document rather than rebuilding the spritesheet, removing the intermittent transparent
    frame. (#803 reverts an earlier direct push of the same fix so it could land through
    review.)

Platform: macOS

  • Menu bar and Dock settings restored (#851) — the menu-bar and Dock visibility
    preferences apply and persist correctly again.
  • Pinning against physical display bounds (#826, issue #241) — edge pinning uses
    physical display bounds, so the pet can reach the bottom of the screen when the Dock
    is present and bottom pinning stays on-screen.

Platform: Windows

  • Server-side process-chain resolution (#837, issue #694) — native Windows process
    ancestry queries (NtQueryInformationProcess primary, Toolhelp comparison) move
    eligible /state and Codex /permission process-metadata resolution into the server,
    with per-agent legacy | shadow | b1a-authoritative capability routing and bounded
    shadow parity diagnostics. In authoritative mode the legacy hook-side PowerShell
    snapshot is structurally skipped.
  • Hardened FFI initialization and per-registry Koffi caching (#839, #840, issue
    #838) — process-query FFI initialization no longer fails open, and Koffi bindings are
    cached per registry rather than re-resolved.
  • Target-native Koffi packaging and foreign-native audit (#824, issue #763) — each
    release target keeps exactly one architecture-matching koffi.node, and a native
    inventory audit rejects every foreign-architecture binary except the
    electron-builder-managed Windows ia32 elevate.exe helper.

Agents And Diagnostics

  • QwenWork (千问办公) (#843) — a hook-only, state-only integration modeled on
    QoderWork. The pet reflects QwenWork lifecycle state while permission decisions stay
    entirely in QwenWork's native flow: PermissionRequest / PermissionDenied are
    observation-only and the hook always returns {}. Detection, install, and uninstall
    go through ~/.QwenWorkCN/settings.json. Windows and macOS only — QwenWork currently
    ships no official Linux client. Thanks to @xiaoshidefeng.
  • Hermes WSL Pair and Unpair (#842, issue #540) — pairing and unpairing work against
    WSL targets.
  • Unreviewed Codex hooks explained in Doctor (#854) — Doctor distinguishes "hooks
    are missing" from "hooks are installed but still need review in Codex /hooks", which
    was the actual cause behind several "no permission prompt appears" reports.

Dashboard, Remote Access, And Notifications

  • Persisted Sessions/Dashboard window bounds (#807, #814, issue #801) — the window
    remembers its position and size, with hardened persistence against invalid or
    off-screen bounds. Thanks to @KaiC5504.
  • Serialized Codespaces SSH transport (#845, issue #546) — concurrent Codespaces
    gh cs ssh --stdio activity no longer breaks Remote SSH deploy/probe on Windows.
  • Safe Remote SSH reconnects (#808, issue #800) — reconnect after a dropped
    connection recovers instead of failing permanently.
  • Safe HTML in Telegram messages (#802, issue #766) — message rendering escapes
    agent-controlled content instead of emitting it into Telegram's HTML parse mode.
  • Distinct default completion sound (#833) — built-in themes now use a dedicated,
    softened completion cue instead of sharing the ordinary confirmation sound.

Packaging, Security, And Localization

  • WinGet manifest self-publishing groundwork (#861, issue #860) — a prepare-only
    workflow generates the manifest komac would submit and gates it on an architecture
    contract. rullerzhou-afk.clawd-on-desk has been live in microsoft/winget-pkgs
    since 2026-04-20 without ever being submitted by this project: a third-party release
    tracker picked it up and, from v0.6.2 onward, produced manifests declaring two
    Architecture: x64 entries that both pointed at the ARM64 installer. The NSIS
    stub runs on ...
Read more

v0.14.0

Choose a tag to compare

@github-actions github-actions released this 02 Aug 09:39

v0.14.0

v0.14.0 is a personalization, permission-automation, and remote-runtime
reliability release. It adds theme-aware pet colors and accessories, optional
holiday and test-result reactions, per-session permission automation, live pet
animation mirroring in Discord Rich Presence, ZCode support, account-wide
Claude/Codex subscription quota surfaces, and stronger terminal-focus and
startup recovery across supported agents.

This release also retires the legacy Telegram Go sidecar in favor of the native
transport and welcomes six first-time contributors.

Pet Personalization And Presence

  • Theme-aware colors and accessory wardrobe (#529, #728, #730) — customize
    supported pets with saved color tints and seven pixel-art accessories. The
    accessory layer follows the pet across animations, respects direction and
    theme capabilities, and degrades safely when a theme does not support a
    customization. The original wardrobe, tint, seasonal, and test-reaction work
    came from first-time contributor @anthonyonazure in #529 and was carried
    forward with co-author credit through the hardened successor changes.
  • Optional holiday accessories (#791) — a separate opt-in can temporarily
    select the Halloween, Christmas, or New Year accessory and then restore the
    user's saved manual choice. The runtime override is never persisted as a
    pseudo-accessory value.
  • Optional test-result reactions (#792) — recognized successful and failed
    test-run summaries can trigger a short celebration or failure reaction. The
    hook path is payload-bounded, accepts only explicit runner summaries, and is
    disabled by default.
  • Live Discord animation mirror (#738) — Discord Rich Presence can mirror
    Clawd's current on-screen animation through repository-hosted GIFs. The
    animation mirror is a separate off-by-default option and keeps public status
    text coarse. Thanks to returning contributor @KaiC5504.
  • Codex Pet V2 import (#786) — current Codex Pet V2 atlases can be imported
    without regressing existing theme behavior.

Permission Automation And Agent Runtime

  • Safer permission automation (#740, #748, #749) — replace the old global
    all-or-nothing switch with explicit Ask every time, Question prompts only,
    and Auto-approve modes. Automation can be scoped per live session, dangerous
    modes require clear confirmation, and the most permissive mode is reduced
    after restart instead of becoming a permanent unattended default.
  • Reliable multi-question remote replies (#623) — indexed Telegram and
    Feishu/Lark answers now preserve the question-to-answer mapping instead of
    applying an ambiguous response to the wrong prompt.
  • Codex subagent approval routing (#790) — interactive approval requests
    from Codex subagents are attributed and intercepted without confusing them
    with the parent session.
  • ZCode integration (#677) — ZCode gains state-only hooks, additive config
    registration, Claude-import cleanup, lifecycle/process detection, and Windows
    process-cache support. Clawd observes state but leaves permission decisions to
    ZCode. Thanks to first-time contributor @liugou27.
  • Shared stable PID cache (#634, #729) — twelve remaining hook adapters now
    share the stable process-tree cache while preserving agent-specific session
    boundaries and SessionEnd cleanup. Thanks to first-time contributor
    @LinYsssss.
  • Startup recovery (#653, #769) — active Claude sessions can be restored
    after Clawd restarts, and Codex SessionStart can safely cold-launch the
    packaged app without bypassing the agent gate. Thanks to returning
    contributor @200780381 and first-time contributor @He-wei-gui.
  • Reasonix lifecycle and Windows delivery (#733, #745) — encoded hook
    detection, config fallback, renamed desktop/CLI processes, cold starts,
    deadlines, and post-idle delivery are hardened. Thanks to returning
    contributor @sLingli.
  • Agent attribution and terminal focus (#759, #764, #776) — Cursor
    compatibility hooks retain their real origin, Orca focus uses verified pane
    identity and refuses ambiguous targets, and cmux uses the real workspaceId
    schema. Thanks to @KaiC5504 and first-time contributor @YOOGOMJA.

Subscription Quota And Context Usage

  • Account-wide Claude and Codex quota (#660) — subscription limits are
    stored independently of session lifetime and shown in the Dashboard and a
    configurable pet-attached Orbit ring. Local and Remote SSH sources remain
    distinguishable, with an opt-in merged view for users who intentionally
    share one account. Remote Claude statusline chaining never silently replaces
    an occupied third-party statusline. Thanks to returning contributor
    @Tonic-Jin.
  • Codex provider routing (#782) — Codex Spark and other reported quota
    windows remain separated by source instead of being merged into the wrong
    subscription bucket.
  • Claude Opus 5 context size (#783) — current Opus 5 model identifiers are
    recognized as one-million-token context models where applicable.

Remote, Desktop, And Settings Reliability

  • Remote SSH isolation hardening (#736) — profiles use dedicated local
    ingress, pinned routing identity, layout-scoped leases, fencing checks, and
    owner-verified cleanup so sessions and mutations cannot silently cross
    profiles. Experimental same-account profile isolation remains release-gated
    and is not presented as full HOME or same-UID security isolation.
  • Native Telegram migration (#775) — the legacy Go sidecar is no longer
    shipped, started, or accepted as fallback. Existing legacy users retain their
    saved Telegram settings but must complete one real nonce verification callback
    before native remote approval becomes active.
  • Display-edge and mini-mode convergence (#690, #747, #751) — render and hit
    windows now share logical/physical edge mapping, topology reconciliation, and
    guarded mini transitions across mixed display layouts. Free roam no longer
    starts while the pet is being dragged (#716, #780).
  • Settings and updater polish (#731, #737, #739, #741, #746, #785, #787,
    #793) — window titles and language controls are localized, tutorial and agent
    icons are consistent, settings interactions survive resizing and bounds
    persistence, destructive cleanup uses an in-app confirmation, and update
    failures expose structured, copyable diagnostics.
  • Asset and package integrity (#760, #761, #762, #771, #774, #781) — agent
    and tray icons use canonical sources, redundant packaged assets are removed,
    every packaged architecture asserts that the retired Telegram sidecar is
    absent, and the repository audit rejects missing provenance, unsafe
    duplicates, malformed binaries, and retired sidecar content. macOS signed
    payloads and Linux artifacts receive platform-appropriate structural checks.
  • Dependency security (#725) — the affected SDK dependency chain is updated
    for the reported Axios security issue. Thanks to first-time contributor
    @anupamme.

Contributors

Welcome to first-time contributors @LinYsssss, @He-wei-gui,
@liugou27, @YOOGOMJA, @anupamme, and @anthonyonazure.

Thanks also to returning contributors @KaiC5504, @sLingli,
@Tonic-Jin, and @200780381, to maintainers @rullerzhou-afk and
@YOIMIYA66, and to everyone who reviewed or tested real agent, terminal,
remote, and platform behavior.

Upgrade Notes

  • Existing preferences, installed/enabled agent flags, themes, manual pet
    colors, and manual accessories are preserved when upgrading from v0.13.0.
  • Users still configured for the legacy Telegram sidecar enter a blocking
    migration-required state and receive a one-time startup reminder. Their token,
    allowed user, and target chat remain saved. Open Settings → Remote
    Approval
    and complete the real native verification callback; Telegram
    approval and completion notifications remain disabled until that succeeds.
    A failed check never revives the retired sidecar.
  • The most permissive unattended automation mode is not a permanent restart
    default. Review the selected permission automation mode after upgrading and
    keep Ask every time when automatic decisions are not intended.
  • ZCode is state-only. Its native permission flow remains authoritative, and an
    explicitly disabled ZCode hook configuration is preserved rather than
    overwritten.
  • Local Claude quota collection is opt-in because it installs Clawd's visible
    statusline. An existing third-party statusline is preserved; Remote SSH
    chaining is a separate per-profile opt-in.
  • Launch Clawd once after upgrading so installed and enabled integrations can
    reconcile their managed hooks/plugins against the packaged v0.14.0 files.

Validation Status

Release validation is complete. Whole-version multi-agent review, independent
Claude cross-review, post-fix regression review, the full automated test suite,
the repository asset audit, and the final multi-platform package build all
passed on main commit 1d87aa12086c4952aed70642e3133abc6016be71.

The packaged v0.14.0 x64 installer was installed and smoke-tested on Windows 11
x64. The final checks covered upgrade preference and position preservation,
five-language Settings and contributor credits, packaged Codex hooks and a real
Codex lifecycle, saved-position cold starts, fullscreen click/drag behavior,
folder drag-and-drop, New Session, Windows Terminal prompt submission without a
visible PowerShell flash, lock/sleep/resume recovery, and sleep accessory
tracking. No release-blocking failure remained after the repair candidate was
installed. The ARM64 Windows installer was checked for identity, architecture,
contents, and retirement-manifest integrity but was not installed on x64
hardware.

The final macOS and Linux packages were built and structurally validated in CI;
this release candidate was not rerun on dedicated macOS or Linux hardware.
Feature-specific rea...

Read more

v0.13.0

Choose a tag to compare

@github-actions github-actions released this 22 Jul 10:59

v0.13.0

v0.13.0 is an agent-extensibility and runtime-reliability release. It adds
WorkBuddy and MiMo Code integrations, lets users register state-only custom HTTP
agents, adds a default idle-animation picker, brings remote approval to both
Feishu and Lark, surfaces Codex request_user_input questions on the desktop,
and hardens hook recovery and Windows/macOS window behavior.

This release welcomes seven first-time contributors.

New Integrations And Extensibility

  • WorkBuddy support (#618) — optional Claude Code-compatible command hooks
    support the current ~/.workbuddy-ai/settings.json location and the legacy
    ~/.workbuddy/settings.json location. WorkBuddy is state + Notification only:
    approval remains in WorkBuddy's native sandbox and GUI, and Clawd never
    registers a /permission hook. Thanks to first-time contributor @kkirito16.
  • MiMo Code support (#607) — MiMo joins the opencode family through
    @mimo-ai/plugin, with comment-preserving JSONC install/repair/uninstall,
    deterministic handling of multiple config candidates, and the same
    Allow/Always/Deny permission bridge and DND fallback as opencode. task child
    sessions are headless and do not participate in the visible multi-session
    animation fanout. Thanks to first-time contributor @jiaxuan1101.
  • Custom HTTP agents (#652) — Settings can register local applications and
    assign stable custom-... IDs for state-only /state reporting through the
    runtime-discovered port. Registration does not install a hook or observe a
    process automatically; disabled, removed, stale, and forged IDs fail closed,
    while server-side session namespacing prevents two custom applications from
    overwriting one another. Thanks to first-time contributor @200780381.
  • Default idle animation picker (#679) — choose the idle visual used by a
    theme while preserving eye-tracking capability rules. Thanks to returning
    contributor @KaiC5504.
  • Lark remote approval (#493) — the existing Feishu channel now supports
    Lark tenants as a first-class platform, with real-tenant fixes and updated
    event-subscription guidance.

Agent Runtime And Permission Reliability

  • Codex desktop questions (#707) — supported request_user_input prompts
    can appear as desktop question cards, including recovery after restart and
    correct resolution cleanup. Recovery is bounded by age, file count, and byte
    budget, keeps durable read positions, handles exact 1 MiB record boundaries,
    and does not replay stale completion events. Thanks to first-time contributor
    @JesmonX; rollout read-position and unavailable-session work also came from
    first-time contributor @lurui1997 (#698, #700).
  • Codex Desktop attribution and deduplication (#669) — Desktop originator
    metadata is retained and Desktop sessions are counted separately where
    needed. Thanks to first-time contributor @Dxy2326.
  • Claude hook self-healing (#673) — all in-process Claude settings mutations
    now run through one server-owned queue. Directory watching catches atomic
    replacement, a periodic read-only health audit finds deleted scripts even
    without an fs event, and three repeated failed repairs transition to a manual
    fix state. Explicit Install/Fix only reports success after the entire declared
    hook set verifies healthy.
  • CodeBuddy permission ownership — local and explicitly configured custom
    permission URLs remain supported, while unrelated HTTP hooks are preserved;
    a bare hook named only clawd is never treated as owned.
  • Kimi passive approval cues (#675, #680, #702, #703) — permission cards are
    tool-aware, batched approval state is tracked without taking over Kimi's
    native decision, dismissing a cue can focus the terminal, and the legacy
    suspect heuristic is migrated safely. New legacy ~/.kimi installs now
    default to persisted --permission-mode=suspect because current kimi-cli
    versions do not emit explicit permission fields; an existing explicit choice
    is preserved. Pre-approved gated commands lasting longer than about 0.8s may
    briefly show a false-alarm cue. Set CLAWD_KIMI_PERMISSION_MODE=explicit
    before reinstalling/syncing to opt out persistently, or use the same runtime
    environment variable for a temporary override.
  • Permission fallback clarity (#704) — opencode-family bubbles can return
    control to the terminal without silently deciding the request.
  • Nested hook Doctor checks (#668) — integration health is validated per
    event instead of accepting a partially present nested hook configuration.

Desktop And Platform Fixes

  • No residual Windows Terminal prompt flash (#672) — foreground Windows
    Terminal sampling moves into the already-running Electron process, removing
    the remaining per-prompt PowerShell spawn. Hook process-tree inspection is
    also skipped when Clawd is offline and temporary caches no longer retain agent
    command lines (#681). Thanks to @Dxy2326.
  • Windows DWM cloak recovery (#525, #701) — the pet can detect and recover
    from an unexpectedly cloaked window across watchdog and power/display-wake
    paths.
  • Windows first-frame visibility recovery — after the first pet visual is
    actually rendered, Clawd replays the existing window bounds and native
    visibility/topmost recovery sequence without relocating the saved pet
    position. This prevents an upgrade launch from requiring the tray recovery
    action before the pet appears.
  • Desktop shell fullscreen detection (#721) — Explorer/desktop shell
    windows are no longer mistaken for fullscreen applications. Thanks to
    returning contributor @KaiC5504.
  • Stable tray flash icon (#722, #723) — notification flashing no longer
    changes tray icon size. Thanks to first-time contributor @chen86860.
  • macOS SkyLight editing dodge (#640, #664) — while a text-input bubble is
    being edited, the pet and hit windows are transactionally moved out of the
    private stationary Space so they sit behind the input/IME surface, with a
    fade fallback if the native path cannot be applied. Thanks to returning
    contributor @Yike-Ye.
  • Electron install integrity (#710, #712) — postinstall and explicit
    verification detect incomplete or mismatched Electron distributions, retain
    Linux override fallback behavior, and validate packaged platform binaries.
    Electron is updated to 41.10.2; source builds now require Node.js 22.12.0 or
    newer and the repository pins Node 24.18.0 in .nvmrc.

Release Hardening

  • Release CI now runs the full test suite on Windows, macOS, and Linux before
    building, so POSIX-only installer/JSONC behavior is no longer skipped by the
    only test job.
  • Custom-agent session keys are namespaced at the HTTP trust boundary, Claude
    explicit repairs require a fully healthy report, and local/remote Codex
    recovery retains complete records that begin exactly at the tail window.
  • Windows still ships separate x64 and ARM64 NSIS installers. macOS and Linux
    packages retain their platform-specific sidecars and executable checks.

Contributors

Welcome to first-time contributors @jiaxuan1101, @kkirito16,
@200780381, @Dxy2326, @lurui1997, @JesmonX, and @chen86860.
Thanks also to returning contributors @KaiC5504, @Yike-Ye, and
@Git-creat7, and to everyone who tested real agent and platform behavior.

Upgrade Notes

  • Existing preferences, themes, and installed/enabled integration flags are
    preserved when upgrading from v0.12.0.
  • WorkBuddy users should prefer ~/.workbuddy-ai/settings.json; the legacy
    ~/.workbuddy/settings.json path remains supported.
  • Custom HTTP senders must continue discovering the active port from
    ~/.clawd/runtime.json; port 23333 must not be hardcoded.
  • After upgrading from v0.12.0 or earlier, fully quit and start Clawd once so
    ~/.clawd/runtime.json gains its ownerPid. Until that first restart, hooks
    fail closed for process-tree metadata: state/approval routing still works,
    but terminal PID and click-to-focus metadata may be temporarily absent.
  • WorkBuddy has no verified standalone Linux/WSL CLI. MiMo/opencode task
    children remain headless rather than driving visible building fanout.

Validation Status

  • Windows x64: packaged real-machine smoke passed on July 22, 2026. The final
    win-unpacked app opened a live window, owned its runtime identity, fell back
    from occupied port 23333 to 23334, and returned a valid GET /state health
    response. The NSIS cleanup entry point also removed a managed MiMo plugin
    from JSONC while preserving its comment, trailing comma, third-party plugin,
    and unrelated settings. After the first draft installer exposed a blank pet
    on upgrade launch, the rebuilt package was cold-started twice with the saved
    pre-fix position/display snapshot: both runs kept the saved 189,403
    position, reported a visible uncloaked native window, and the first run's
    captured HWND contained the rendered Cloudling visual without using the tray
    recovery action.
  • Windows ARM64: not real-machine validated for v0.13.0.
  • macOS: not real-machine validated for the final v0.13.0 package in this
    Windows-first release environment.
  • Linux: not real-machine validated for the final v0.13.0 package in this
    Windows-first release environment.
  • Feishu China tenant and QoderWork IDE: not real-machine validated for
    v0.13.0. Lark tenant behavior and Qoder CLI are covered separately.

CI builds and unit tests are release gates, but do not count as real-machine
validation.

v0.12.0-diag699 诊断版(issue #699 专用)

Choose a tag to compare

@rullerzhou-afk rullerzhou-afk released this 17 Jul 00:36

诊断专用版本(issue #699)— 不是正式版本

这是为调查 #699"Windows 宠物透明"问题制作的一次性诊断构建,基于 v0.12.0 + 窗口显示状态日志探针。仅供 #699 的参与者使用;普通用户请下载正式版本。

使用方法见压缩包内《诊断版说明.txt》及 #699 中的说明。诊断日志仅包含窗口状态信息,不含对话内容、文件名或任何个人数据。

v0.12.0

Choose a tag to compare

@github-actions github-actions released this 12 Jul 07:23

v0.12.0

v0.12.0 is a remote-approval and agent-coverage release. It ships Discord Rich
Presence, WSL auto-discovery with one-click pairing, the Feishu remote-approval
channel, Telegram elicitation (AskUserQuestion) support, LAN Approval (beta),
Kimi Code and QoderWork agent support, dedicated roam walk visuals, an
irreversible-action hint on permission bubbles, and a broad set of fixes around
Windows PowerShell window flashes, Antigravity stdin handling, macOS IME
occlusion, and multi-display mini mode.

This release also welcomes eight first-time contributors.

New Features

  • Discord Rich Presence (#215, #508, #644, #649, #650) - Clawd can mirror your agent status to your Discord profile. Ships with the official "Clawd on Desk" Application ID so it works with zero configuration; a custom App ID remains available as a collapsed advanced option. Thanks to first-time contributor @KaiC5504.
  • WSL auto-discovery and one-click pairing (#565) - Clawd detects WSL distros, pairs agent hooks into them in one click, and marks sessions with their WSL source so mixed Windows/WSL setups stay legible. Thanks to first-time contributor @V1staz.
  • Feishu remote-approval channel (#511) - Permission requests can now be approved or denied from Feishu, joining Telegram as a remote-approval channel. Thanks to first-time contributor @yanguibao1997.
  • Telegram elicitation (AskUserQuestion), beta (#609, #651) - When an agent asks a clarifying question, the Telegram and Feishu channels render the options as an interactive card with quote-safe Other answers, fail-closed auth on both approval and elicitation callbacks, secret redaction on the outgoing question/option text, and localized card text in five languages. Beta: two answer-fidelity edge cases (a long question's display form vs. its answer key, and option labels over 32 characters) are deferred and tracked in #659. Thanks to first-time contributor @JasonZH6600.
  • LAN Approval (beta) and Settings sidebar consolidation (#645) - Remote Approval settings are consolidated under one sidebar entry with per-channel subtabs, and a LAN-based approval channel ships behind a beta flag.
  • Kimi Code support (#593) - The new Kimi Code CLI (~/.kimi-code) is supported alongside the legacy Kimi CLI, with hook auto-registration on startup (#563).
  • QoderWork IDE agent support (#598) - QoderWork sessions get state-only tracking (Phase 1), mirroring the existing Qoder integration. Thanks to first-time contributor @xiaoshidefeng, who built the original integration in #510.
  • Context and account usage bars (#590) - Claude Code 1M-context detection is corrected, and Antigravity gains context and account-usage bars in the HUD/dashboard. Thanks to first-time contributor @Yike-Ye.
  • Irreversible-action hint (#613, #625) - Permission bubbles show a warning badge when a command looks irreversible, with quote-aware segment splitting, command-position anchoring, capped input scanning, and dark-mode theming. Thanks to returning contributor @chrono-meta.
  • Dedicated roam walk visuals (#612, #580) - Calico and Cloudling get their own walk animations during free roam, and the crab gets a direction-aware crabwalk with mirroring.

Bug Fixes And Hardening

  • Windows PowerShell window flash (#627, #628, #630) - Hook events no longer cold-start a PowerShell window per event: snapshots are cached per session with a sliding TTL, and spawns carry -WindowStyle Hidden. Thanks to first-time contributor @Schlaflied for the follow-up hardening.
  • Antigravity stdin reliability (#568, #582, #585, #638, #641) - Fixed the first-token stall when the hook runner never closes stdin, moved to EOF-driven reads with a 2s safety net, added sid=default diagnostics, and stopped the Antigravity wrapper from leaking a UTF-8 BOM into hook stdin on Windows (cp65001).
  • Telegram remote approval hardening (#600, #611) - Approvals now work with bubbles disabled, summaries fall back sanely, $-replacement in card text is fixed, and the approval/Direct Send/settings surfaces are localized. Remote-only "go to terminal" resolves as no-decision instead of hanging the hook. Thanks to @JasonZH6600.
  • macOS IME occlusion (#626) - Text-input bubbles no longer cover the macOS IME candidate window, and IME editing-state visibility round-trips through one place. Thanks to @Yike-Ye.
  • Mini mode stays on its display (#547) - Restoring from mini mode keeps the pet on the display it was snapped to instead of jumping to a neighbor. Thanks to first-time contributor @royhuang91.
  • Windows executable icon (#621) - The packaged exe gets its icon and version info back by removing signAndEditExecutable: false from the build config.
  • Qoder Windows hooks (#597, #615) - Qoder hook commands are written bash-portable so Windows setups where Qoder executes hooks through bash work again.
  • WSL-shared Codex config (#544, #594) - Codex hook entries write dual command fields so a CODEX_HOME shared between Windows and WSL works from both sides.
  • Fullscreen taskbar regression (#586, #587) - skipTaskbar is reasserted after the hit-window focusable flip so the pet does not reappear in the taskbar during fullscreen overlay.
  • Roam size on mixed DPI (#569, #579) - Walk size is anchored so the pet no longer grows when roaming across displays with different DPI.
  • Permission hotkeys while pet is hidden (#601, #604) - Allow/Deny global hotkeys stay live for visible bubbles even when the pet window is hidden.
  • Telegram encoding cleanup (#622) - Stray BOM removed and mojibake arrows restored in Telegram strings from #609.
  • Elicitation agent attribution (#651) - Elicitation cards attribute the requesting agent correctly, and the CodeBuddy installer gains an ownership test.
  • Remote-approval hardening (pre-release) - Telegram approval callbacks fail closed when the allowed user is unset (parity with elicitation); agent-controlled text in Feishu cards is stripped of Markdown/structural characters and secrets so it can't forge a status line or inject a mention; elicitation question/option text is secret-redacted before it leaves the desktop; QoderWork writes its Windows hook in the bash-portable form (parity with #615); and a non-string tool-input field can no longer crash the permission bubble.

Removals

  • Hardware Buddy (Clawstick) integration removed (#646) - The experimental hardware companion integration is retired. The hardwareBuddy prefs key is no longer read; leftover keys in existing prefs files are ignored harmlessly.
  • Telegram migration-card layer retired (#647) - The dead v0.9.0 migration-card rendering layer is removed; the runtime migration state machine remains.

Upgrade Notes

  • Release metadata is set to 0.12.0 in package.json and package-lock.json.
  • No prefs version migration in this release. New keys (discordPresence, feishuApproval, agents.qoderwork) are backfilled with defaults by the schema normalizer on first launch.
  • Discord Rich Presence is opt-in from Settings -> Discord and uses the official Application ID by default; no Discord developer setup is needed.
  • The Feishu channel currently supports Feishu (feishu.cn) only. The SDK domain is hardcoded to Feishu and there is no region/domain setting, so Lark (international) tenants are not supported in this release.
  • Remote Approval settings moved: Telegram, Feishu, and LAN Approval now live under the consolidated Remote Approval sidebar entry with per-channel subtabs.
  • Kimi users: hook registration now targets Kimi Code (~/.kimi-code) when present; legacy Kimi CLI installs keep working. Hooks re-sync automatically on startup.
  • After updating, launch Clawd once so hook registrations and the Antigravity wrapper refresh on the next startup sync (automatic — it just needs one launch).
  • Codex on Windows: the dual commandWindows field (#544) is only honored by Codex builds from ~2026-05 onward. Older Codex builds ignore it and would run the POSIX command form on Windows — update Codex if you run it there.

Contributors

Huge thanks to everyone who shipped code, tests, docs, QA, or release polish for v0.12.0 - and welcome to this release's eight first-time contributors:

  • @rullerzhou-afk (鹿鹿 · creator) - Settings consolidation and LAN Approval beta, Kimi Code and QoderWork enablement, roam walk visuals, Windows PowerShell flash/exe icon/Qoder hook fixes, Antigravity stdin hardening, Telegram encoding cleanup, release work, and follow-up reviews.
  • @KaiC5504 - Discord Rich Presence (#508). First-time contributor.
  • @V1staz - WSL auto-discovery, one-click pairing, and session source badges (#565). First-time contributor.
  • @yanguibao1997 - Feishu remote-approval channel (#511). First-time contributor.
  • @JasonZH6600 - Telegram elicitation support (#609) and remote-approval hardening (#600). First-time contributor.
  • @Yike-Ye - Context/account usage bars and Claude Code 1M detection (#590), macOS IME occlusion fix (#626). First-time contributor.
  • @royhuang91 - Mini-mode display restore fix (#547). First-time contributor.
  • @Schlaflied - PowerShell snapshot-spawn hardening (#628). First-time contributor.
  • @xiaoshidefeng - QoderWork IDE agent integration (#510, landed via #598). First-time contributor.
  • @chrono-meta - Irreversible-action hint on permission bubbles (#613).
  • @YOIMIYA66 - Maintainer reviews and QA.
  • @Bynlk - Continued core ownership of the Mobile / PWA companion line.

Known Limitations

  • The Feishu channel has not yet had end-to-end real-device validation on a Feishu (feishu.cn) tenant; the flow is implemented against the Feishu domain but unverified on live hardware. Reports welcome.
  • QoderWork support is state-only (Phase 1) and has not had a packaged-build smoke test on a machine with QoderWork installed; the integration author will help verify afte...
Read more

v0.11.0

Choose a tag to compare

@github-actions github-actions released this 02 Jul 00:53

v0.11.0

v0.11.0 is a user-facing release focused on first-run setup, desktop behavior,
Codex reliability, and release hardening. It adds the first-run onboarding
wizard, free-roam idle movement, the dizzy spin reaction, Windows fullscreen
overlay handling, Codex official-hook health surfacing, Remote SSH
connect-on-launch, safer hook settings backups, and a broad set of fixes around
completion celebrations, low-power wake recovery, Reasonix, Telegram approvals,
and Ghostty focus.

This release also welcomes seven first-time contributors.

New Features

  • First-run onboarding tutorial (#524) - New users, and existing users who have never seen the tutorial, get a one-time setup wizard covering language, agent install/cleanup, shortcuts, and key features. Any dismissal marks it seen so it does not reopen on later launches.
  • Free roam mode (#467, #570) - When enabled, the pet can wander around the desk while idle, with cancellation on state changes, mini-mode guards, hit-window/HUD/bubble sync during movement, and target-selection hardening. Thanks to first-time contributor @zhaoxv210, with a follow-up flake fix from first-time contributor @Git-creat7.
  • Dizzy spin reaction (#507) - Rapidly circling the cursor around Clawd can trigger the existing dizzy animation on themes that support it, with cooldowns and theme-capability gating so unsupported themes keep normal idle behavior. Thanks to first-time contributor @IatomicreactorI.
  • Windows fullscreen overlay mode (#538, #562) - Clawd can float over foreground fullscreen apps while keeping the hit window non-activating, so borderless-fullscreen games are not kicked out by clicks or drags. The old settings toggle was removed because it could not reliably force the pet behind borderless games; the hidden pref remains as an escape hatch.
  • Codex official hook health (#571) - Since Codex approval awareness now depends on official PermissionRequest hooks, the Agents tab and startup nudge now surface disabled, unreviewed, missing, or broken Codex hook states using the same detector as Doctor.
  • Remote SSH connect-on-launch (#561) - Remote SSH profiles can now connect silently at startup after the local hook server is actually listening, so reverse tunnels target the real bound port even if Clawd had to drift away from 23333. Thanks to first-time contributor @undownding.
  • Settings UI cleanup (#521, #539, #541) - Settings uses consistent inline SVG sidebar icons, reorganizes General by usage frequency, moves Claude hook management into Agents, spells out Chinese language labels, and folds Animation Map into Animation & Sound.
  • Context and tray menu cleanup (#523) - The pet right-click and tray menus are grouped into clearer state/work/display/app sections, the dangerous auto-approval entry is renamed to Auto-approve all requests, and New Session is clarified as New Claude Session across supported languages.

Bug Fixes And Hardening

  • Hook settings backups before injection (#531) - Clawd now backs up settings.json before injecting hooks and keeps the backup set bounded by a rolling window. Thanks to first-time contributor @chrono-meta.
  • Codex JSONL approval heuristic removed (#571) - JSONL fallback no longer guesses approval prompts from shell calls. It remains for state and metadata fallback events such as web search, compaction, aborted turns, and stuck local-turn rescue. Official PermissionRequest is the only approval path.
  • Codex Desktop approval inference fixed (#543) - Codex Desktop sessions no longer synthesize passive approval notifications from JSONL activity. Thanks to first-time contributor @quantai1314.
  • CJK Stop payload byte-fit (#567) - Long Chinese/Japanese/Korean completion text no longer overflows /state byte limits and drops the happy completion animation; hook payloads byte-fit assistant_last_output while preserving structural completion fields.
  • Completion happy fixes (#548, #555, #567) - Short completions, background-only Claude stops, and busy Stop deliveries now reliably trigger the completion celebration instead of being swallowed by debounce, 413, or timeout edges.
  • Windows crash/startup recovery and keep-size DPI freeze (#554, #560, #408) - Startup recovery, renderer crash recovery, display metrics debounce, and keep-size frozen work-area handling were hardened for Windows sleep/wake and DPI changes.
  • Low-power eye tracking after resume (#557) - Low-power eye tracking rebuilds and reattaches after Windows resume/unlock, waits for renderer receipt, and accepts one late success after timeout. Thanks to @YOIMIYA66.
  • Cloudling and low-power sleep polish (#526, #527) - Low-power idle mode reclaims hidden HUD resources, fixes a wake-poll start-timer leak, reduces sleep power, renames the scripted badge to fine motion, and adds Cloudling static sleep fallback assets.
  • Reasonix Windows compatibility (#503) - Reasonix hook install now resolves the current config home and uses PowerShell -EncodedCommand when Windows paths need it, avoiding cmd /c quoting failures in the Go CLI. Encoded Clawd hook entries are also recognized during reinstall so repeated startup syncs update/dedupe stale hooks instead of appending duplicates. Thanks to @sLingli.
  • Telegram approval outcome status (#466) - Telegram approval cards now show the final outcome for decisions made on Telegram or resolved elsewhere, with atomic claim handling to avoid racey rewrites. Thanks to @zxypro1 (Zone Tome).
  • Ghostty cross-Space focus (#461) - macOS Ghostty focus now switches Spaces through a verified stepping-stone terminal instead of yanking windows to the current desktop, with follow-up latency reductions. Thanks to first-time contributor @serenNan.
  • Renderer SVG cache-busting (#522) - Object-channel SVG loads now get the same cache-bust behavior as image-channel SVGs, so one-shot animations replay instead of sticking on their last frame.

Upgrade Notes

  • Release metadata is bumped to 0.11.0 in both package.json and package-lock.json.
  • prefs migrates v11 -> v12 on first launch. The migration only backfills showDock=true for pre-v12 files missing the key, preserving existing macOS users' Dock behavior while fresh installs default to a pet/menu-bar accessory with no Dock tile.
  • tutorialSeen is intentionally not migration-backfilled. Existing users who have never seen the onboarding tutorial will see it once after upgrading; Finish, Skip, or closing the window marks it seen permanently.
  • Codex approval notifications now require official PermissionRequest hooks. If the Codex hook is disabled, not reviewed, missing, or broken, use Settings -> Agents or Doctor to repair/review it.
  • The Windows fullscreen overlay pref defaults on and no longer has a Settings row. If a fullscreen app should hide the pet, use Hide Pet; DND remains the way to silence permission bubbles.
  • Hook installers may create bounded backup copies of settings files before injecting Clawd-managed entries.

Contributors

Huge thanks to everyone who shipped code, tests, docs, QA, or release polish for v0.11.0 - and welcome to this release's seven first-time contributors:

  • @rullerzhou-afk (鹿鹿 · creator) - Onboarding, Settings cleanup, Codex hook health and JSONL approval-path cleanup, Windows fullscreen/startup/recovery hardening, CJK byte-fit, completion-happy fixes, Cloudling/low-power polish, release work, and follow-up reviews.
  • @zhaoxv210 - Free roam mode and review follow-ups (#467). First-time contributor.
  • @serenNan - Ghostty cross-Space focus and latency improvements (#461). First-time contributor.
  • @IatomicreactorI - Dizzy spin reaction and theme support gating (#507). First-time contributor.
  • @quantai1314 - Codex Desktop approval inference fix (#543). First-time contributor.
  • @Git-creat7 - Free-roam target-selection flake fix (#570). First-time contributor.
  • @undownding - Remote SSH connect-on-launch (#561). First-time contributor.
  • @chrono-meta - Bounded settings backup before hook injection (#531). First-time contributor.
  • @sLingli - Reasonix Windows cmd /c / EncodedCommand compatibility and current config-home fix (#503).
  • @zxypro1 (Zone Tome) - Telegram approval outcome status and race hardening (#466).
  • @YOIMIYA66 - Windows resume / low-power eye-tracking recovery (#557).
  • @Bynlk - Continued core ownership of the Mobile / PWA companion line.

Known Limitations

  • Codex terminal focus is still unavailable because official hooks and JSONL fallback do not carry a usable terminal PID.
  • Codex JSONL fallback still has polling latency for hook-uncovered events such as web search, compaction, and aborted turns; approval prompts are not inferred from JSONL.
  • Windows fullscreen overlay is best for borderless fullscreen. Exclusive fullscreen behavior is still platform/game dependent and must be smoke-tested on real hardware.
  • macOS Ghostty cross-Space focus has unit coverage and contributor validation, but macOS real-machine release smoke should still verify the packaged artifact.
  • macOS and Linux packaged auto-update remain manual-download only; git checkout users can still update through the git-mode updater.

v0.10.0

Choose a tag to compare

@github-actions github-actions released this 18 Jun 03:46

v0.10.0

v0.10.0 is built around five larger pieces of work: a rework of how agent
integrations get installed
(on-demand and opt-in per agent, so startup is no
longer slowed by probing agents you do not use), two new state-only agent
integrations
(Reasonix and CodeWhale), a danger-gated auto-pilot that
auto-approves permissions for a single session, global / per-display text
sizing
across every Clawd surface, and mobile companion token-rotation
security
— plus a broad round of platform hardening across Linux/Wayland,
tmux, Windows focus, and macOS.

This release also welcomes seven first-time contributors.

New Features

  • On-demand agent integrations (#476, #481, #488, #489) - Clawd now separates "supported agent" from "integration installed on this machine." A fresh install defaults to managing only Claude Code and Codex; the other 15 agents start Not installed and are installed explicitly from Settings → Agents (each row gets an Installed / Not installed badge and Install / Uninstall buttons). This removes the startup cost of serially probing every agent's hooks/plugins/extensions (cold /state was ~4.2s of that being integration sync). Install commits only after a real sync succeeds; Uninstall runs a marker-scoped cleaner (backups on by default) that removes only Clawd-managed entries and leaves your other hooks intact. Doctor now shows unmanaged agents as an info-level not-managed state instead of misreporting them as broken. The data model migrates prefs v10 → v11.
  • Reasonix CLI integration — state-only (#483) - Added Phase 1 state-only Reasonix support: Clawd reflects Reasonix working / idle / attention state without injecting its own permission bubble. Thanks to first-time contributor @sLingli.
  • CodeWhale integration — state-only (#415) - Added Phase 1 state-only CodeWhale support, wired through the on-demand install model and mode-change notifications. Thanks to first-time contributor @ustin-star.
  • Auto-pilot — danger auto-approve, session-only (#448, #455) - A new danger-gated toggle in its own Permissions section auto-approves all agent permission requests for the current session. It is off by default, never persists across restarts (ephemeral by design), is labeled red / "Danger" in the menu, answers elicitation prompts with a deferral reply, and treats the confirm dialog as a real security boundary rather than UI-only. Thanks to @zxypro1 (Zone Tome).
  • Global / per-display text size (#463) - A text-size slider scales bubbles, the Session HUD, the Dashboard, and Settings together, injected as CSS zoom so it survives reloads. Sizing is stored per display, the HUD dampens its width growth at large scales so chips and collapsible rows do not clip, and the auto-hide hot zone scales with it so the pin stays reachable.
  • Mobile companion — token-rotation security (M2) (#452, #475) - The read-only mobile companion gains a static-token rotation / revocation / grace-period protocol, plus rotate-on-use: the 24h rotation is deferred when no clients are online and a grace token is delivered after the heartbeat starts so a connected phone is never abruptly locked out. Thanks to core contributor @Bynlk.
  • Drag a folder onto the pet to open a terminal (#472) - Drop a folder onto the pet and Clawd opens a terminal there. Windows / Linux only in this release (see Upgrade Notes); the macOS OS-drop path is intentionally disabled. The macOS "New Session" flow still cds explicitly into the target directory.
  • Hide / show the pet from the right-click menu (#469) - The context menu gains a "Hide pet" / "Show pet" entry (theme-agnostic wording, localized across all five languages). Hiding is not do-not-disturb: it tucks away the pet / HUD / update bubble, but newly arriving permission requests still bubble as before — use DND to silence those.
  • Silence Task-subagent permission bubbles per agent (#454) - A per-agent sub-gate suppresses permission bubbles raised by Claude Code Task subagents, scoped to claude-code so it does not affect other agents.
  • Claude & Codex context usage (#397) - Sessions can surface Claude and Codex context-window usage. Thanks to first-time contributor @Tsdsj.

Bug Fixes

  • Linux: relaunch under XWayland on Wayland sessions (#443, #441) - On a Wayland session Clawd now relaunches itself under XWayland (spawning the replacement directly rather than via app.relaunch, with a guarded spawn fallback), fixing transparency / positioning regressions. Covered by a headless-Wayland CI smoke test.
  • tmux: switch to the focused pane on terminal focus (#462) - Focus resolution now resolves the terminal PID and switches the correct tmux pane / client for tmux users instead of grabbing the wrong client. Thanks to first-time contributor @cod3hulk.
  • Windows: validate cached focus targets (#477) - Cached Windows focus targets are validated before reuse so a stale handle no longer focuses the wrong window. Thanks to first-time contributor @lxgxhsy.
  • Windows: position persistence on restart (#405) - Fixed the pet not restoring its saved position on Windows restart.
  • Windows: new-session launch failure 0x800700c1 (#438) - "New Session" on Windows now resolves the claude.cmd shim and routes wt.exe through cmd.exe, fixing the 0x800700c1 launch error.
  • macOS: restore minimized windows when jumping back to a session (#468, #465) - Jumping back to a session now restores a minimized macOS terminal window instead of silently failing.
  • macOS: harden hook stdout safety and permission-bubble clicks (#420) - Hardened hook stdout handling and fixed a macOS permission-bubble click path. Thanks to first-time contributor @godlockin.
  • macOS: permission hotkeys no longer refocus the terminal (#492, #482) - Answering a permission with the keyboard shortcut (Ctrl+Shift+Y / Ctrl+Shift+N) on macOS no longer pulls focus back to the agent terminal when the frontmost app cannot be captured — focus stays where you are. Reported by @Easton518.
  • Packaging: agents unpacked from asar (#488) - Added agents/**/* to asarUnpack, fixing a MODULE_NOT_FOUND for hook scripts in packaged release builds. Thanks to first-time contributor @rebootcrab-blip.
  • Doctor: don't flag all-info integrations as critical (#491, #490) - A set of agent integrations that are all info-level no longer summarizes to a false "critical" in Doctor.
  • Codex: relabel MCP tool calls (#450, #445) - Codex MCP tool calls are labeled as the tool instead of a generic "Permission Request."
  • Codex: deterministic subagent headless gate (#455, #448) - Codex subagent permissions are detected as headless by hook source and kept out of the auto-pilot allow path, with doc/comment cleanups.
  • State: debounce Stop completion for headless sessions (#453, #449) - Headless sessions get a default Stop-completion debounce so they stop celebrating completion prematurely.
  • State: stop replaying completion animation on duplicate Stop (#447) - A duplicate Stop no longer replays the end-of-session animation.
  • Telegram: honor the system proxy for the native bot (#440, #359) - The native Telegram bot routes through the system proxy via Electron session.fetch.
  • Telegram: surface legacy sidecar runtime failures (#439, #430) - Legacy Go-sidecar runtime failures now surface in the migration state instead of failing silently.
  • Telegram: strip the approval keyboard when resolved on desktop (#446) - Resolving an approval on the desktop strips the inline keyboard from the Telegram message. Thanks to @zxypro1 (Zone Tome).
  • Kiro: build Windows CLI candidate paths with path.win32 (#442) - Fixed Kiro CLI path resolution on Windows.
  • Updater: drop the duplicated v prefix in update labels (#434) - Update labels no longer render a doubled vv prefix.
  • Antigravity: harden hook fail-open (#433) - The Antigravity hook fails open more robustly.
  • Qwen Code: official icon (#458, #456) - Swapped the Qwen Code icon to the official mark.

Upgrade Notes

  • On-demand agent integrations — existing users keep their setup. Upgrading does not change your current behavior: migration backfills integrationInstalled only for agents that already exist in your prefs and preserves each one's enabled state, so nothing you already use is silently disconnected. What changes is the fresh-install default (only Claude Code / Codex are managed up front) and the fact that adding a new agent integration is now an explicit Settings → Agents → Install. Turning on a not-installed agent's enabled switch only opens its event/monitor entry and writes no integration files. Uninstall removes only Clawd-managed hook/plugin/extension entries (backups on by default).
  • Auto-pilot is a danger feature, off by default, and session-only. It auto-approves every agent permission request for the current session, never persists across restarts, and lives behind a red "Danger" confirm. Enable it only when you intend to let an agent run unattended for that session.
  • Drag-folder-to-terminal is Windows / Linux only. The macOS OS-drop path is intentionally disabled in this release; use the pet's "New Session" entry on macOS.
  • Text size is stored per display. Existing defaults are unchanged; the slider unifies bubble / HUD / Dashboard / Settings scaling and is applied via injected CSS zoom.
  • Release metadata is bumped to 0.10.0 in both package.json and package-lock.json; prefs migrates v10 → v11 on first launch.

Contributors

Huge thanks to everyone who shipped code, tests, docs, or release polish for v0.10.0 — and an especially warm welcome to this release's seven first-time contributors:

  • @rullerzhou-afk (鹿鹿 · creator) - On-demand agent integration install/uninstall model and prefs v10→v11 migration, auto-pilot follow-ups and Codex...
Read more

v0.9.0

Choose a tag to compare

@github-actions github-actions released this 05 Jun 06:30

v0.9.0

v0.9.0 is a milestone release built around three larger pieces of work: a ground-up
rework of Telegram remote approval into a native Node bot, a brand-new read-only
mobile companion over LAN, and Hermes Agent clarify / permission-bubble groundwork
— plus the usual round of Codex / opencode / macOS hardening.

New Features

  • Telegram remote approval — native Node bot rework (#354, #369, #390, #393) - Clawd's Telegram remote approval moves from the bundled Go cc-connect-clawd sidecar to a native Node bot. The migration follows a compatibility-first path: the legacy sidecar stays shipped and keeps working, new installs default to the native setup, and existing users switch only when they explicitly tap "Test native and switch". A runtime owner manager guarantees that the sidecar and the native bot never long-poll the same bot token at once (Telegram allows only one getUpdates consumer, otherwise 409 Conflict). Native mode unlocks two things legacy never had: rich approval (Always allow / one-time approval and permission_suggestions buttons) and completion notifications.
  • Telegram completion notifications (R1a) (#369) - When a session finishes, the native bot can send a completion notification to Telegram. This is native-only, off by default, and tied to the approval switch — turning Telegram approval off also stops notifications, so there is no orphaned toggle that keeps messaging after you think you turned it off. completionOutputMode controls whether the message includes the assistant's final text (full) or sends no completion output (off, the default).
  • Telegram R3 Direct Send (beta, opt-in, Windows-first) (#390, #393) - Reply to a completion notification from Telegram and Clawd resolves the matching local session, focuses its terminal, and pastes a one-line next prompt into it. This is an opt-in beta (tgApproval.r3DirectSendEnabled, default off). It deliberately does not auto-press Enter — text is pasted and you press Enter locally — and it only delivers after a positive focus confirmation; anything ambiguous falls back to copying the text to the clipboard with a Telegram acknowledgement. Multi-line replies also fall back to clipboard instead of being pasted. Windows is the only platform with the paste primitive in v1; macOS / Linux are fallback-only (copy to clipboard). Direct Send reuses the existing session-focus.js eligibility rules: remote / host / web-UI sessions and sessions waiting on a permission decision are never paste targets. On successful Windows paste, Clawd restores the previous text clipboard where available.
  • Mobile companion — read-only PWA LAN preview (M1) (#391, #412, #419) - A new read-only mobile companion serves a small PWA over the local network so you can watch your sessions from a phone on the same Wi-Fi. It shows live session cards (agent type, active time, event icons), pushes updates event-driven with smooth expand animation and live timers, and hardens reliability with visibility-based reconnect, an uncapped retry, and a socket guard. This is a preview / read-only surface — it does not approve permissions or send prompts.
  • Hermes Agent permission bubble + elicitation (#387, #398) - Hermes' clarify tool now flows through Clawd's unified /permission route and bubble UI instead of the legacy /clarify native dialog. General Hermes tool permission interception is also wired through the same route, but remains opt-in behind CLAWD_HERMES_PERMISSION_TOOLS while Hermes' native approval flow stays the fallback.
  • Launch Claude Code from the pet (#409) - A "New Session" entry in the pet's right-click menu launches a fresh Claude Code session in a terminal; resume session ids are validated before use.
  • Qoder integration (state-only) (#423) - Added state-only Qoder support: Clawd reflects Qoder working / idle / attention state without injecting a separate permission bubble.
  • Keep the system awake while agent tasks run (#358) - Clawd can block system sleep while an AI task is in progress so long-running work is not interrupted by the machine dozing off, with the wake lock reconciled against live task state.
  • Directional Codex Pet drag animations (#388) - The Codex Pet theme now supports directional drag animations that respond to which way the pet is being dragged.
  • Mini-mode controls (#424, #426) - Added a toggle to disable mini-mode auto-snap on screen edges, and a setting to disable mini mode entirely.

Bug Fixes

  • Codex same-process session ghosts (#427) - Fixed duplicate / ghost Codex sessions when multiple turns share one process.
  • Stuck local Codex turns (#422) - Local Codex turns that never received a Stop now fall back to a JSONL task_complete signal so sessions do not hang in a working state.
  • Premature completion celebration (#406, #421) - Stopped the completion celebration from firing mid-task before the work actually finished.
  • Remote completion session timeout (#414, #418) - Remote completion sessions now respect the session timeout instead of lingering.
  • opencode plugin loading and state flow (#417, #401, #366) - A single default export so opencode reliably loads the plugin; child sessions are marked headless via parentID; and plugin state-flow dedup / sessionID capture were repaired.
  • macOS dock and pet visibility (#416, #425, #396, #410) - The pet now hides on Dock / ⌘H "Hide", the Dock icon is right-sized and scaled to fill the 1024×1024 canvas without aliasing, and the dock-icon override is guarded against null states.
  • Claude hook shrink guard visibility (#407) - The Claude hook shrink guard is now visible so the state transition is observable.
  • Mini post-completion notification alert (#404) - Fixed a missing post-completion alert in mini mode.
  • Stale ExitPlanMode bubble (#402) - Clears a stale plan-mode bubble and adds a "give feedback on the plan" button.
  • Ghostty same-cwd tab focus (#355) - Fixed Ghostty tab focusing for sessions that share a working directory.
  • Windows Codex Desktop focus fallback (#381) - Hardened the focus fallback for Codex Desktop on Windows.
  • Codex working state during silent permission turns (#385) - Long, silent permission turns no longer flip Codex out of its working state.
  • Updater GitHub API fallback (#386) - The background update check falls back correctly when the GitHub releases API response is unavailable.
  • Cloudling low-power idle RAF (#364) - Reduced idle requestAnimationFrame churn for the Cloudling theme in low-power conditions.

Upgrade Notes

  • Telegram remote approval — no action required for existing users. Your Telegram approval keeps working on legacy (Go sidecar) mode after upgrading. To move to native mode, open Settings → Remote Approval → Telegram and tap "Test native and switch". If the test fails, your legacy configuration stays intact and Clawd does not auto-deny or auto-allow real permission requests during the switch. The Go sidecar remains shipped in v0.9.0; its removal is a later, separately-gated decision.
  • Telegram completion notifications are off by default and are tied to the approval switch. Switch completion output to Full answer from Telegram settings after switching to native mode if you want assistant text sent to Telegram; turning approval off also stops notifications.
  • R3 Direct Send is an opt-in beta, default off, and Windows-first. Enable it only if you want phone-to-terminal prompt delivery. It pastes a single-line reply without auto-Enter, confirms focus before pasting, restores the previous text clipboard after successful Windows paste where available, and falls back to the clipboard on any ambiguity, on multi-line replies, or on macOS / Linux.
  • The mobile companion is read-only. It previews sessions over the LAN and cannot approve permissions or send prompts.
  • Telegram bot token storage is unchanged — the token still lives only in userData/telegram-approval.env and is never read from environment variables. Secure OS-keystore storage is planned for a later release.
  • Release metadata is bumped to 0.9.0 in both package.json and package-lock.json.

Docs & Contributors

  • A new docs/connections/ plan set documents the Telegram native rework end to end: the D-migration path, the native companion architecture, the R3 Direct Send design, and the code-state reviews that corrected it.
  • Added five bundled Clawd SVG animation assets (clawd-coffee-hand, clawd-coffee-head-flip, clawd-aegyo-shy, clawd-dizzy, clawd-idle-low-battery) for future theme wiring; they are not yet bound to the default state map.
  • External contributors shipped code across mobile preview, launch-session, Hermes, keep-awake, opencode, theme, and UI fixes, including two first-time contributors (@QingXB, @29206394 / 藤知).

Contributors

Huge thanks to everyone who shipped code, tests, docs, or release polish for v0.9.0:

  • @rullerzhou-afk (鹿鹿 · creator) - Telegram native rework end to end (migration state machine + owner manager, native client, rich approval, R1a completion notifications, R3 Direct Send), Codex session / state fixes, opencode attribution and loading fixes, macOS dock behavior, Qoder state-only integration, and release work.
  • @Bynlk - Read-only mobile PWA companion (LAN preview M1, session cards, event-driven push, smooth expand + live timers, PWA reliability), macOS Dock icon sizing, and the mini-mode edge auto-snap toggle.
  • @QingXB - Launch a Claude Code session from the pet's right-click menu (#409). First-time contributor.
  • @29206394 (藤知) - Hermes Agent permission bubble + elicitation integration (#387). First-time contributor.
  • @zxypro1 (Zone Tome) - Block system sleep while agent tasks are in progress (#358).
  • @NeroAyase - opencode plugin headless child sessions and state-...
Read more