A fan recreation of Kojima Productions' OtaClock for modern macOS.
The original OtaClock was a desktop companion widget featuring Otacon from Metal Gear Solid, released by Konami around 2006 as a bonus for purchasers of Metal Gear Acid 2 and Metal Gear Solid 3: Subsistence. It was originally developed for internal use by the Kojima Productions development team. The original download links from Konami are long dead and the app is incompatible with modern operating systems.
This project is a reimplementation built with SwiftUI, reverse-engineered from the original app's assets and behavior. It recreates the core experience -- a transparent, always-on-top animated character with a clock speech bubble -- and adds modern features like multi-alarm scheduling and a Pomodoro timer.
- Floating transparent widget with date, time, and day of week
- Draggable to any position on screen
- Visible across all spaces/desktops
- Adjustable opacity (20%-100%) via menu bar slider
- Up to 5 simultaneous alarms
- Repeat scheduling: Once, Weekdays, Weekends, Every Day, or custom days
- Enable/disable individual alarms without deleting
- One-time alarms auto-delete after triggering
- Auto-stop after 5 minutes if unattended
- Full character animation + flash effect when ringing
- Right-click the speech bubble to manage alarms
- Classic work/break cycle with long breaks
- Configurable durations (default 25/5/15)
- Presets: Classic (25/5/15) and Long (40/10/20)
- Live countdown in widget badge and menu bar
- Color-coded indicator: red for work, green for break
- Sound notification on phase completion
- Start, pause, skip, and reset controls
OtaClock
─────────────────────────
Pomodoro: Working 23:45
Pause
Skip
Reset
Settings...
─────────────────────────
Alarms:
● 9:30 AM (Weekdays)
○ 2:00 PM (Once)
─────────────────────────
Add Alarm...
Stop Alarm
─────────────────────────
Opacity [====●────]
─────────────────────────
Quit ⌘Q
| Action | Result |
|---|---|
| Drag widget | Move to new position |
| Right-click speech bubble | Open alarm manager |
| Click widget (while alarm ringing) | Stop alarm |
| Menu bar icon | Access all controls |
OtaClock/
├── OtaClockApp.swift # App entry, managers (Alarm, Pomodoro, Settings), AppDelegate
├── ContentView.swift # Widget UI, sprite animation, clock display
├── AlarmPickerView.swift # Alarm creation/editing with day scheduling
├── AlarmManagerView.swift # Alarm list management
├── Assets.xcassets/ # Sprite sheet, speech bubble, app icon
├── sound1.mp3 # Pomodoro completion sound
├── sound2.mp3 # Alarm sound
└── Info.plist # App config (LSUIElement for menu bar only)
- Open
OtaClock.xcodeprojin Xcode - Build and run (Cmd+R)
- The widget appears in the top-right corner; the clock icon appears in the menu bar
To create a standalone app bundle: Product > Archive > Distribute App > Copy App
- macOS 13.0+
- Xcode 15.0+
The pixel-art character has two animation modes:
- Idle: Stands with occasional blinking
- Alarm: Full 5-frame animation loop until dismissed