A Flutter app.
Install the Flutter SDK (on macOS: brew install --cask flutter), then fetch dependencies:
flutter pub getThe app is Android-only and needs the server (below) running on the Mac, reachable over Tailscale:
flutter run -d <android-device> --dart-define=BUDDY_SERVER=http://<mac-tailscale-ip>:8787/Use flutter devices to find the device ID.
flutter testExpected output ends with All tests passed!.
The conversation backend in server/ runs on the Mac and uses your ChatGPT subscription through the Codex CLI's login. See AGENTS.md for the design.
codex login # once; writes ~/.codex/auth.json
cd server
HOST=<mac-tailscale-ip> dart run bin/server.dartIt listens on 127.0.0.1:8787 by default; set HOST to the Mac's Tailscale IP so the phone can reach it. History is kept in SQLite at ~/.buddy/buddy.db (override with BUDDY_DB). Tests: cd server && dart test.
Commits run these checks via pre-commit:
dart format— formattingflutter analyze— linting / static analysismkdocs build --strict— documentation build validation (whendocs/changes)
Tests run in CI, not in the hooks.
Setup for new contributors:
pre-commit install && pre-commit install --hook-type post-commitRun manually:
pre-commit run --all-filesProject documentation lives in the docs/ directory (Material for MkDocs, managed with uv).
To run the documentation site locally:
cd docs
uv run mkdocs serveTBD.