{"_id":"@aizakmi08/my-guy","name":"@aizakmi08/my-guy","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@aizakmi08/my-guy","productName":"My Guy","version":"0.1.0","description":"A tiny pixel companion walks your Mac Dock through your whole work shift — breaks, lunch, quests and all.","license":"MIT","private":false,"main":"main.js","bin":{"my-guy":"bin/my-guy.js"},"scripts":{"start":"electron .","launch":"node bin/my-guy.js","demo":"electron . --demo","showcase":"electron . --showcase","showcase:spider":"electron . --showcase --character=spider","showcase:haaland":"electron . --showcase --character=haaland","showcase:barbie":"electron . --showcase --character=barbie","showcase:bean":"electron . --showcase --character=bean","showcase:mj":"electron . --showcase --character=mj","showcase:rumi":"electron . --showcase --character=rumi","showcase:aang":"electron . --showcase --character=aang","build:logo":"python3 scripts/build_logo.py","check":"node --check main.js && node --check overlay.js && node --check walk-loops.js && python3 -m py_compile scripts/build_logo.py","verify:package":"node scripts/verify-package.mjs","pack:dry":"npm pack --dry-run --json","prepack":"npm run build:logo && npm run check && npm run verify:package","release:check":"npm run pack:dry"},"publishConfig":{"access":"public"},"engines":{"node":">=20"},"os":["darwin"],"cpu":["arm64","x64"],"dependencies":{"electron":"44.0.0"},"_id":"@aizakmi08/my-guy@0.1.0","_nodeVersion":"26.7.0","_npmVersion":"12.0.2","dist":{"integrity":"sha512-+/4ysPxmX0u/Kr966dV9ExCnoDRRzKWD5zazRUCpHSprsUTZC/TqnPF76NyVAVPYO1jJwn9MTp/JL0kcKVHy9w==","shasum":"00500d9696fb8f1fc78848e94da3992bd76439d5","tarball":"https://registry.npmjs.org/@aizakmi08/my-guy/-/my-guy-0.1.0.tgz","fileCount":44,"unpackedSize":1269934,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIFXlGtdP0YIukiiQu3Q5tCZP/U37Q6WqSqtvpsSBQC+SAiEAvaGDrwzyrptvFlsoubo9CqMdFUKN4bTwUJ6afCLu1MA="}]},"_npmUser":{"name":"aizakmi08","email":"ulugbeknasyrov08@gmail.com"},"directories":{},"maintainers":[{"name":"aizakmi08","email":"ulugbeknasyrov08@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/my-guy_0.1.0_1788125317135_0.647783940149496"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-30T21:28:36.974Z","0.1.0":"2026-08-30T21:28:37.296Z","modified":"2026-08-30T21:28:37.470Z"},"maintainers":[{"name":"aizakmi08","email":"ulugbeknasyrov08@gmail.com"}],"description":"A tiny pixel companion walks your Mac Dock through your whole work shift — breaks, lunch, quests and all.","license":"MIT","readme":"# My Guy\n\nA tiny pixel companion walks across your Mac Dock for your entire work shift.\nTheir position **is** your progress bar. When they clock out, you're done.\n\n- Set your shift length (e.g. 8 hours) — the selected walker crosses the whole bar in exactly that time.\n- Breaks every N minutes: he stops for a 🚬 smoke, 💪 push-ups, ☕ coffee, or 🧘 stretch — your cue to take one too.\n- Lunch at a set time: he sits down and eats 🍜.\n- Little markers on the bar show where the day's breaks will happen.\n- At shift end a freestanding pixel door opens; the walker enters, disappears, and the door closes.\n- Choose one of eight generated walkers: web-swinging Spider-Man, meme-sprinting Haaland,\n  deadpan Wednesday, runway Barbie, awkward Mr Bean, or fedora-tipped Moonwalk. Entrances\n  include Spider-Man's web landing, Barbie's sparkle levitation, Moonwalk's toe-stand\n  drop, Rumi, Aang, and character-specific face-plants; every gait has its own curated loop.\n- Optional water checks make the character drink while walking and flash a tiny `HP +1`\n  reminder every N minutes.\n- Water, coffee, smoke, push-ups, stretching, lunch, celebrations, and entrance recovery\n  use baked character-and-prop frames instead of floating canvas props or rotated walk art.\n- Settings, break notices, lunch, pause, and hydration all use one old-school pixel UI.\n\n## One command\n\nMy Guy currently supports macOS. With Node.js 20 or newer installed:\n\n```bash\nnpx -y @aizakmi08/my-guy\n```\n\nThe first launch opens the pixel launcher. The first npm download includes Electron, so it\ncan take a little longer; later launches use npm's cache.\n\n## Development\n\n```bash\nnpm install\nnpm start        # real shift, uses your saved settings\nnpm run demo     # whole shift compressed into ~90 seconds\nnpm run showcase # looping ~37-second Wednesday animation review\n```\n\n**Start shift** kicks off the day.\n\nThe pixel-walker tray icon shows time left and has Pause / End shift / Settings.\n\n## Notes\n\n- By default he walks **on top of the Dock**, spanning exactly its length. Exact Dock\n  detection uses the Accessibility API (one-time system permission prompt; the frame is\n  read via System Events from the Dock process). If the permission is declined, a\n  centered estimate along the Dock is used instead. The path re-syncs every 5s, so\n  resizing the Dock or adding icons moves the route.\n- The overlay is click-through — it never intercepts clicks on Dock icons or menus.\n- Pausing shifts the rest of the schedule; the lunch clock time stays anchored when a new shift is built.\n- Config lives in `~/Library/Application Support/My Guy/config.json`. Existing settings\n  are copied automatically from the legacy `commuter` folder on first launch.\n\n## License\n\nMIT\n\n## Development note\n\nIf `npm install` leaves Electron broken (\"Electron failed to install correctly\"),\nthe zip download is cached but extraction failed — extract manually:\n\n```bash\ncd node_modules/electron && rm -rf dist && mkdir dist \\\n  && unzip -q ~/Library/Caches/electron/*/electron-v*-darwin-arm64.zip -d dist \\\n  && printf 'Electron.app/Contents/MacOS/Electron' > path.txt\n```\n","readmeFilename":"README.md","_rev":"1-55fbd279a1624f209bbe2b597a598997"}