CodeDeck Next

com.codedeck.next
by Jeroen ✅ jeroen@nostrplebs.com

Control Claude Code sessions on your laptop from your phone over encrypted Nostr.

CodeDeck is a multi-session agentic coding interface for your phone. Run Claude Code on your laptop or VPS and drive it from anywhere: review plans, approve tool permissions, switch models and effort levels, and chat with multiple coding sessions at once — all from your Android device. CodeDeck talks to a companion bridge (VSCode extension or headless CLI) over end-to-end encrypted Nostr relays (NIP-44). No accounts, no central server: your phone and laptop pair directly by scanning a QR code. Features: - Multiple concurrent Claude Code sessions, switchable from one app - Plan approval, permission cards, and AskUserQuestion prompts on your phone - Transcripts that survive restarts, offline gaps, and reinstalls (ranged sync) - Per-session model selection and effort levels - Encrypted Nostr DMs — NIP-17 and Marmot (MLS) side by side - Project/folder management on every bridge host, incl. VPS - Auto + manual UI scale (phone through tablet) This is the protocol-v10 rebuild (new Android appId): it pairs with the new bridge only and can be installed alongside the old CodeDeck app. Bridges (both free, install one on the machine running Claude Code): - VSCode extension: github.com/JeroenOnNostr/codedeck-next-bridge-vscode - Headless CLI / VPS: github.com/JeroenOnNostr/codedeck-next-bridge

First release: Aug 7, 2026, 8 total releases.

Most recent release: Aug 16, 2026.

Repo

Appears in 2 app stacks.

0 sats / 0 zaps received in the past year.

Sats Received

Underlying data available via MCP: app_zaps, app_releases.

Zap Count

Underlying data available via MCP: app_zaps, app_releases.

