macOSYour device
WindowsYour device
LinuxYour device
AndroidYour device
Get it onGoogle PlayRecommended — updates automatically
Phones and tablets
iOS is in testing and is handed out by request, through Apple TestFlight — ask your Cipher administrator for an invite.
What's new in 1.0.62
What's new in 1.0.62 Changes since v1.0.61. - Android/desktop: local-first cold open (paint last state before resume handshake) (#598) — A cold open on Android often sat on the splash for 10+ seconds, and longer on slow links. The BootSplash waits for device from resume(), and resume() waits for the WebSocket handshake. It was worse than that, though: spawncoreactor… - Android: unfreeze notification-tap open during push drain (narrow LIFECYCLE) (#599) — Tapping a notification opens Cipher for Android but often freezes before the conversation opens. Only a force-stop recovers it. - Paranoid Security: org-only switch + start from user profile (#600) — Two bugs Wesley reported: There was no findable way to start a paranoid session. The only entry point was DM header ⋯ → "Paranoid Security", and only in a secure dm. Channel mods were shown a per-channel toggle.… - DM details: hide Topic; New group DM instead of + Add members (#601) — The Conversation details for a 1:1 DM showed Members 2 · + Add and Add a topic…. Nobody can be added to a DM, and DMs have no topic. The cause was in DetailsPane.tsx: "+ Add" was gated on showTrust (channel | gdm | dm), so its onAdd called… - Android: Share live location feedback + permission/watch reliability (#602) — On Android, Locations → Share live location gives no useful feedback and no pin appears. Granting location manually in Settings doesn't help. - Home: drag-resize the conversations pane (#603) — While Home is open, the left conversations pane could not be drag-resized. Home replaces the workspace sidebar outright, and the drag handle lived only inside that sidebar. --side-w still set the column width, but nothing on the Home pane… - Sidebar: highlight only the view on screen (#604) — Opening Threads (or another sidebar view) left the previous channel highlighted, so two rows looked selected at once. The channel used the selection tint (--side-sel-bg) and the nav row used the accent, which is why the two highlights… - docs: plugin version bump scheme for agents (#605) — Adds a consistent plugin version bump rule for agents in AGENTS.md and plugins/README.md. - Redesign Org console Settings, Server and Plugins tabs (#606) — Settings: grouped switch rows with short copy, and a one-line posture note. The Giphy key sits under its switch. Retention is one row. Read-only mode is set from a dialog, with an amber bar while it's on. Turning off unsecured web access… - Fixes Plugin wording, Mentions-only notifications, Mute selection (#607) — The app called the same thing "Plugins" in the Org console and in Preferences, but "Extensions" in the workspace console and in channel preferences. The UI now says "Plugins" throughout. The workspace console's empty state also told admins… - Redesign Org console Storage tab (#608) — The storage chain is a numbered list in lookup order. The store taking new uploads comes first with a green "New uploads" badge, and the rest are marked "Read only". One line of detail per bucket, plus a small meta line (credentials… - Label the Plugins list's 'read first' warning for screen readers (#609) — Label the Plugins list's "read first" warning for screen readers - Refactor(org-email): cleaner list + dialog UX (#610) — UX pass on the Org console → Email page to match the Storage settings pattern (option 19a), including the accompanying CSS. - D102: Members may start meetings default-off + workspace override (#612) — Locks D102 (Wesley, 2026-09-29). "Members may start meetings" now defaults off, and a workspace can override it. The change reuses the existing DN70 ladder rather than adding a parallel stack. - Org email: say when routes exist but none is sending (#613) — With the sending route deleted, the console said "No mail route is set up" beside a standby route and offered no way out, while the server silently skipped invitation email. Show a distinct warning for that state, with a one-click "Use… - Workspace console → Plugins: compact rows (UX 20b) (#614) — One row per plugin: name + version, a one-line description that expands on click, an "In channels" column, then the switch. D102's "Who can start meetings" moves under the meetings plugin's description. New wpx- styles replace the unused… - Org console → Backups: compact rows and restore dialog (UX 21a) (#617) — Schedule saves on change; one row per backup with Restore… visible and Download/Delete in a ⋯ menu; the restore chooser moves into a dialog. Retention copy now says hand-taken backups are pruned too (only uploads are exempt), the days box… - Org console: Esc closes the Backups and Email dialogs (#618) — The shared Modal closes only on a backdrop click. Handle Esc for the Restore dialog and the Add/Edit route and Send test dialogs, plus their confirms; a confirm stacked on the Restore dialog closes first. - Org console → Import: step-by-step wizard (UX 22b) (#619) — Archive, People, Conversations, Import as one step at a time, with a drop area, match filters, conversation filters with a side panel for destination options, and a summary before the confirmation. - Desktop: CIPHER_WS replaces the saved server for that launch (#615) — Fixes #611. When the desktop app has a saved server.json, launching with CIPHERWS used to move only the WebSocket. HTTP (Org console, /version, uploads, GIF, unfurl) and Keycloak (unless CIPHERKCURL was set) still came from the saved… - DN101: stop the mobile notification re-bang + tap deep-link + web-tray parity (#616) — Fixes the "phone re-bangs tons of historic unread" bug (DN101): every background wakeup (DN95 fans out on every new message in any container) re-rendered and re-posted the entire mobile notification tray — historic unreads arrived in… - Org console → API credentials: two-line list (UX 23a) (#620) — Replace the nine-column table with a two-line list: name, kind and state, then owner and scope count, with last use on the right. Add Active / Revoked or expired / All filters; the text filter also matches display names. The scope count… - Org console → Backups: only menu items in the ⋯ menu (#621) — The secrets note and the backup ID sat as plain text inside role="menu". The note is now part of the Download item, so it's read with it, and the ID becomes a "Copy backup ID" item (it's still shown in the Restore dialog's header). - D155: preview an Open channel before join (#622) — A signed-in user who opens a link to an Open (listed, Searchable) channel they are not in, or picks one from the directory, Browse, or Find a channel, sees a preview and a primary Join. Back or Go home is the secondary action. A Closed,… - Org console → Users & devices: two-line list (UX 24a) (#623) — The table becomes a two-line list: name with "You" / "Org admin", then live device count, anything waiting for approval (in amber, first so it's never truncated) and the email; last online and Manage on the right. All / Waiting for… - …and 142 more changes — full list: https://github.com/navigo-app/cipher/compare/v1.0.61...v1.0.62.