OpenMuse is an MIT-licensed alpha. Contributions should make delegated work reliable and visible, with honest connector status and useful native interactions.
- Fork and clone the repository. Use Node 24 LTS and pnpm 11.19.0.
- Run
pnpm install --frozen-lockfileand copy.env.exampleto.env. - Run
pnpm devand, in another terminal,pnpm dev:web. - Use the fictional sample workspace for development and recordings. See native setup for simulator/emulator builds.
Never commit .env, .openmuse, browser profiles, credentials, or personal documents. Live provider testing is optional for ordinary contributions; state exactly which paths you tested.
pnpm lint
pnpm typecheck
pnpm test
pnpm build:server
pnpm build:web
pnpm build:ios
pnpm build:android
pnpm --dir apps/worker typecheckFor browser changes:
pnpm --dir apps/worker exec playwright install chromium
pnpm test:browser
# With Docker available:
pnpm --dir apps/worker test:dockerBrowser integration checks use public fixture websites and disposable profiles. They never use your saved browser sessions. CI runs lint, types, tests, platform exports, Chromium lifecycle, and the disposable browser-container suite.
- Keep CopilotKit/AG-UI transport, the native UI, and server-owned task execution separate.
- Show the real tool result or failure. Do not replace a failed connector with sample success.
- Treat website, mail, and PDF text as data. It cannot grant tool permissions or approve a write.
- Keep sends and calendar mutations behind persisted, versioned action reviews. Preserve uncertain provider outcomes; do not retry a possibly completed write.
- Add regression coverage for behavior changes. Test outcomes such as a task surviving restart, not just function calls.
- Check iOS/Android layout when changing shared React Native components. Platform exports validate bundles; they do not prove a native binary works.
- Document required credentials and unsupported capabilities when adding a connector.
Open an issue for substantial architecture or connector changes so contributors can agree on scope. Small fixes can go directly to a pull request.
Describe the problem, resulting behavior, and verification. Include a screenshot or short recording for UI changes and note any untested provider/platform path. Do not paste private account data or tokens in logs. Security reports follow SECURITY.md.
Contributions are accepted under the MIT license.