MacOS menubar app to monitor your Ghostty sessions.
- Scripting: Swift, SwiftUI, AppKit, Combine, macOS Notification Center, FSEvents
- Logging: os.log
- Build: SPM, Xcode 15
- CI/CD: GitHub Actions, SwiftLint
What Onibi can do (currently)
- Command tracking: Detects command sessions with exit codes
- AI response detection: Pattern-matches Claude Code, Codex, Gemini CLI and other AI assistant output
- Task completion alerts: Notifies on build, test and workflow completions
- Ghostty IPC: Detects running Ghostty instances, reads config
- Session management: Tracks multiple Ghostty terminal sessions
- Log rotation: Automatic truncation and rotation of log files
- Native notifications: macOS Notification Center with actionable buttons
- False positive reduction: Confidence scoring and deduplication
- Theme sync: Syncs popover theme colors from Ghostty config
- Clone the repo and build from source.
$ git clone https://github.com/gongahkia/onibi && cd onibi
$ swift build
$ swift test
$ ./.build/debug/Onibi- Or open in Xcode.
$ open Onibi.xcodeproj- Install shell hooks for your terminal. Add the following to your
~/.zshrc.
# onibi integration
_onibi_preexec() {
echo "$(date -Iseconds)|CMD_START|$$|$1" >> ~/.config/onibi/terminal.log
}
_onibi_precmd() {
local exit_code=$?
echo "$(date -Iseconds)|CMD_END|$$|$exit_code" >> ~/.config/onibi/terminal.log
}
autoload -Uz add-zsh-hook
add-zsh-hook preexec _onibi_preexec
add-zsh-hook precmd _onibi_precmdThe name Onibi is in reference to the Japanese word 鬼火, meaning demon fire or ghost light.