OiBuddy
Little companions. Friendly nudges. Better workdays.
OiBuddy brings a selectable companion and gentle water, stretch, eye-rest, walking and custom reminders to VS Code. Choose Miso, Biscuit, Clover, Pebble, Rusty, Theo or Maya. Each character has a fixed appearance.
This is a development preview. Character motion and audio approval are still in progress. The package is suitable for testing, not a finished public release. See the release checklist, media acceptance gates, and voice production review.
Try it in VS Code
Install the supplied .vsix through Extensions → … → Install from VSIX. Click the OiBuddy icon in VS Code's Activity Bar, then Open dashboard. The compact view also has a dashboard button in its title bar. The OiBuddy status-bar button and OiBuddy: Open Dashboard command remain available. Use Try a visit to preview a reminder without changing your progress.
Animations appear inside OiBuddy's dashboard and companion panel. They do not walk over source-code editors or outside the VS Code window.
Reminders and language
- Choose English, हिन्दी or বাংলা from the language dropdown. English is the initial default.
- Create interval reminders, choose working days and hours, pause reminders, or start a quiet focus session. Overnight schedules use the day on which the shift started.
- Set working hours to the minute, choose focus sessions from 1–240 minutes, adjust audio volume, and override snooze time for each reminder.
- Eight editable templates cover posture, wrists, breathing, refilling a bottle, stepping away, planning, reading and finishing the day. You can change their titles and intervals before adding them.
- Done records completion. Later snoozes. Skip and expiry do not increase hydration or completed-reminder counts.
- Voice and sound are optional and initially off. Unavailable media leaves written reminders usable. The preview includes source-verified recordings awaiting listening approval. Custom reminder text appears in writing; it does not play an unrelated stock reminder sentence.
- Reduced motion is available in Settings.
- Unsaved settings edits stay intact when you navigate away or another window updates preferences. Saving sends only edited fields, so unrelated changes in another window are preserved.
Only one window owns a reminder. Within that window, the visible dashboard takes presentation priority over the compact companion panel. When neither view is visible, a standard VS Code notification provides the reminder actions.
Data and recovery
Preferences, schedules and recent progress stay in VS Code's local extension storage. The extension does not require an account and makes no network requests for normal operation. Packaged artwork and audio load locally.
Writes use an exclusive owner lease and atomic file replacement. A damaged primary can recover from a valid backup; damaged data is preserved before a subsequent change. Unsupported newer formats are preserved and rejected rather than overwritten. OiBuddy: Open Data Folder opens the storage location for inspection.
An old fixed-name save lock is preserved for manual inspection. Close any older OiBuddy windows before inspecting or recovering that lock. Do not remove a lock belonging to a running window.
Development and checks
Run npm ci, then npm test. Open this folder in VS Code and press F5 to launch the extension development host.
npm test: compile and run scheduling, persistence, animation lifecycle and translation checks.
npm run test:host: exercise VS Code using an isolated test profile. It uses the installed macOS application when available and otherwise downloads a test copy.
npm run check:media: validate local media paths, sheet dimensions and recording hashes, and list pending approvals.
npm run package:release: run tests and require all media approvals and release scenarios before packaging. It intentionally fails while release gates remain unchecked.
Automated checks do not establish native pronunciation quality, smooth character choreography or verification on other operating systems. Those remain explicit review gates.