원클릭으로
codexisland-macos-notch
CodexIsland - Display AI usage limits (Claude Code & Codex) in your MacBook notch with Dynamic Island-style UI
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
CodexIsland - Display AI usage limits (Claude Code & Codex) in your MacBook notch with Dynamic Island-style UI
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
Convert attached object images into code-only, animation-ready procedural Three.js models through guided sculpting workflow
Create and manage AI video storyboard projects with automated asset generation through Codex Storyboard workspace
Continue-thinking middleware that detects and handles reasoning truncation in Codex/OpenAI Responses-compatible APIs
Desktop manager for OpenAI Codex CLI with prompt injection, provider switching, and TOML/Auth visualization
Inject unrestricted developer mode instructions into Codex CLI (GPT-5.5) to bypass content filters
Install and use TradingCodex to build Codex-native investment research workflows with fixed-role agents, order approval gates, and local Django service plane
| name | codexisland-macos-notch |
| description | CodexIsland - Display AI usage limits (Claude Code & Codex) in your MacBook notch with Dynamic Island-style UI |
| triggers | ["how do I install and use CodexIsland","set up CodexIsland to monitor my AI usage","troubleshoot CodexIsland authentication issues","configure CodexIsland chart styles and refresh intervals","understand CodexIsland cost tracking and token counting","build CodexIsland from source","customize CodexIsland provider visibility settings","fix CodexIsland auth required errors"] |
Skill by ara.so — Codex Skills collection.
CodexIsland is a native macOS overlay that transforms your MacBook notch into a Dynamic Island-style live activity display for Claude Code and Codex usage limits. It shows 5-hour and weekly usage windows for both providers, estimates dollar spend and token throughput from local session logs, and provides a swipeable Cost screen—all while remaining local-first and credential-free.
brew install --cask ericjypark/tap/codexisland
The cask automatically strips the Gatekeeper quarantine attribute.
CodexIsland-X.Y.Z.dmg from GitHub ReleasesCodexIsland.app to /Applicationsxattr -dr com.apple.quarantine /Applications/CodexIsland.app
/ApplicationsCodexIsland reads existing credentials—no manual API key entry needed.
CodexIsland tries these sources in order:
CLAUDE_CODE_OAUTH_TOKEN environment variableClaude Code-credentialsPrerequisites:
# Run Claude CLI once to populate credentials
claude
# OR open Claude Desktop app
If authentication fails, the panel shows auth required — run claude.
CodexIsland reads ~/.codex/auth.json created by the Codex CLI.
Prerequisites:
# Sign in to Codex/ChatGPT CLI
codex auth login
If the file or token is missing, the panel shows no codex auth.
| Action | Result |
|---|---|
| Hover notch | Peek at current 5-hour usage |
| Click island | Expand full Usage/Cost panel |
| Swipe horizontally | Switch between Usage and Cost screens |
| Move away | Collapse island |
| Cmd-click panel | Cycle chart styles (Usage: Ring/Bar/Stepped/Numeric/Sparkline; Cost: USD/VALUE/TOKENS/TREND) |
| Click "synced Xs ago" | Force immediate refresh |
| Click gear icon | Open Settings |
Usage Screen:
Cost Screen:
All Tokens (default, matches ccusage):
Billable Only (matches claude.ai stats):
Toggle in Settings → Token Counting.
Access via gear icon in expanded panel. All settings persist to UserDefaults.
| Setting | Key | Values | Default |
|---|---|---|---|
| Chart Style | MacIsland.chartStyle | ring, bar, stepped, numeric, spark | ring |
| Cost Style | MacIsland.costStyle | dollar, multi, tokens, spark | dollar |
| Token Counting | MacIsland.tokenCountMode | all, billable | all |
| Refresh Interval | MacIsland.refreshInterval | 300, 900, 1800 (seconds) | 300 (5 min) |
| Low Power Mode | MacIsland.lowPowerMode | Boolean | false |
| Claude Visible | MacIsland.claudeVisible | Boolean | true |
| Codex Visible | MacIsland.codexVisible | Boolean | true |
| Launch at Login | Managed by SMAppService | Boolean | false |
Choose from Settings:
Note: Sub-5-minute polling is not available due to Anthropic's rate limits on /api/oauth/usage.
Hide/show providers in Settings:
git clone https://github.com/ericjypark/codex-island
cd codex-island
./build.sh
open build/CodexIsland.app
No Xcode project or SwiftPM package. build.sh compiles with swiftc, creates universal binary (arm64 + x86_64), and assembles .app bundle.
Smoke test the build:
./scripts/verify.sh
Launches the binary for 1 second, then kills it if still alive.
npm install --global create-dmg
./release.sh
Creates dist/CodexIsland-X.Y.Z.dmg with ad-hoc codesigning.
Sources/
├── App.swift # SwiftUI app entry point
├── Cost/ # Local log cost + token aggregation
├── Model/ # Data models for usage/cost
├── Theme/ # UI theming and colors
├── Update/ # Sparkle auto-update wrapper
├── Usage/
│ └── UsageFetcher.swift # Network fetcher for provider APIs
├── Views/ # SwiftUI views for island/panels
└── Window/ # Custom window management
All network requests are in Sources/Usage/UsageFetcher.swift:
https://api.anthropic.com/api/oauth/usagehttps://chatgpt.com/api/usageTokens are sent only as Authorization headers. No proxy server.
Cost screen reads local session logs:
Claude Code:
~/.claude/projects/**/*.jsonl~/.config/claude/**/*.jsonl$CLAUDE_CONFIG_DIR/**/*.jsonl (if set)Codex:
~/.codex/sessions/All aggregation happens on-device. No log content is uploaded.
Claude shows "auth required — run claude"
# Option 1: Run Claude CLI
claude
# Option 2: Open Claude Desktop app (no command needed)
# Option 3: Set environment variable
export CLAUDE_CODE_OAUTH_TOKEN="your_token_here"
Codex shows "no codex auth"
# Sign in to Codex CLI
codex auth login
# Verify auth file exists
ls -la ~/.codex/auth.json
Expected behavior: UsageStore retains previous good values when a refresh fails (e.g., 429 rate limit). Prevents panel from showing 0% during temporary errors.
Force refresh:
If you see persistent authentication errors:
Non-notched Macs: Falls back to 200×28 menu-bar pill Multiple monitors: Prefers first display with safe-area insets (partial support)
CodexIsland is unsigned (free open-source project):
# Remove quarantine attribute
xattr -dr com.apple.quarantine /Applications/CodexIsland.app
# Verify removal
xattr -l /Applications/CodexIsland.app
Or use manual bypass via System Settings (see Installation section).
Settings are stored in UserDefaults with domain MacIsland:
# Read current chart style
defaults read MacIsland chartStyle
# Set refresh interval to 15 minutes
defaults write MacIsland refreshInterval -int 900
# Enable Low Power Mode
defaults write MacIsland lowPowerMode -bool true
# Hide Codex provider
defaults write MacIsland codexVisible -bool false
CodexIsland uses Sparkle for auto-updates:
Appcast: https://github.com/ericjypark/codex-island/releases
Managed by SMAppService.mainApp:
# Enable via Settings UI or Terminal
# (No direct command-line control for SMAppService)
Access via Settings → Launch at Login toggle.
Authorization headers to official provider APIs# 1. Install
brew install --cask ericjypark/tap/codexisland
# 2. Authenticate Claude
claude
# 3. Authenticate Codex
codex auth login
# 4. Launch app
open /Applications/CodexIsland.app
# 5. Configure settings
# - Hover notch → Click island → Click gear icon
# - Set refresh interval: 15 minutes
# - Set chart style: Bar
# - Enable Launch at Login
# - Enable Low Power Mode (hides steady-state glow)
# 6. Use the island
# - Hover to peek at 5-hour usage
# - Click to expand full panel
# - Swipe right to see Cost screen ($ spend + tokens)
# - Cmd-click to cycle chart styles
# - Click "synced Xs ago" to force refresh
Repository: https://github.com/ericjypark/codex-island
# Fork and clone
git clone https://github.com/YOUR_USERNAME/codex-island
cd codex-island
# Build
./build.sh
# Test
./scripts/verify.sh
# Package DMG
./release.sh
CI/CD: .github/workflows/release.yml builds DMG and updates Homebrew tap on v* tags.