Maple is a monorepo for the Maple applications, their OpenSecret SDKs, local proxy, and
updater service. The existing web, desktop, and mobile client lives under
apps/maple-research/, including Research chat
and desktop Agent Mode. Its directory name does not change the shipped Maple
application identity.
| Path | Responsibility |
|---|---|
apps/maple-research/ |
React/Vite frontend and Tauri desktop/mobile application, app documentation, and distribution configuration |
apps/maple-agent/ |
GPUI desktop-v2 prototype, ACP agent, and CLI proxy; independent from the shipped Research app |
sdk/ |
OpenSecret TypeScript/React and Rust SDKs, consumed in tree by Maple |
proxy/ |
Standalone OpenAI-compatible proxy, also consumed by desktop Maple |
services/updates/ |
Desktop updater Worker and verified release-metadata publishing |
docs/ |
Shared deployment documentation |
scripts/ and .github/workflows/ |
Shared validation and release entry points |
OpenSecret remains the external
backend for confidential authentication, inference, conversations, and related
APIs. Its planned import under services/opensecret/ has not happened yet.
The GPUI import history and upstream follow-up branches are recorded in
the Agent migration note.
Use the pinned Nix environment and run shared commands from the repository root:
nix develop --no-update-lock-file
./setup-hooks.sh
just install
just # List recipes
just dev # Research web development
just desktop-dev # Research Tauri application, including Agent Mode
just agent-dev # GPUI Agent app, using its own pinned component shellFollow the Research setup guide to
configure apps/maple-research/frontend/.env.local before starting the app.
Preserve existing configuration and externally managed workspace resources.
All VITE_* values are public client configuration and must never contain secrets.
Root justfile, flake.nix, .agents/, and CI scripts remain shared entry points;
use each component's guide for its direct Bun or Cargo commands.
Use the root agent guide for shared policy and the Research validation guide or component README for the checks affected by a change. Report unit tests, builds, runtime smoke tests, and deployed behavior separately.
Production-shaped master builds and GitHub Releases are production actions. A master push that changes app inputs can upload an iOS build to TestFlight; a GitHub Release starts cross-platform packaging and downstream publication. Use the release procedure only for authorized release work. The Pages guide documents preview and production deployment profiles and controls.
Keep changes focused, preserve compatibility at public and installed-client boundaries, and report the exact checks and runtime paths exercised before opening a pull request.