Releases

  • Aug 16, 2026 0.9.9
    CodeDeck Next 0.9.9 — a Stop button that's always there, and two touch annoyances gone. Three small fixes from using 0.9.8 on a real phone. Nothing about pairing, sessions, messaging or encryption changed. - **You can always stop a session.** The Stop button in the session header used to appear only while the app believed the session was busy — which hid it exactly when a session was stuck. It's now always there. Tapping it ends the current turn and also clears any stuck permission prompt; on a session that's doing nothing it simply does nothing.
    More…
    - **Long-pressing menus no longer selects their text.** Only the things you'd actually copy are selectable now: messages in the session transcript, chat bubbles in DMs, and text you're typing. Buttons, headers and menus stay put. - **Pinch-to-zoom is gone.** The app never needed it and it was easy to trigger by accident. Scrolling, swiping between sessions and swipe-to-delete all work as before, and text size still adjusts under Settings → UI scale.
  • Aug 14, 2026 0.9.8
    CodeDeck Next 0.9.8 — your half-typed message stays put, and a new session opens itself. Three fixes from using 0.9.7 on a real phone. Nothing about pairing, sessions, messaging or encryption changed. - **Typing you haven't sent is no longer lost.** Start a message in one session, jump to another, come back — your text is exactly where you left it. Each session keeps its own draft, and drafts now survive closing the app too. (They still never leak between sessions: what you typed for one session can only be sent to that session.)
    More…
    - **A session you create opens itself.** Tapping Create used to add a tile you then had to tap. Now the app takes you into the session the moment it's ready, and on a phone-width screen the session list steps out of the way. A session started somewhere else — another phone, or the bridge — still appears quietly without dragging you out of what you were reading. - **New setting: Transcript → "Expand file edits."** Every file edit used to fill the screen with its diff, while the rest of the turn's work sat neatly under "2 actions". Turn this off and edits fold into that same row — one line instead of a screenful — with the full coloured diff one tap away. It stays on by default, so nothing changes until you choose to.
  • Aug 12, 2026 0.9.7
    CodeDeck Next 0.9.7 — the keyboard stops eating the top bar. Four fixes straight from using 0.9.6 on a real phone. Nothing about pairing, sessions, messaging or encryption changed. - **Typing no longer hides the top bar.** Opening the keyboard used to pan the whole app upward — the header (and on a fold-open screen, the top of the session list) slid off-screen while you typed. The app now shrinks to end exactly at the keyboard top, so everything stays where it belongs and the composer sits flush on the keyboard.
    More…
    - **You can see when your session limits reset again.** The usage indicator shows the countdown right next to each percentage — "5h 37% 3h12m" — the way the old app did, ticking live instead of hiding it in a tooltip a touchscreen can never show. - **Models are named in full.** "Fable 5" and "Opus 5" instead of F5/O5 — and models from a custom provider show the name you gave them, so a Kimi K3 session says "Kimi K3". - **A tidier top bar.** The duplicate session title is gone (it's already on the session tile), the working folder moved down beside the effort and mode controls, and the top row is now purely indicators: state, connection, model + context, usage.
  • Aug 11, 2026 0.9.6
    CodeDeck Next 0.9.6 — the whole app moves like one piece now. This is a polish release: nothing about pairing, sessions, messaging or encryption changed. What changed is how the app feels under your fingers. - **Smoother animation everywhere.** Overlays, the drawer, the keyboard hand-off, list edits and the swipe carousel all animate on the same motion curves instead of snapping or fighting each other. - **The Messages list now matches the session list** — same layout, same attention dots, so "something needs you" reads the same way on both sides.
    More…
    - **You can see when an agent is working.** A working indicator shows while a session is busy, instead of leaving you staring at a silent transcript. - **Connection status in plain language.** No more cryptic states — the app says what it knows, and when it is reconnecting it tells you so honestly instead of pretending everything is fine. - **Uploads show real progress bars**, on both the session and DM side. - **Destructive actions get an undo countdown** — a moment to catch a slip before it becomes permanent. - **Haptic feedback** on the interactions that deserve it, including pull-to-refresh arming under your finger. If your device asks for reduced motion, the app respects it fully: every animation above parks or crossfades instead of moving.
  • Aug 10, 2026 0.9.5
    CodeDeck Next 0.9.5 — you can tell your conversations apart again. **The Messages list was a column of anonymous letter circles.** Every tile in the sidebar's conversation list showed a coloured circle with one letter and nothing else — no name, no message preview, no timestamp. Picking the right chat meant remembering which circle was which, or opening them one at a time. The text was there the whole time; a stylesheet rule stacked each tile vertically, centred the avatar over it, and squeezed the row down until the name and preview were pushed out of the tile and hidden behind the next one.
    More…
    Tiles are now what they always should have been: avatar on the left, the person's name and the last message beside it, the time (and unread count) on the right. Long names truncate cleanly instead of shoving anything off the row, and a list long enough to scroll now scrolls instead of squashing every tile. Three smaller improvements came along with it: - **A peer whose profile has not loaded shows a readable `npub1…` in mono type** rather than a bare letter, so an unnamed contact is still identifiable — and still tells you at a glance that it is a key, not a display name. - **Marmot group chats are labelled by the group's own name** (or its member count), instead of borrowing a single member's identity. The tile and the open chat now always agree on what a conversation is called. - **The MLS / NIP-17 tag only appears when your list actually mixes both.** On a list where every chat is the same kind, five identical tags were just taking width away from the names. The chat header still states the protocol. Nothing about messaging, encryption, sessions or pairing changed — this release is the conversation list's appearance only.
  • Aug 10, 2026 0.9.4
    CodeDeck Next 0.9.4 — Marmot chats can now find the people you want to talk to. One fix, but it is the difference between a feature that works and one that looks broken. **Marmot (MLS) chats reach White Noise and other MDK peers now.** Starting a Marmot chat needs the other side's published KeyPackage, and Marmot peers put theirs on Marmot relays — not on the general-purpose relays CodeDeck shipped with. So "Start Marmot chat" answered *"Peer has no published Marmot KeyPackage"* for peers whose KeyPackage had been live the whole time, on relays
    More…
    the app never dialled. Measured against a real peer: zero KeyPackages on the three relays CodeDeck shipped with, and current ones on both whitenoise relays. `wss://relay.us.whitenoise.chat` and `wss://relay.eu.whitenoise.chat` are now in the default relay list, alongside the transport relays. Nothing else changes: sessions, transcripts and NIP-17 DMs keep running on the relays they already used, and these two carry only Marmot traffic (they are kind-restricted relays and simply decline everything else). If you never touched Settings → Relays, updating adds them for you. If you did customise your relay list, it is left exactly as you set it — add either relay by hand to get the same result.
  • Aug 10, 2026 0.9.3
    CodeDeck Next 0.9.3 — the first release that has actually been used on a phone. 0.9.0 shipped unverified. Since then the app has been run on real hardware across several device sessions, and most of this release is what those sessions found. 127 commits since 0.9.0. **The app now looks like the original CodeDeck again.** One screen: sessions grouped by machine in a sidebar, DMs in their own section (inline when there's room, a drawer when there isn't). Swipe to delete with a 4-second undo, unread dots with an audible ping, and a session carousel you can swipe between.
    More…
    New in this release: - **Custom AI providers.** A session can run on Kimi K3, OpenRouter, or any Anthropic-compatible endpoint instead of Anthropic. Profiles are managed on the phone and stored by the bridge in its keychain; the token never travels over the wire and never reaches a log. The provider is fixed when the session is created, and a session whose profile was deleted fails loudly rather than silently falling back to Anthropic and billing you for it. - **Model shown in the session header again**, and the bridge now actually knows which model a session is on. - **Image attachments work.** Sending an image failed with "Failed to read file" on every Android build — the WebView hands back a `content://` URI that the old read path could not open. Uploads are also cancellable now, and a stalled read reports an error instead of wedging the composer permanently. Fixed, and worth naming because they were data-losing or misleading: - **Your own messages could vanish.** The bridge acknowledged a message before any transcript entry existed for it, and the echo travelled on an ephemeral event — so if that one event dropped, the message was simply gone from your screen. Sent messages now stay visible until the transcript genuinely contains them. - **"Connected" could be a lie.** The relay pool closed its own subscriptions on an internal 20-second idle timer, leaving the app inbound-dead while the status chip still read connected and outgoing messages still worked. Only backgrounding and re-opening the app healed it. - **Text got clipped while typing** on narrow screens, at any UI scale. - **Unfolding a foldable mid-session no longer inflates the text**, and headings, tables, code blocks, quotes and nested lists are all styled. - The default relay fallback is now `nostr.oxtr.dev`. The previous candidate passed every cold probe and then demanded proof-of-work under live load, which is the worst possible behaviour for a default. Security: - A session bound to a custom provider can no longer inherit the operator's cloud backend, credentials or custom headers from the environment. Before this fix a Kimi session could be silently billed to an operator's AWS account, and gateway credentials could be forwarded to a third-party endpoint. Provider endpoints must be https (loopback http is allowed, for local models), enforced at the point of use. Still true from 0.9.0 — please read: - This is a **new Android app** (`com.codedeck.next`) that installs alongside the old CodeDeck. Nothing is migrated: fresh pairing is required, and old history and settings do not carry over. - **You need a v10 bridge** on the machine running Claude Code — the VSCode extension, or the headless CLI for a laptop or VPS. Install either from its GitHub releases page: github.com/JeroenOnNostr/codedeck-next-bridge-vscode github.com/JeroenOnNostr/codedeck-next-bridge The old bridge will not pair with this app. - **This exact binary has not been device-verified.** 0.9.2 was tested on a Pixel 9 Pro Fold; ten commits landed after that run, so treat 0.9.3 as a pre-release and keep a way back. The full suite (1445 tests) passes. - The listing still has no screenshots. They are owed from a real device. The source is now public: https://github.com/JeroenOnNostr/codedeck-next-mobile
  • Aug 7, 2026 0.9.0
    CodeDeck Next 0.9.0 — first release of the rebuilt app. This is a complete rebuild on protocol v10, not an update to the existing CodeDeck app. It ships as a new Android app (`com.codedeck.next`) and installs **alongside** the old one — nothing is overwritten or migrated. What that means for you: - **Fresh pairing is required.** Old pairings, session history and settings do not carry over. Scan the QR from the new app against a v10 bridge.
    More…
    - **You need the new bridge**, which only speaks v10: the `codedeck-bridge-vscode` extension, or the headless CLI (`npx @codedeck/bridge`) for a laptop or VPS. - The old app and old bridge keep working side by side during the transition. In this release: - Multiple concurrent Claude Code sessions, switchable from one app - Plan approval, permission cards and AskUserQuestion prompts on the phone - Ranged transcript sync — history survives restarts, offline gaps, reinstalls - Per-session model selection and effort levels - Encrypted Nostr DMs: NIP-17 and Marmot (MLS) side by side - Project/folder management on every bridge host, including VPS - Auto and manual UI scale, phone through tablet Known limitations — please read: - **This build has not yet been verified on a physical device.** It is a 0.9.0 pre-release of the 1.0 cutover: the test suite and a laptop soak rig pass, but the on-device verification pass is still outstanding. Treat it as a pre-release and keep the old app installed until you have confirmed the new one works for you. - No screenshots on the listing yet — they are owed from a real device. - The source repository is not published yet, so the listing carries no source link. It will be added once the repo is public.