RYZE Docs
A local-first guide for setup, privacy, AI controls, and technical reference.
Install targets
OAuth callbacks use loopback (`127.0.0.1`), and tokens stay on-device.
Quickstart
Install RYZE, connect a Microsoft account, and read your first message in under two minutes.
Use this page as the end-to-end setup flow if you are new to the project.
- Install from the latest release for your platform
- Connect one account with OAuth or app-password IMAP
- Wait for initial sync and open your first thread
Install
RYZE ships signed builds for macOS, Windows, and Linux.
For development, clone the repo and run the local app build pipeline.
git clone https://github.com/your-org/ryze-mail.git cd ryze-mail npm install npm run dev
Connect an account
Microsoft 365 and Outlook use OAuth2. RYZE opens your browser and waits for a local callback.
IMAP providers can be configured with app passwords and standard host/port settings.
ryze --account add # Pick provider and complete auth in browser
Keyboard shortcuts
Default shortcuts are tuned for triage speed and reading flow.
- j / k: next and previous thread
- o: open selected thread
- e: archive thread
- r: reply
- /: focus search
Where your mail lives
By default, RYZE stores mail in a local SQLite database under your user profile.
No remote RYZE backend exists, and no inbox copy is synced to vendor servers by RYZE itself.
- macOS: ~/Library/Application Support/ryze/db.sqlite
- Linux: ~/.config/ryze/db.sqlite
- Windows: %APPDATA%\ryze\db.sqlite
Encryption at rest
RYZE uses SQLCipher for database encryption at rest.
The encryption key is stored in OS-native key storage (Keychain, Credential Manager, or libsecret).
file ~/.ryze/db.sqlite # Should not show plain SQLite header
Backups & restore
Backup by copying the encrypted DB file and exporting account settings.
Restore by placing the DB in the expected path and re-linking credentials in OS key storage.
Verify the binary
Release artifacts include SHA256 checksums and signed tags.
Compare local checksums with published values before first run.
shasum -a 256 ryze-macos.dmg # compare with checksums.txt
Setting up Gemini
AI features are opt-in. Paste your Gemini API key in Settings -> AI & keys.
Keys are stored locally in OS key storage and are not synced by RYZE.
What gets sent where
Only the thread content needed for the action is sent to the configured model provider.
RYZE does not proxy or log those requests on any RYZE-owned server.
tcpdump -i any port 443 # trigger summary and inspect destination host
Disabling AI
Disable AI globally in settings or remove the stored API key to hard-stop requests.
When disabled, all AI actions are hidden from the UI and command palette.
CLI flags
Common launch-time flags for local testing and diagnostics.
- --account add
- --reset-onboarding
- --profile <name>
- --verbose
Config file
Runtime config is loaded from your profile directory and merged with defaults.
Environment variables can override selected fields for local development.
Database schema
Core tables include accounts, threads, messages, attachments, and sync cursors.
Indexes are tuned for thread list reads, search, and incremental sync updates.
Architecture
The app uses a local-first architecture: UI, sync engine, and data store all run on the client machine.
Provider adapters normalize message and folder models into one local schema.
Contributing
Create a feature branch, run tests, and open a PR with a focused scope.
Changes touching sync, storage, or auth should include targeted tests and migration notes when needed.
Changelog
Release notes track user-visible changes, fixes, and migration notes.
Each entry should include version, date, and compatibility notes.
License
RYZE is open-source and licensed under the repository license file.
Review third-party notices before distributing modified builds.