Use these guides to run Noura, understand its file-backed workspace, and contribute to its plugins and services. Start with the guide for your task:
- Run Noura: follow the desktop setup instructions
- Contribute code: read the contributor conventions and desktop verification guide
- Work with plugins: learn the activation lifecycle and capability contracts
- Understand workspace files: read the workspace format and local-core architecture
- Understand AI access: read about provider consent, tool approval, and chat persistence
- Publish a release: follow the release guide to ship signed installers and updates
- Run the sync service: follow server setup, then the operations guide
Treat these specifications as the public contract for durable workspace data. Rust owns parsing and deterministic serialization; TypeScript validators use the same conformance fixtures:
- Workspace format v1: manifests, managed Markdown, stable identifiers, and chats
- Encrypted sync protocol: signed operations, key envelopes, file changes, and attachments
- Collaboration protocol: text generations, updates, and recovery
- Encrypted checkpoints: snapshots and access transitions
Use these documents to understand component responsibilities and the boundaries a change must preserve:
Follow the security policy to report a vulnerability. Review the relevant boundaries and dependency requirements before changing them: