Skip to content

[codex] Add menu bar app and Codex hook trust setup - #1

Merged
ulanenko merged 2 commits into
mainfrom
codex/macos-menu-bar-ui
May 7, 2026
Merged

ulanenko merged 2 commits into
mainfrom
codex/macos-menu-bar-ui

Conversation

@ulanenko

@ulanenko ulanenko commented May 7, 2026 •

Copy link
Copy Markdown
Owner

Summary

Adds the experimental macOS menu bar helper and updates the core setup flow for newer Codex hook behavior. The branch now covers both the optional UI and the reliability fixes we found while testing against the updated Codex desktop app.

What changed

  • Added a native AppKit menu bar app under macos/MenuBarApp for daemon/state visibility and common actions.
  • Added process tracking so the daemon can switch to ambient when the Codex desktop app has been closed for a grace period.
  • Updated defaults/examples so closed-Codex behavior uses the ambient rainbow state instead of turning the lamp off.
  • Updated hook setup for newer Codex builds: install_hooks.py --trust-hooks writes hooks.state trusted hashes into ~/.codex/config.toml.
  • Updated docs from deprecated codex_hooks = true to hooks = true while noting the older flag name.
  • Added tests for process matching/missing-state logic and hook trust hash generation.

User impact

macOS users can optionally run a small status bar helper without replacing the Python daemon. Newer Codex installs also get a setup path that avoids the confusing case where hooks.json looks valid but hooks never execute because they have not been trusted.

Notes

The menu bar app remains experimental. The generated .app bundle is not committed, the app is unsigned, and it expects the local project checkout and .venv to remain available.

Validation

  • macos/MenuBarApp/Scripts/package-app
  • .venv/bin/python -m pytest (27 passed)
  • .venv/bin/python -B -m py_compile codex_moonside/*.py install_hooks.py

@ulanenko ulanenko changed the title [codex] Add experimental macOS menu bar app [codex] Add menu bar app and Codex hook trust setup May 7, 2026
@ulanenko
ulanenko merged commit 2b4e796 into main May 7, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant