Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.
Quelldateien prüfen
Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.
Mit Codex oder Claude installieren Kopieren Sie diesen Prompt, fügen Sie ihn in Codex, Claude oder einen anderen Assistant ein und lassen Sie die Skill-Seite prüfen und installieren.
Ein direkter Befehl überspringt den Prüf-Prompt. Prüfen Sie die Quelle, bevor Sie ihn ausführen.
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"]
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.
What CodexIsland Does
Dual-provider monitoring: Tracks Claude (5h + 7d) and Codex (5h + 7d) usage limits in one notch overlay
Notch-native overlay: Black pill aligned to the physical notch with squircle corners; falls back to menu-bar pill on non-notched Macs
Hover to peek: Shows 5-hour percentage and reset headline for visible providers
Click to expand: Opens full Usage/Cost panel with provider columns and chart controls
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
Refresh Intervals
Choose from Settings:
5 minutes (default)
15 minutes
30 minutes
Note: Sub-5-minute polling is not available due to Anthropic's rate limits on /api/oauth/usage.
Provider Visibility
Hide/show providers in Settings:
Removes provider logo and column from island
Keeps latest usage values in memory
Re-showing does not require re-authentication
Building from Source
Requirements
macOS 13+
Xcode or Command Line Tools (Swift toolchain)
Build Steps
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.
Verification
Smoke test the build:
./scripts/verify.sh
Launches the binary for 1 second, then kills it if still alive.
Release Packaging
npm install --global create-dmg
./release.sh
Creates dist/CodexIsland-X.Y.Z.dmg with ad-hoc codesigning.
Code Architecture
Key Components
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
Network Surface (Privacy)
All network requests are in Sources/Usage/UsageFetcher.swift:
Claude: https://api.anthropic.com/api/oauth/usage
Codex: https://chatgpt.com/api/usage
Tokens are sent only as Authorization headers. No proxy server.
Local Log Reading (Cost Screen)
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.
Troubleshooting
Authentication Issues
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 variableexport CLAUDE_CODE_OAUTH_TOKEN="your_token_here"
Codex shows "no codex auth"
# Sign in to Codex CLI
codex auth login
# Verify auth file existsls -la ~/.codex/auth.json
Stale Values After Error
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:
Click "synced Xs ago" in panel header
Or wait for next scheduled poll (respects refresh interval setting)