Project
Where RIM is heading and how it is built: the vision, the server architecture and the design models, how to contribute, security with its overview and threat model, and the client's internals and branding.
Direction and design
- RIM — Product VisionThe roadmap (ROADMAP.md) owns sequencing; this document owns the product principles.rim-server/docs/vision.md
- ArchitectureThis document describes the architecture of the RIM server.rim-server/docs/architecture.md
- Command ModelThis document defines the command model for RIM.rim-server/docs/command_model.md
- Keybind ModelThis document defines the keybind model for RIM.rim-server/docs/keybind_model.md
- Context ModelThis document defines the context model for RIM.rim-server/docs/context_model.md
Contributing
- ContributingAnyone can contribute. This repository is licensed under the Apache License 2.0 (see LICENSE), and contributions are accepted under the same license.rim-server/CONTRIBUTING.md
- Contributor Covenant Code of ConductWe as members, contributors, and leaders pledge to make participation in our community a harassment-free experience for everyone, regardless of age, body size, visible or invisible disability, ethnicity, sex …rim-server/CODE_OF_CONDUCT.md
- ChangelogWhat changes between rim-server releases, for the people who run a server and the people who write a client. The format is Keep a Changelog and the versions follow Semantic Versioning; a release is the tag v<version>, …rim-server/CHANGELOG.md
Security
- Security overviewRIM is a chat server with end-to-end encrypted DMs and groups, identities that are key pairs, and federation between servers. This page says what it protects, from whom, and where the limits are, for someone deciding …rim-server/docs/security-overview.md
- Security policyRIM is pre-release. Until the first tagged release, only master is supported: a fix lands there and nowhere else. Once releases are tagged, this section names the ones that get fixes.rim-server/SECURITY.md
- Outside cryptographic review: brief for Stages 3 and 4This brief predates several fixes, so its numbered items in section 6 are not all open. Review them against the release commits, not the commits in 1.1. These are fixed:rim-server/docs/security/crypto-review-brief-2026-10.md
- Audit Log Access MatrixThis document is the reference for which actor can read which rows of the command audit log (command_audit_log, GraphQL listAuditLog) under which conditions. Anyone changing list_entries in …rim-server/docs/security/audit-access-matrix.md
Client internals
- RIM Desktop UI ShellThis document defines the intended desktop shell for the RIM UI client; the shell as built, which differs from it in places, is described in getting-started.md.rim-ui/docs/ui-shell.md
- Error boundariesRIM's shell has two tiers of React error boundary. Pick the right one when adding a new surface, and always wire resetKeys correctly — a boundary without the right resetKeys can leave a pane permanently stuck in its …rim-ui/docs/error-boundaries.md
- ESLint + PrettierThe frontend has a lint/format gate: npm run lint, npm run lint:fix, npm run format, npm run format:check. npm run build (TypeScript check + Vite build) and npm test remain the other two gates. All four should pass …rim-ui/docs/eslint-prettier.md
- rim_mlssrc-tauri/crates/rim_mls is the end-to-end encryption engine of encrypted DMs and groups: MLS (RFC 9420) through OpenMLS, behind RIM's own types. It is the only code that names OpenMLS types; the app passes conversation …rim-ui/docs/rim-mls.md
- BrandingThe brand masters live in rim-server's assets/branding/, with a README that says what each file is for. They are the source of truth; this repository holds copies or renderings of them.rim-ui/docs/branding.md