Files
brov-macbook/CONTRIBUTING.md
T
2026-10-06 19:34:32 +03:00

1.5 KiB

Contributing to Coucou

Thanks for wanting to help Mochi grow up! 🫶

Getting started

brew install xcodegen
cd NotchBuddy && xcodegen && open NotchBuddy.xcodeproj

Never edit NotchBuddy.xcodeproj by hand: change project.yml and run xcodegen.

Check resting island dimensions on screens with and without a notch:

bash scripts/test-screen-geometry.sh

Good first contributions

  • A new service integration (a poller + an entry in PillCatalog.swift in the .service category + a detail card). Look at StripePoller.swift for a compact example.
  • A new agent: any agent already gets its own automatic pill by sending coucou_agent in its hook payload (see docs/AGENTS.md). Add an entry in PillCatalog.swift in the .agent or .workspace category only if you want it to be declarable in Settings → Active pills.
  • A new emote or sound for Mochi.
  • Bug fixes — please describe how to reproduce.

Rules of the house

  • Swift 6, SwiftUI + AppKit, no third-party dependencies unless there's really no other way.
  • Secrets go in the Keychain, never on disk or in git.
  • No telemetry, no network calls except to services the user configured.
  • Never block Claude Code: if the app doesn't answer, the hook must exit right away.
  • Never write ~/.claude/settings.json without a backup and the user's confirmation.
  • Keep it light: 0 % CPU when the island is hidden.

Pull requests

  • One topic per PR, with a short GIF or screenshot for anything visual.
  • Build must pass with no new warnings.