Paarrot documentation
Documentation for the Paarrot Matrix client (Cinny fork). Use this index to find feature handoffs, API references, and developer guides.
Handoff docs (start here)
Per-feature handoff folders live under handoff/features/. Each folder has a HANDOFF.md with architecture, key files, data model, and maintenance notes.
New feature? Copy handoff/TEMPLATE.md into handoff/features/<feature-name>/HANDOFF.md and add a row below.
Platform & shell
| Feature | Handoff |
|---|---|
| Electron desktop shell | electron-shell |
| Android (Capacitor/Tauri) | android |
| Client chrome (title bar, splash, welcome) | client-chrome |
| Local HTTP API | local-api |
| Stream Deck integration | streamdeck |
| Background notifications | background-notifications |
Core client
| Feature | Handoff |
|---|---|
| Authentication | authentication |
| Matrix client (init, sync, providers) | matrix-client |
| State management (Jotai) | state-management |
| Routing & navigation | routing-and-navigation |
| E2E encryption & devices | e2e-and-devices |
Navigation & panels
| Feature | Handoff |
|---|---|
| Home & sidebar | home-and-sidebar |
| Room nav (channel rows) | room-nav |
| Direct messages | direct-messages |
| Inbox & invites | inbox-and-invites |
| Explore (public rooms) | explore |
| Join before navigate | join-before-navigate |
Messaging
| Feature | Handoff |
|---|---|
| Room timeline | room-timeline |
| Editor & composer | editor-and-composer |
| Message rendering (markdown, HTML) | message-rendering |
| Media & URL preview | media-and-url-preview |
| Message search | message-search |
| Global search (quick nav) | global-search |
Rooms, spaces & creation
| Feature | Handoff |
|---|---|
| Create flows (room/space/DM) | create-flows |
| Room settings | room-settings |
| Space settings | space-settings |
| Common settings (shared pages) | common-settings |
| Sub-rooms | sub-rooms |
| Lobby (space card view) | lobby-forums |
| Forum spaces (post feed UI) | forum |
Settings & customization
| Feature | Handoff |
|---|---|
| User settings | user-settings |
| Themes & appearance | themes-and-appearance |
| Emojis & stickers | emoji-stickers |
| Custom emoji packs | custom-emoji-packs |
| Avatar metadata | avatar-metadata |
| Embed filters | embed-filters |
| Developer tools | developer-tools |
Real-time & extensions
| Feature | Handoff |
|---|---|
| Voice & video calls | voice-calls |
| Plugin system | plugins |
API & plugin references
| Doc | Description |
|---|---|
| API.md | Full local HTTP API reference (port 33384) |
| API-QUICKSTART.md | Quick start for the local API |
| PLUGINS.md | Plugin system user guide |
| PLUGIN_API.md | Full plugin API reference |
| PLUGIN_BUTTON_API.md | UI button injection API |
| PLUGIN_SYSTEM_IMPLEMENTATION.md | Internal plugin architecture |
Plugin development guide (in-app): src/app/features/settings/plugins/PLUGIN_DEVELOPMENT.md
Repo layout (docs-related)
cinny/docs/
README.md ← you are here
handoff/
README.md ← how to write handoff docs
TEMPLATE.md ← copy for new features
features/
<feature-name>/
HANDOFF.md
API.md ← reference docs (kept at root for links)
PLUGINS.md
...