Repository navigation
Releases: getdroppen/droppen
Release list
Droppen v0.2.135
Droppen v0.2.135: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.135-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.135-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.135-macos-universal.tar.gz |
either Mac |
droppen-v0.2.135-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.135-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.135-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.135-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh serves this file once Droppen Hub is built from this release) |
SHA256SUMS-server, SHA256SUMS-server.sig |
the tarballs' checksums and their signature by the release key install.sh pins, which it checks before it installs anything |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.135.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.135 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/fd7c13c6899ff3583d08923666f0ca36e32b9ff9.
Copyright (C) 2026 Kilerd
Built from commit fd7c13c6899ff3583d08923666f0ca36e32b9ff9 (server 0.2.135+gfd7c13c).
Droppen App for macOS
Droppen-0.2.135.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127 to 0.2.134 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. 0.2.133 and 0.2.134 freeze after an update check that finds nothing newer (see below), but not after one that finds this release, so they update the same way. If yours is frozen now, force-quit it (Option-Command-Esc) and open it again: its check about 15 seconds later finds this release. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.135.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127 至 0.2.134 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.133 和 0.2.134 在检查更新、发现没有新版本后会卡死(见下文),但发现这个版本时不会,所以同样会正常更新。如果你的 App 现在已经卡住,请强制退出(Option-Command-Esc)后重新打开:约 15 秒后的那次检查就会找到这个版本。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.135
The desktop app no longer freezes
- Droppen 0.2.133 and 0.2.134 froze after checking for updates. Whenever a check found the app up to date (about 15 seconds after every launch, and at any later check), the app stopped responding and could not be quit, only force-quit. This release fixes it. It also fixes a rarer hang, when the app's server exited just as Try again was restarting it.
- Updates never travel over plain http. The app's update checks and downloads, and its reads of the release notes, refuse a redirect to an
http://address. The first address was already checked to be https, but a redirect from it was followed wherever it led. An update's signature already refused a changed archive; now neither the update manifest nor the archive travels unencrypted. A refused redirect, or too many of them, shows as Update Service Unavailable, not as no network. - The app's updater is now tauri-plugin-updater 2.14.1, which checks an update's signature once more as it installs it (the app has already checked it just before).
- Dependency updates clear three security advisories, none of which reached what Droppen ships:
zip, which the updater uses only on Windows and the macOS app never included; a second copy ofkatex, which the web app never included; andvite, whose advisory concerns its development server only.
Old environment names no longer work
- The server reads only the
DROPPEN_*names. As v0.2.134 announced, the server no longer reads its pre-rename environment names. If a launchd plist, a systemd unit or a shell profile still sets one, set theDROPPEN_*name with the same value instead. OnlyREMOTE_HAND_DATA_DIRandREMOTE_HAND_CONFIG_DIRare still mentioned, once each at start when set without their new name, because ignoring them in silence would move the server to the default install's files. The names no longer read, by group:- Files and configuration:
REMOTE_HAND_DATA_DIR,REMOTE_HAND_CONFIG_DIR,REMOTE_HAND_CLAUDE_LOCAL_ROOT,REMOTE_HAND_CLAUDE_MANAGED_ROOT,REMOTE_HAND_SHIM_BIN. - Push and notifications:
REMOTE_HAND_PUSH_CONTACT,RH_PUSH_ALLOW_INSECURE_ENDPOINT,RH_NOTIFY_ALLOW_INSECURE_ENDPOINT. - Requests and recordings:
RH_ALLOWED_ORIGINS,RH_SESSION_LOG,RH_SESSION_LOG_MAX_MB. - Running the CLIs and accounts:
RH_IDLE_TIMEOUT_MS,RH_STALL_MS,RH_INTERRUPT_STEP_MS,RH_WATCHDOG_INTERVAL_MS,RH_AWAIT_BACKGROUND_MS,RH_RESIDENT_IDLE_MS,RH_STEER_SETTLE_MS,RH_TASK_ROOT,RH_ROTATE_AHEAD_PERCENT,RH_USAGE_FALLBACK_MS. - The cloud agent and the hub it signs in to:
RH_HUB_DEFAULT,RH_HUB_API_TRAFFIC,RH_AGENT_CONTROL,RH_AGENT_LINK,RH_AGENT_DIRECT,RH_AGENT_DIRECT_STUN,RH_AGENT_RELAYS,RH_AGENT_RELAY_INSECURE,RH_AGENT_MIGRATE_WITHIN_SECS,RH_AGENT_STATUS_CLI,RH_AGENT_SYNC_DAYS,RH_AGENT_SYNC_EXTERNAL,RH_AGENT_COMPACT_RECORDS,RH_AGENT_COMPACT_EVERY_SECS,RH_AGENT_COMPACT_IDLE_SECS,RH_AGENT_COMPACT_OLDEST_SECS. - Names Droppen sets for the programs it starts:
RH_SUPERVISED,RH_DESKTOP_APP,RH_NOTIFY_URL,RH_NOTIFY_TOKEN. The server thatdroppen upor the desktop app runs, a session'sdroppen-notify, and the command Droppen shows for a second install get only theDROPPEN_*names.
- Files and configuration:
- The relay reads only the
DROPPEN_RELAY_*names. As v0.2.134 announced, the relay no longer readsRH_RELAY_HUB,RH_RELAY_ORIGIN,RH_RELAY_KEY,RH_RELAY_STATE_DIR,RH_RELAY_REGISTRATION_TOKEN,RH_RELAY_ID,RH_RELAY_TICKET_KEYS,RH_RELAY_BIND,RH_RELAY_TRUST_PROXY,RH_RELAY_MAX_CONNSorRH_RELAY_DRAIN_SECS, and says nothing about them. A relay still configured under them stops at start withDROPPEN_RELAY_ORIGIN is required: set eachDROPPEN_RELAY_*name with the same value. Move the key first: a relay that starts with its key only inRH_RELAY_KEYfinds no key, makes a new one in its state directory, and so becomes a new relay. (The relay no longer readsRH_HUB_API_TRAFFICeither: the hub-API traffic capture isDROPPEN_HUB_API_TRAFFIConly.)
ACP agents
- A terminal an agent kills takes all its processes with it. On macOS, a process the terminal's shell was starting at the moment of the kill could survive it, keep the terminal open, and hold up the agent until that process ended. Droppen now signals the terminal's processes again until none is alive, for at most a second, so
terminal/killandterminal/releaseanswer once they are gone, a few milliseconds later than before. The same goes for the terminals of an agent whose process ends. - A failed session says why at once. When a session on an ACP agent fails, the line saying why is in its transcript by the time the session shows as failed. Before, the session could already show as failed while that line was not yet written.
- For authors of ACP agents: the client uses the protocol's official schema. What Droppen sends an agent, and its answers to the agent's requests, are now built with the official
agent-client-protocol-schemacrate (1.13). An agent that follows the specification reads them as before, and what an agent says is read as before. What changes on the wire:initialize'sclientCapabilitiescarry"auth":{"terminal":false}, the specification's default for a client that offers no terminal login.session/loadsends the same members in another order.- A request from the agent whose id is a boolean, an object or an array is not run, and is answered
{"jsonrpc":"2.0","id":null,"error":{"code":-32600,"message":"Invalid request"}}, as JSON-RPC 2.0 asks. One whose id is a string, a number (a fraction or a very large integer included) ornullis ...
Droppen v0.2.134
Droppen v0.2.134: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.134-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.134-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.134-macos-universal.tar.gz |
either Mac |
droppen-v0.2.134-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.134-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.134-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.134-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh serves this file once Droppen Hub is built from this release) |
SHA256SUMS-server, SHA256SUMS-server.sig |
the tarballs' checksums and their signature by the release key install.sh pins, which it checks before it installs anything |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.134.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.134 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/366c56349cd11b5eb68ee694d639d02c3ed5547b.
Copyright (C) 2026 Kilerd
Built from commit 366c56349cd11b5eb68ee694d639d02c3ed5547b (server 0.2.134+g366c563).
Droppen App for macOS
Droppen-0.2.134.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127 to 0.2.133 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.134.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127 至 0.2.133 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.134
Sessions on ACP agents
- A session can run on any agent that speaks ACP. Besides Claude Code and Codex, a new session can start on any program that speaks the Agent Client Protocol over stdio, and you can set up several. The new session's agent chip lists Claude Code, Codex and your ACP agents, and the model and effort pickers offer what that agent offers. Messages sent while the agent is busy wait in a queue you can see and take back; ⏹ stops the turn. Each session records the agent it started on and is always resumed with it.
- Settings → Agents & accounts. The accounts page is now Agents & accounts, with three tabs: Claude Code and Codex keep their accounts as before, and ACP has one card per agent. Add one from a preset (Bub or OpenCode; the card says whether its command is on the PATH) or give any command line, with its arguments and extra environment variables, of which only the names are ever shown back. Check starts the agent, sends
initialize, reads what it says it can do and stops it; nothing reaches a model. A details dialog shows what the check found and, to a device that manages the computer, why it failed. A tab's label carries an amber or red mark and a count when something there needs you, and links to the old page still open it. - An agent that fails stays in view. In the new-session picker an agent whose last check failed is red, and can still be picked; a red notice then links to its details. Editing an agent's command, arguments or environment restarts its sessions' processes: an idle one at once, a busy one after its turn. Removing an agent keeps its sessions listed and readable; they continue once an agent with the same id is added again.
- Not yet. Steering a running turn, scheduled tasks and instant chats do not run on ACP agents, and sessions started in other clients are not listed. The agent runs under the server: a server restart cuts a running turn short (what it streamed is kept), and the next message reopens the session. An idle agent exits after 30 minutes. The agent can run commands and read or write files through Droppen, as the user it runs as; Droppen declines its permission requests.
Reading a session
- Math is typeset.
$…$and\(…\)inline,$$…$$and\[…\]displayed, in session and instant-chat messages. Code stays as written, and so do prices and shell variables ($5 and $10,$HOME). Click a formula to copy its TeX. Settings → General → message rendering → LaTeX math switches between rendered (the default) and source, the text as it was shown before. - Mermaid diagrams are drawn. A
```mermaidblock becomes the flowchart or sequence diagram it describes, at its natural size, and scrolls sideways when it is wider than the message; each diagram has its own control to show its source. Mermaid diagrams, in the same group, switches them all between rendered (the default) and source. A diagram is shown as a picture, so links and styles inside it cannot reach the page. - Subagents under their session. Turn on subagent tree in Settings → General (it is off by default), and a session that delegated work lists its subagents beneath it in the sidebar, folded, nested ones a level further in, each with its status, name, role and unread mark. A Claude subagent opens on a page of its own that leads back to its parent; a Codex subagent opens as a read-only session that says whose subagent it is. Forked or continued conversations are not subagents.
Plugins, installed on the computer
- Plugins are installed into an instance while it runs. Settings → Plugins → Install from file… takes a plugin's
.tgzand asks first, because a plugin runs inside the page with no sandbox, signed in as you, terminals included.droppen plugin install <file.tgz>anddroppen plugin uninstall <id>do the same from a shell. Uninstalling keeps the plugin's documents for a later install. A plugin is served to the computer's own pages only: pages from droppen.app never load, list or see one. - A plugin this version cannot run is named, not dropped. One you switched on that does not work with this version of Droppen keeps its rail entry with a warning; its page says why and what to do, and Settings → Plugins shows the problem. Switching it off puts it away.
- Plugins are no longer built into the web app (
distribution.json,DROPPEN_DISTRIBUTION): install them at runtime instead.
Faster first loads
- The local server compresses the web app. Its own files go out with brotli or gzip, whichever the browser takes, at about a quarter to a third of their size. API answers, feeds and terminals are sent as they are.
- The first page loads only what it needs. The computer's own pages no longer load the code only droppen.app's pages use, and on both, the translations of languages you do not read and the views other than the session list load when they are first needed. The first frame is in your language: the page waits up to three seconds for its translations, then draws in English and switches when they arrive. Offline, the app keeps the languages you read.
- The other views are fetched ahead. Once the first page is drawn, the other views' files are fetched in the background, one view at a time while the page is idle, so opening one later does not wait on the network; on droppen.app this starts from My devices too. Nothing is fetched ahead when the browser asks to save data or the connection is 2G or slower.
- A page whose files a newer release replaced reloads itself once; if it still cannot load, it says the page could not be loaded, with retry and reload.
Also new
- A lifted dark theme. The dark theme's background is a cool graphite instead of near-black, and the light theme's text is the same graphite, so the two themes are each other's inverse.
- On My devices, a tall card (an open renewal panel or warning) no longer stretches the card beside it.
- On droppen.app, server updated — reload when convenient no longer shows on every load, where reloading ...
Droppen v0.2.133
Droppen v0.2.133: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.133-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.133-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.133-macos-universal.tar.gz |
either Mac |
droppen-v0.2.133-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.133-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.133-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.133-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh serves this file once Droppen Hub is built from this release) |
SHA256SUMS-server, SHA256SUMS-server.sig |
the tarballs' checksums and their signature by the release key install.sh pins, which it checks before it installs anything |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.133.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.133 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/e718867ff79d67810dbc450dca1d3ff560a09a0f.
Copyright (C) 2026 Kilerd
Built from commit e718867ff79d67810dbc450dca1d3ff560a09a0f (server 0.2.133+ge718867).
Droppen App for macOS
Droppen-0.2.133.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127 to 0.2.132 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.133.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127 至 0.2.132 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.133
Updating Droppen
- An Updates page says what changed, and one control says there is something to do. The rail's bordered restart chip is now a small arrow with the version beside the health dot and the theme toggle: it shows while an update downloads, while one is ready, or when a check failed, and it never restarts Droppen by itself. Clicking it opens
/updates: the version you are on, its release notes in your language first (the other one a click away), and the one action, restart. Settings → General has one line, such as Droppen 0.2.132 · up to date ›, that opens the same page. - The page says where an update stands. Checking, downloading with a percentage, ready, up to date, or what failed, in plain words; a copy that cannot update itself says so. Later hides the rail mark until the next version — the update still installs when you next quit — and check now sits on the page. When you are up to date it shows what changed in the version you are on.
The cloud pages
- Denser, quieter pages. A 28–32px title, section heads with a small mono index, 14/13/12 text, and space plus one rule per section where boxy hairlines used to be. Cloud content stops at about 1200px.
- My devices leads with a summary. The header reads N devices · N offline · N need you, and usage leads with one sentence and five numbers that reflow to the container's width. Each device row is a fixed 56px beat — icon, name, status dot and word, one action, then ⋯ — with ids, fingerprints, paths, last seen, renewal and warnings in a disclosure inside the row. Pending and removed devices are compact rows of their own, the removed list is one muted line with a count, and an empty list is one sentence and one action.
- A wide window turns the device list into cards. From a 44rem container up, the list becomes a grid of cards (tracks of at least 20rem, 12px gaps); one or two devices stay 20rem wide instead of stretching. Below that the 56px row is unchanged. Hover no longer paints the whole row grey: the card's frame darkens, the name underlines, and the action's border darkens.
- One checkbox and one switch. Every checkbox the browser used to draw — on the devices, account, link, renewal, schedule and compatibility screens — is now one 14px ink square (16px where you touch it, a 2px focus ring), and settings uses the same 24×14 switch as the rest of the app. Radio groups keep the browser's own behaviour.
- Settings and select menus share their measurements. One settings column at 48rem, a label/control grid from 36rem up, rows of 44px or 56px; selects open the menu sheet's own measurements (a 32px trigger, 40px on phones, the chevron turning, a checked row raised with a check mark), and a 2px ink outline marks focus everywhere. The device picker follows the same rules.
- The hub address shown when you sign a computer in elsewhere is now
https://api.droppen.app. App, site and download links still usemy.andwww., and the install command is unchanged.
Moving to api.droppen.app
- New installs join
wss://api.droppen.app. The installer, the local server a new install starts, and the peer probe all default to it; the install command itself is stillhttps://droppen.app/install.sh. The apex stays as a temporary machine address so installs enrolled before the move keep working, and any hub you set yourself still wins. - Installs enrolled before the move move themselves. At start an agent that still has the apex in its state makes one pre-flight sign-in to
wss://api.droppen.appand keeps the new origin only if the canonical hub welcomes the machine, within ten seconds. A hub that cannot be reached, or refuses the machine, leaves the enrolled origin alone, and nothing else changes: same machine, same account, same chain. - Pages served from Cloudflare now call the machine API on
api.cross-origin; they used to name relay hosts that do not answer yet, which closed every relay connection a page opened.
Waking, and relays that stop answering
- A phone that slept gets its connections back at once. On waking, a page pings and demands an answer within two seconds: the hub link reconnects immediately, relay and feed sockets whose peer does not answer are replaced, and one that answers is kept. Before, dead sockets looked open and the page could wait up to 25 seconds for the hub and 60 for a relay or feed.
- A relay path whose peer went quiet no longer sits frozen. An unanswered probe for two intervals (10 seconds) closes the channel and wakes the carrier, so the next channel opens on a live route, instead of waiting for the 60-second silence with the indicator stuck around 20005 ms. Probes skipped because the page's timers were held are forgotten rather than aged, so unlocking a phone no longer rebuilds a healthy channel; a Wi-Fi ↔ cellular change now wakes the page like a resume.
VS Code needs code-server
- Opening VS Code without code-server says so. The + → VS Code on a device without code-server used to fail with a bare 409 shown only as a tooltip on the +; the server now checks PATH first and the app opens a dialog: VS Code runs in code-server, which Droppen does not install — install it (for example into
~/.local/bin), click again, and no restart is needed. The dialog links code-server's install guide, in English, both Chinese scripts and Japanese; the tooltip reads VS Code needs code-server. The READMEs list code-server as an optional prerequisite, and note that~/.local/binis on the PATH of the installer's service and the desktop app's server.
v0.2.133 更新内容
更新 Droppen
- 「更新」页会说明改了什么,一个控件告诉你该做什么。 侧边栏以前那个带边框的「重启」小块,换成了健康点与主题开关旁边的一个小箭头加版本号:更新下载中、已就绪、或检查失败时才出现,而且它自己绝不会重启 Droppen。点它打开
/updates:当前版本、这个版本的更新内容(先显示你的语言,另一种点一下就切),以及唯一的动作「重启」。设置 → 通用里多了一行,比如「Droppen 0.2.132 · 已是最新 ›」,点开也是这一页。 - 这一页会说更新到了哪一步。 检查中、下载中(带百分比)、已就绪、已是最新、或者出了什么问题,都用平常的话写清;自己不能更新的副本也会说明。「以后再说」会隐藏侧边栏的标记,直到下一个版本——更新仍会在你下次退出时安装——「立即检查」就在这一页。已是最新时,它显示当前版本改了什么。
云端页面
- 页面更紧凑、更安静。 标题 28–32px,小节标题带一个小的等宽编号,正文 14/13/12;以前那些方框线换成了留白,每节只有一条分隔线。云端内容宽度停在 1200px 左...
Droppen v0.2.132
Droppen v0.2.132: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.132-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.132-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.132-macos-universal.tar.gz |
either Mac |
droppen-v0.2.132-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.132-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.132-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.132-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh serves this file once Droppen Hub is built from this release) |
SHA256SUMS-server, SHA256SUMS-server.sig |
the tarballs' checksums and their signature by the release key install.sh pins, which it checks before it installs anything |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.132.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.132 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/d8db58e4f962bf8727f1284525e4b8b25239f40c.
Copyright (C) 2026 Kilerd
Built from commit d8db58e4f962bf8727f1284525e4b8b25239f40c (server 0.2.132+gd8db58e).
Droppen App for macOS
Droppen-0.2.132.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127 to 0.2.131 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.132.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127 至 0.2.131 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.132
Connecting the device your AI runs on
- My devices shows how to connect it. While your account has no device that runs AI, my devices shows a card, Connect the device your AI runs on, made for the device the page is open on, where there used to be one line of text. It starts with what that device needs: Claude Code or Codex, installed and signed in.
- On a Mac: Download Droppen for Mac, with its version and size, then three steps: install it, open it, and Sign in to Droppen in the App.
- On Linux, a Chromebook included (turn Linux on first): the install command, with copy command, and a one-time code for a device with no browser, such as a server.
- On Windows, which has no app yet: your AI needs a Mac or a Linux device with Droppen on it. WSL works too, with systemd turned on; the card links Microsoft's how-to.
- On a phone or tablet: the download page's address, to share link or copy link to the device your AI runs on.
- When a device that runs AI joins, the card gives way to a short confirmation, with open. Until then, this device's own settings (direct connections, relays, the standby relay) and key rotation are folded under more settings, below the list.
- droppen.app says that the App signs itself in, and where. The download page's App tab now ends with "Click Sign in to Droppen in the app", and says where it is: the App opens a short setup guide, four steps; in its step 02 (Where to use it), choose "On my phone and other devices too", then Sign in to Droppen (later: Settings → Access → Droppen). It used to say that signing in from the App was coming in an update. The add-a-device guide now starts a Mac with the App's download.
- The one-time code shows the time it has left. In the add-a-device guide, the one-time code, for a Linux server or any device with no browser, shows how long it has left ("The code expires in 9:42.") and asks you to keep the page open, since the page adds the device once the command runs there. When it runs out, the command gives way to "This code has expired." and new code. A device that used the code in time is still added.
- Bring it over is offered on the sign-in tab only: a new account has nothing to bring over.
install.sh's summary names the button in English, "Sign in to Droppen", where it named the Chinese one.
Your devices
- droppen.app shows each device's system and Droppen version. A device that runs AI shows its system as it reports it, such as
macOS 15.3.1 aarch64orubuntu 24.04 x86_64, and the version of Droppen it runs, in my devices. droppen.app used to show onlymacOS. A device with an older Droppen shows what it showed before. - A veto shows what it removes before it removes anything. When this browser holds back a device's early self-activation, remove it and what it brought in now opens a confirmation that lists what goes: the held device, then each device brought in with it, who brought it in and whether it runs AI, and whether the account's recovery words stop working.
- A separate choice, off by default, also removes the devices your other devices added while this browser held the activation back, and what those added. Leave it off if you added them yourself.
- The veto holds to what you confirmed. If the account's device list moves on after you looked, or another activation is held back meanwhile, it signs nothing and asks you to look again; and a hold that ends while the veto is under way no longer changes what it removes.
Downloads and privacy
- Downloads from droppen.app are counted, and nothing is kept about who downloads. Where droppen.app names its own download link for a file (
/dl/<platform>), the download buttons go through it: it adds one to that day's count for that download, then sends you on to the file on GitHub. Otherwise they link the file on GitHub, as before. No IP address, browser data or cookie is kept: the address and the network a download came from stay in memory for an hour at most, only to keep one source from inflating the counts. droppen.app/privacy has a new section, "If you download Droppen", that says so, and droppen.app'srobots.txtasks crawlers to stay out of/dl/. - Rate limits forget every address within a day. A relay counts requests per address only to limit them. It now forgets an address once its limits have filled up again, and a day after its last request at the latest; a quiet relay used to keep one until its table filled up or it restarted. Droppen Hub follows the same rule for its own counts. The privacy notice now says that requests are counted per address and per network, in memory, for a day at most. If you run a relay, build its image again from v0.2.132 (README, "Running a relay").
v0.2.132 更新内容
连接跑 AI 的那台设备
- 「我的设备」会告诉你怎么连接它。 账户里还没有可运行 AI 的设备时,「我的设备」会显示一张卡片「连接跑 AI 的那台设备」,按打开页面的这台设备来写,取代以前的一行文字。卡片先说明那台设备需要什么:装好并登录了 Claude Code 或 Codex。
- 在 Mac 上:「下载 Mac 版 Droppen」,标着版本和大小,然后是三步:安装、打开,在 App 里「登录 Droppen」。
- 在 Linux 上(包括 Chromebook,先打开 Linux):安装命令和「复制命令」,以及给没有浏览器的设备(比如服务器)用的注册码。
- 在还没有 App 的 Windows 上:你的 AI 需要一台装了 Droppen 的 Mac 或 Linux 设备。WSL 也可以,但要打开 systemd;卡片链接到微软的说明。
- 在手机或平板上:下载页的地址,可以「分享链接」或「复制链接」到跑 AI 的那台设备。
- 有可运行 AI 的设备加入后,卡片会换成一条简短的确认,并带「打开」。在此之前,这台设备自己的设置(直连、中继、备用中继)和钥匙轮换都收在列表下方的「更多设置」里。
- droppen.app 写明 App 可以自己登录,以及在哪里登录。 下载页的 App 一栏现在最后一步是「在 App 里点“登录 Droppen”」,并写明它在哪里:App 会打开一个四步的设置向导;在向导第 02 步「在哪里用」选「在手机和其它设备上也能用」,再点「登录 Droppen」(之后也可以在「设置 → 访问 → Droppen」里找到)。以前它写的是从 App 登录要等以后的更新。添加设备的向导现在在 Mac 上先给出 App 的下载。
- 注册码会显示剩余时间。 在添加设备的向导里,给 Linux 服务器或任何没有浏览器的设备用的注册码,现在会显示还剩多久(「注册码有效期还剩 9:42。」),并提醒你保持页面打开:命令在那台设备上运行后,由这个页面完成添加。过期后,命令会换成「这个注册码已过期。」和「换个新注册码」。在有效期内用了注册码的设备,仍会被添加。
- 「迁移过来」只在登录一栏里提供:新账户没有什么可迁移的。
install.sh的英文总结里,现在写的是英文按钮名「Sign in to Droppen」,而不是中文的。
你的设备
- droppen.app 显示每台设备的系统和 Droppen 版本。 可运行 AI 的设备,在「我的设备」里会显示它自己报告的系统,比如
macOS 15.3.1 aarch64或ubuntu 24.04 x86_64,以及它运行的 Droppen 版本。以前 droppen.app 只显示macOS。运行旧版 Droppen 的设备,显示的内容和以前一样。 - 否决之前,先列出会移除什么。 当这个浏览器暂缓了某台设备过早的自行激活时,「移除它及它带进来的一切」现在会先打开一个确认,列出会移除的设备:被暂缓的设备,然后是随它带进来的每台设备,谁把它带进来,它是否可运行 AI,以及账...
Droppen v0.2.131
Droppen v0.2.131: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.131-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.131-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.131-macos-universal.tar.gz |
either Mac |
droppen-v0.2.131-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.131-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.131-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.131-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh serves this file once Droppen Hub is built from this release) |
SHA256SUMS-server, SHA256SUMS-server.sig |
the tarballs' checksums and their signature by the release key install.sh pins, which it checks before it installs anything |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.131.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.131 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/c467150c0e2a21318324fcaab0c98d72bccd7b43.
Copyright (C) 2026 Kilerd
Built from commit c467150c0e2a21318324fcaab0c98d72bccd7b43 (server 0.2.131+gc467150).
Droppen App for macOS
Droppen-0.2.131.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127, 0.2.128, 0.2.129 and 0.2.130 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.131.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127、0.2.128、0.2.129 和 0.2.130 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.131
Signing up
- When droppen.app's sign-up is closed, its pages say so. The public pages follow the Hub's sign-up mode (v0.2.130). When sign-up is closed, the home, download and pricing pages now say "Sign-up is closed for now" and offer the waitlist, for Free or for Pro, instead of the invite wording: you are e-mailed when sign-up opens, or when Pro does. Open and invite-only sign-up look as in v0.2.130, and droppen.app's sign-up is open.
- If the sign-up form could not find out how sign-up works and droppen.app then asks for an invite code, the form asks again, so the invite code field shows as required rather than "(optional)".
- The privacy notice's waitlist section says that it keeps the plan you are waiting for, and that your address is used only to e-mail you an invite, or to tell you when sign-up or Pro opens.
- New accounts start on the current device list format only. Every app since 0.2.125 creates them so. droppen.app now refuses to create an account on the older format, which only a page or app from before 0.2.125 would do, and tells it to reload or update. Accounts made on the older format carry on as before.
Installing
- droppen.app/install.sh is the installer itself, not a redirect. droppen.app now serves the
install.shof the release it was built from, byte for byte that release's file, where it used to redirect to the latest release's file on GitHub. Its sha256 isinstall_shinhttps://droppen.app/.well-known/droppen-build. It installs the latest release (orDROPPEN_VERSION) as before. - The release page's list of files now names
SHA256SUMS-serverandSHA256SUMS-server.sig: the checksumsinstall.shgoes by, and their signature by the release key it pins. Every release since v0.2.130 has both.
The local server
- A page that stops reading no longer holds up the local server. The live feeds of a session and of the session list now give up a connection when a message to it has not gone out within 90 seconds, as when a phone loses its network in the middle of a long history, and close it within 2 seconds. Before, such a connection could stay attached for good, and a restart or upgrade of the server waited for it. A page that is reading is not affected.
v0.2.131 更新内容
注册
- droppen.app 暂停注册时,页面会如实说明。 公开页面跟随 Hub 的注册方式(v0.2.130 起)。暂停注册时,首页、下载页和价格页现在会写「目前暂停注册」,并提供免费版或 Pro 的等候名单,而不再显示邀请的说法:开放注册或 Pro 开卖时,我们会发邮件通知你。开放注册和仅限邀请注册时的页面与 v0.2.130 相同;droppen.app 目前开放注册。
- 如果注册表单没能得知注册方式,而 droppen.app 随后要求邀请码,表单会再问一次,这样邀请码一栏会标为必填,而不是「(可选)」。
- 隐私说明里关于等候名单的一节写明:会保存你在等的方案;你的邮箱只用来给你发邀请,或在开放注册、Pro 开放时通知你。
- 新账户只使用当前的设备列表格式。 0.2.125 以来的每个版本都这样创建账户。droppen.app 现在拒绝用旧格式创建账户(只有 0.2.125 之前的页面或 App 才会这样做),并提示它刷新或更新。用旧格式创建的账户照常使用。
安装
- droppen.app/install.sh 就是安装脚本本身,而不是跳转。 droppen.app 现在直接提供它所构建自的那个版本的
install.sh,与那个版本的文件逐字节一致;以前它跳转到 GitHub 上最新版本的文件。它的 sha256 是https://droppen.app/.well-known/droppen-build里的install_sh。它和以前一样安装最新版本(或DROPPEN_VERSION指定的版本)。 - 发布页的文件列表现在列出了
SHA256SUMS-server和SHA256SUMS-server.sig:install.sh所依据的校验和,以及它所固定的发布密钥对校验和的签名。v0.2.130 以来的每个版本都有这两个文件。
本地服务端
- 停止读取的页面不会再拖住本地服务端。 会话和会话列表的实时推送,现在如果一条消息 90 秒内还发不出去(比如手机在加载很长的历史时断了网),就会放弃这个连接,并在 2 秒内关闭它。以前这样的连接可能一直挂着,服务端重启或升级时也要等它。正常读取的页面不受影响。
Droppen v0.2.130
Droppen v0.2.130: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.130-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.130-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.130-macos-universal.tar.gz |
either Mac |
droppen-v0.2.130-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.130-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.130-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.130-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh redirects to the latest release's) |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.130.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.130 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/7c48eca11db2dba023ac1050df489eb470d674ab.
Copyright (C) 2026 Kilerd
Built from commit 7c48eca11db2dba023ac1050df489eb470d674ab (server 0.2.130+g7c48eca).
Droppen App for macOS
Droppen-0.2.130.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127, 0.2.128 and 0.2.129 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.130.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127、0.2.128 和 0.2.129 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.130
Signing up
- droppen.app's pages say sign-up is open, and the waitlist is for Pro. droppen.app takes sign-ups without an invite (you verify your e-mail address), so its home, pricing and download pages no longer call Droppen invite-only: the Free plan's button signs you up, and the sign-up form keeps an invite code as an optional field (have an invite code?). Pro is not on sale yet, so the waitlist on the pricing page is now for Pro only. The pages follow the Hub's sign-up mode: a Hub that signs up by invite only still shows the invite wording and the waitlist for both plans.
The local server answers only to its own names
- Reaching the local server through a reverse proxy, a tunnel or a name of your own now needs
DROPPEN_ALLOWED_HOSTS. The local server now answers only requests addressed to an IP address,localhost, a local-network name (mymac,*.local,*.lan,*.home.arpa,*.internal) or a tailnet's*.ts.net. If you reach it through a reverse proxy or tunnel under another name (Caddy, Traefik, a Cloudflare Tunnel), add that name toDROPPEN_ALLOWED_HOSTS(comma-separated;*accepts any name). - It also answers to the name it is set to listen on (
APP_SERVER__HOST) and to the hosts inDROPPEN_ALLOWED_ORIGINS. A request addressed to any other name gets403, with a message that namesDROPPEN_ALLOWED_HOSTS. The desktop app, the local page athttp://127.0.0.1:<port>, thedroppencommand,install.shandtailscale serveneed nothing. - When droppen.app adds a device from its local page, a
*.lanaddress now counts as a local network address too: a tick, not the typed host name a public address asks for.
Installing, and checking what droppen.app serves
install.shchecks a signature over the server's checksums. Before it trusts a checksum, it checksSHA256SUMS-serveragainst its signature with the release key pinned in the script, so the files it installs are the ones the release build made, wherever they were downloaded from. It usesopenssl, which macOS and almost every Linux already have. A signature that does not check out is never accepted.- Releases before v0.2.130 have no such signature. To install one of them, use that release's own installer:
curl -fsSL https://github.com/getdroppen/droppen/releases/download/<tag>/install.sh | DROPPEN_VERSION=<tag> sh; or setDROPPEN_ALLOW_UNSIGNED=1, which goes by the release'sSHA256SUMSalone. The same setting installs on a system withoutopenssl. install.shdownloads over https only.DROPPEN_RELEASE_BASEmust be anhttps://address, or plainhttp://on this device (127.0.0.1,localhost,[::1]) for a test server. Any other address is refused before anything is downloaded; it used to be a warning.scripts/verify-web.mjschecks a site against the latest release by default, and requires a Content-Security-Policy. Without--release, a site whose build matches only an earlier release fails (--allow-olderaccepts it and says so), and a site that does not say which build it serves is compared with the latest release file by file. A page fails without aContent-Security-Policywhoseframe-ancestorsandobject-srcallow only'none'or'self'; droppen.app's passes. Right after a release, until droppen.app serves it, the default check fails: use--allow-olderor--release(docs/web-integrity.md).
Your account's keys in the browser
- Older content keys move into the sealed vault on every device. Browsers that ran Droppen's earliest builds kept the content keys of the devices that run AI in an older, unsealed form. Only full devices moved them out; now limited devices do too, into their own key vault, sealed with the browser's own key. Each key is taken only if it is exactly the one your account's device chain recorded, and the old copy is deleted only once the sealed copy reads back. When this browser deletes an account's keys (Sign out and remove this browser, or a deleted account), these go too, also when the page cannot open the account.
- A dispute from another tab counts once this page has checked it. When an identity key renewal is disputed, the device it concerns is isolated. A dispute another tab of this browser passes on now counts in this page once this page has checked its signature itself; one about a renewal this page has not loaded yet keeps the device isolated until the page catches up and checks it.
- No pairing while an activation is held back. When a device that came back with the recovery words, or joined with a passkey, activates itself sooner than this device allows, this device holds the activation back and signs nothing but the veto until you approve or remove that device. It now also pairs no device meanwhile, not even one already in the list whose keys never arrived: it first catches up with the account, then says "approve it or remove it first", and the pairing confirmation shows that note and cannot be confirmed. Once you approve or remove the device, pairing works as before.
- Only an active device can raise the alarm that the account's device list has branched. A device that runs AI alarms every device of the account when a device's view of that list conflicts with its own. A device that was removed, or whose join is still waiting, now gets the same refusal as any device the account does not let in, and no alarm; your active devices raise it as before. This is a change in the device that runs AI; your browsers and phones need nothing.
Relays
- A relay keeps each account's devices that run AI apart. A device that runs AI signing in again replaces only its own account's earlier connection, and its online status goes to its own account's devices only.
- A relay refuses tickets that run longer than 15 minutes, or are dated more than 5 minutes ahead of its own clock. droppen.app's tickets run 15 minutes, so nothing changes for you.
- Both are changes to the relay program,
droppen-relay: a relay has them once it runs this release. If you run a relay, build its image again from v0.2.130 (README, "Running a relay").
Also new
- droppen.app and the app follow your languages. They now take the first language in your browser's list of preferred languages (in the desktop app, mac...
Droppen v0.2.129
Droppen v0.2.129: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.129-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.129-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.129-macos-universal.tar.gz |
either Mac |
droppen-v0.2.129-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.129-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.129-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.129-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh redirects to the latest release's) |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.129.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.129 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/a9b410abf8f20fb7f21eb3c34dc2c680345bd246.
Copyright (C) 2026 Kilerd
Built from commit a9b410abf8f20fb7f21eb3c34dc2c680345bd246 (server 0.2.129+ga9b410a).
Droppen App for macOS
Droppen-0.2.129.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127 and 0.2.128 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.129.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127 和 0.2.128 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.129
Your account
- You can delete your account in its settings. Account settings has a new last section, on a full device of the account; other devices say that only a full device can do it. It first says what deleting means: everything the account keeps at Droppen is erased for good (the encrypted copies of your sessions and terminals, its keys, its devices and its ways to sign in), every device of the account stops working at once, and the e-mail address cannot sign up again for a few days (7 at droppen.app). To delete, type the account's e-mail address and confirm with your password or a passkey. This browser then forgets the account's keys and offline copies at once; your other browsers and phones forget theirs as soon as droppen.app tells them the account is gone.
- Sign out, or sign out and remove this browser. Signing out used to end the session only: the browser kept its device keys. Every sign-out now offers two choices. Sign out is for a device of your own: the browser stays one of your account's devices, and signing in again opens it as before. Sign out and remove this browser is for a shared or borrowed device: the browser takes itself off your account's devices and deletes its keys here. Where it cannot take itself off (only a full device can; the account's last full device stays, and so does one whose removal would void the recovery words or passkeys it set up), its keys are still deleted here, and it says what is left to do, such as removing it in my devices on another full device. Deleting the keys of the account's last full device asks you twice. Either way, this browser's offline copies are cleared, and it now also stops getting notifications.
- Terms of service, and a fuller privacy notice. droppen.app/terms is new, in English, Chinese and Japanese: what the hosted service at droppen.app covers (the code itself is under its licence), what it asks of you, the Free plan, the beta, leaving and suspension, the law that applies, and that you must be 16 or older. The footer of every public page links it, and the sign-up form says that signing up accepts it. droppen.app/privacy now names the providers behind droppen.app and says how long things are kept: the encrypted copies of your sessions for 7 days on Free and 30 on Pro, an account that never verified its e-mail address and never added a device for 7 days, and copies in backups and logs expire within 30 days. A new section says what deleting your account erases, and the little that is kept for a while.
Getting the app
- Download the app straight from droppen.app, for the device you are on. The home page and the download page now download the latest release's file directly, with its version and size beside it. On a Mac, Download for Mac gets the DMG (Apple silicon and Intel); on Linux the install command comes first, then the tarball for your processor; on Windows, which has no app yet, and on phones, the page shows how to use Droppen in the browser. The page tells which device it is on by itself, without a request. droppen.app checks the latest release's file names and addresses before it offers them; where it cannot, the buttons open the release page on GitHub as before.
The page's offline copy
- The offline copy of the page is checked against its build. The service worker that keeps the page's files for offline use, at droppen.app and on the local page, now carries the SHA-256 of every file of its build, and keeps and serves only files that match: a cached file that does not match is deleted and downloaded again, and a download that does not match is refused. Before, it served whatever its cache held, so a file tampered with once could keep running after later releases. Offline, it opens only its own build's page, with security headers it sets itself. Files of earlier builds are no longer kept: a tab still open on an earlier build loads the parts it has not loaded yet from the network, and may need a reload once droppen.app has moved on.
- Stray service workers are retired. A service worker registered at another address of the site (one malicious page load could do it) used to stay, since every update of it failed. The local server, and droppen.app, now answer it with a worker that deletes the site's caches and unregisters itself.
Other security fixes
- Adding a device at a public internet address asks you to type its name. When a device's local page asks droppen.app to add it from a public address, you now type its host name before the device can be added: a page pretending to be a device's settings is more likely there than a device of your own. Private and local network addresses still need only a tick.
- A tap on a notification opens only a page of the site it came from.
- The note a browser keeps that it has signed in to an account before is now filed under a hash of the e-mail address, not under the address itself.
- droppen.app/.well-known/security.txt says how to report a security problem.
- The server and the desktop app use updated TLS libraries (rustls 0.23.46, rustls-webpki 0.103.16, webpki-roots and webpki-root-certs 1.0.10), which fix the published advisories RUSTSEC-2026-0346 to 0349 and 0381 to 0383; the web app's seroval is 1.7.1.
Reconnecting
- A page back from sleep finds its relay again. After a phone or laptop slept, or was offline for a long time, droppen.app could stay on "connecting…" with "no relay available: live features are unavailable for now", although your device that runs AI was online, and it never recovered by itself. It now reconnects as soon as the page comes back, waits for the device's current status before it chooses a relay instead of going by what it heard before the pause, and tries again the relays it gave up on earlier. While it can still reach the device, it says "connecting…" rather than "no relay available".
Coming next
- Groundwork for moving the web app to my.droppen.app, with the public pages at www.droppen.app: not switched on yet.
v0.2.129 更新内容
你的账户
- 可以在账户设置里删除账户。 账户设置的最后多了一节,只在账户的完整设备上可用;其它设备会说明只有完整设备才能删除。它先说明删除意味着什么:账户在 Droppen 保存的一切都会被永久抹去(会话和终端的加密副本、钥匙、设备和登录方式),账户里的每台设备都会立即停止工作,这个邮箱几天内不能再用来注册(droppen.app 上是 7 天)。删除时,请输入账户的邮箱地址,并用密码或通行密钥确认。随后这个浏览器会立即清除账户的钥匙和离线副本;你的其它浏览器和手机,一旦 droppen.app 告诉它们账户已不存在,也会清除自己的。
-...
Droppen v0.2.128
Droppen v0.2.128: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.128-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.128-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.128-macos-universal.tar.gz |
either Mac |
droppen-v0.2.128-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.128-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.128-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.128-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh redirects to the latest release's) |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.128.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.128 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/e9c785337ca6ef63eefa656b1b6e155db1bf5777.
Copyright (C) 2026 Kilerd
Built from commit e9c785337ca6ef63eefa656b1b6e155db1bf5777 (server 0.2.128+ge9c7853).
Droppen App for macOS
Droppen-0.2.128.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.127 updates itself to this release: it downloads it in the background and installs it the next time you quit, or at once with Restart to Update. Droppen 0.2.125 and 0.2.126 update themselves in two steps: first to 0.2.127, which https://github.com/getdroppen/releases (where they look for updates, now archived) still offers, then from 0.2.127 to this release. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.128.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.127 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。0.2.125 和 0.2.126 会分两步自动更新:先更新到 0.2.127(它们检查更新的 https://github.com/getdroppen/releases 已归档,但仍提供 0.2.127),再从 0.2.127 更新到这个版本。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.128
Renewing a device's identity key, in testing
- A renewal that cannot start says whose confirmation it waits for. A device that runs AI renews its identity key only once another of your full devices has confirmed the account's latest change; the confirmation of the page that asks counts only when it is the account's only full device. Choosing the renewal setting is such a change, so in an account with two full devices the first renewal failed, with "found no recent word on its chain head". It now says "it waits for another of your full devices to confirm the account's latest change: open Droppen on …, then try again", and names those devices.
- The device's other reasons for refusing get messages of their own: it is still catching up with the account's latest changes (Droppen tries again by itself); it sees the account's devices differently from what your full devices confirmed, so nothing was changed (Droppen does not try again: look at Droppen on that device itself); or it takes no control from this device now (open Droppen on another of your full devices and try again, or renew it from there). Its row in My devices gives these reasons in the page's language (English, Chinese or Japanese), not in English only.
- Reloading the page during a renewal no longer leaves it stuck. Only the page that asked for a renewal can check the device's answer, and that page kept what it needed in its memory only. If it was reloaded, closed or crashed in the renewal's window of about two minutes, nobody could finish the renewal: other pages showed it as "renewing its identity key…", and only ten minutes after the window did a page withdraw it and start again. The asking page now keeps the attempt in this browser, sealed with the browser's own key as its other keys are (the renewal's one-time key is never kept), and the next page of the same browser finishes it: it checks the device's answer again and writes it, or, if the answer had not been checked yet, withdraws the attempt at once and asks again. Another tab of the same browser that is still on it is left alone.
- A renewal left by a page of another browser, or by a browser without Web Locks, is still withdrawn ten minutes after its window and started again, and now on time: an open page of any of your full devices wakes for it by itself instead of waiting for something else to happen on the page.
- droppen.app/security says renewal is switched on, in testing. Its section on renewing identity keys said renewal was not live yet. It now says Droppen Hub at droppen.app has switched it on for early testing, and what a test there showed; the other places on the page that called it "not live" say "in testing".
How releases are made
- Releases now need a single approval and are built faster, and pull requests from outside the project run CI only after an automated security review of the change.
v0.2.128 更新内容
更换设备身份密钥(测试中)
- 无法开始的更换,会说明在等谁的确认。 可运行 AI 的设备只有在你的另一台完整设备确认过账户的最新变更后,才会更换身份密钥;发起更换的页面自己的确认,只在它是账户唯一的完整设备时才算数。选择更换设置本身就是这样一次变更,所以在有两台完整设备的账户里,第一次更换会失败,提示「found no recent word on its chain head」。现在它会说「它在等你的另一台完整设备确认账户的最新变更:请在 … 上打开 Droppen,然后重试」,并列出这些设备。
- 设备拒绝更换的其它原因也各有说明:它还在同步账户的最新变更(Droppen 会自己重试);它看到的账户设备与你的完整设备确认的不一致,所以没有做任何更改(Droppen 不会重试:请在那台设备本身查看 Droppen);或者它现在不接受这台设备的控制(请在你的另一台完整设备上打开 Droppen 再试,或直接从那台设备更换)。「我的设备」里它的那一行会用页面的语言(英文、中文或日文)说明这些原因,而不是只用英文。
- 更换期间刷新页面,不会再让更换卡住。 只有发起更换的页面能核对设备的回答,而它所需的东西只存在自己的内存里。如果这个页面在大约两分钟的更换窗口内被刷新、关闭或崩溃,就没有谁能完成这次更换:其它页面显示「正在更换身份密钥…」,要到窗口关上十分钟后,才会有页面撤回它并重新开始。现在发起的页面会把这次尝试保存在本浏览器里,像浏览器的其它钥匙一样用它自己的钥匙封存(这次更换的一次性钥匙从不保存),由同一浏览器的下一个页面完成:它再次核对设备的回答并写下;如果回答还没核对过,就立即撤回这次尝试并重新发起。同一浏览器里仍在处理它的另一个标签页不会被打扰。
- 由另一个浏览器的页面、或不支持 Web Locks 的浏览器留下的更换,仍在窗口关上十分钟后撤回并重新开始,而且现在会准时:你任何一台完整设备上打开着的页面会自己醒来处理,而不是等页面上发生别的事情。
- droppen.app/security 写明更换功能已打开,处于测试中。 页面上讲身份密钥更换的一节以前写的是尚未启用。现在写明 Droppen Hub 已在 droppen.app 上把它打开,供早期测试使用,以及在那里测试的结果;页面上其它说它「尚未启用」的地方都改成了「测试中」。
发布方式
- 现在发布一个版本只需批准一次,构建也更快;来自项目外部的拉取请求,要先通过一次自动安全审查,才会运行 CI。
Droppen v0.2.127
Droppen v0.2.127: the server for macOS (Apple silicon and Intel) and Linux.
On a Mac, the Droppen desktop App (Droppen-<version>.dmg, when it is attached
to a release) is the recommended way for everyday use. The files below are the
server, for running Droppen in the background or on a device with no screen.
Install or upgrade it, and add the device to your account with a one-time code
(on droppen.app: my devices → add a device that runs AI → show a one-time code):
curl -fsSL https://droppen.app/install.sh | DROPPEN_CODE=<code> sh
Or download the tarball for your device, check it against SHA256SUMS
(shasum -a 256 -c --ignore-missing SHA256SUMS, or sha256sum -c --ignore-missing SHA256SUMS),
and follow INSTALL.txt. The server is droppen; remote-hand-server is the
same program under its old name, which the installed service keeps.
| file | for |
|---|---|
droppen-v0.2.127-macos-aarch64.tar.gz |
Apple silicon |
droppen-v0.2.127-macos-x86_64.tar.gz |
Intel Mac |
droppen-v0.2.127-macos-universal.tar.gz |
either Mac |
droppen-v0.2.127-linux-x86_64.tar.gz |
Linux x86_64, glibc 2.28+ |
droppen-v0.2.127-linux-aarch64.tar.gz |
Linux aarch64, glibc 2.28+ |
remote-hand-v0.2.127-macos-{aarch64,x86_64,universal}.tar.gz and remote-hand-v0.2.127-linux-{x86_64,aarch64}.tar.gz |
the same server under its old name only, for older copies of the installer (on every release until at least 2027-01-31) |
install.sh |
the installer above (https://droppen.app/install.sh redirects to the latest release's) |
INSTALL-macos.txt, INSTALL-linux.txt |
installing by hand (each tarball has its own INSTALL.txt) |
LICENSE |
Droppen's licence: AGPL-3.0-only |
THIRD_PARTY_NOTICES |
the third-party software in the server, with its licences |
web-manifest.json |
the embedded web app's files and digest |
droppen-v0.2.127.sigstore.json, web-manifest.sigstore.json |
the build provenance attestations: every file here was built by this repository's release workflow from the commit below. Check one with gh attestation verify <file> --repo getdroppen/droppen --signer-workflow getdroppen/droppen/.github/workflows/release.yml --source-ref refs/tags/v0.2.127 |
Droppen is licensed under AGPL-3.0-only. The source of this release is
https://github.com/getdroppen/droppen/tree/1349cb4440bbbaa158b05590aaac70d50b0fb252.
Copyright (C) 2026 Kilerd
Built from commit 1349cb4440bbbaa158b05590aaac70d50b0fb252 (server 0.2.127+g1349cb4).
Droppen App for macOS
Droppen-0.2.127.dmg — the desktop app (Apple silicon and Intel), signed with Developer ID and notarised by Apple. It needs macOS 13 or later. Open the DMG, drag Droppen to Applications, open it.
Droppen 0.2.125 and 0.2.126 update themselves to this release: they download it in the background and install it the next time you quit, or at once with Restart to Update. From this release on, releases are published at https://github.com/getdroppen/droppen/releases, and the app looks for its updates there. Version 0.2.124 and older do not update themselves: download this DMG once and replace the app in Applications.
macOS 版 Droppen App
Droppen-0.2.127.dmg 是桌面 App(Apple 芯片和 Intel 芯片的 Mac 都能用),使用 Developer ID 签名并经过 Apple 公证,需要 macOS 13 或更高版本。打开 DMG,把 Droppen 拖到「应用程序」,然后打开它。
0.2.125 和 0.2.126 会自动更新到这个版本:在后台下载,并在你下次退出时安装;也可以用「重启以更新」立即安装。从这个版本起,新版本发布在 https://github.com/getdroppen/droppen/releases,App 也到那里检查更新。0.2.124 及更早的版本不会自动更新:请手动下载一次这个 DMG,替换「应用程序」里的 Droppen。
What's new in v0.2.127
How releases are made
-
Built, signed and published by GitHub Actions, from the public source. This is the first release made entirely by this repository's release workflow, on GitHub's runners: the server for every platform and the desktop app were built there, and the app was signed with Developer ID and notarised by Apple there too. Nothing was built or signed on anyone's own computer. Every file of the release has a build provenance attestation: a statement, signed through Sigstore and recorded by GitHub, that this repository's release workflow made exactly that file for this tag. With the GitHub CLI (logged in), check a file you downloaded, for example:
gh attestation verify droppen-v0.2.127-macos-aarch64.tar.gz --repo getdroppen/droppen \ --signer-workflow getdroppen/droppen/.github/workflows/release.yml \ --source-ref refs/tags/v0.2.127
SHA256SUMSis attested too, so checking it once and then the files against it (shasum -a 256 -c --ignore-missing SHA256SUMS) is the same. More in Verifying a download. -
Releases have moved here from getdroppen/releases. The releases up to v0.2.126 stay there, and this one is also published there once, for the apps that still look for their updates there. The install command,
curl -fsSL https://droppen.app/install.sh | sh, keeps working: https://droppen.app/install.sh now redirects to the installer of this repository's latest release.
Web app (droppen.app and the page on your device)
- A browser that cannot run Droppen's encryption is told so. A browser without WebCrypto's Ed25519 or X25519, such as an older Chromium on an Android phone, signed in to droppen.app and then showed "this browser could not open its device keys", with a try again that could never work. droppen.app now checks the browser first, before it reads or makes any key. It says what is missing and which browsers are new enough, and in a browser built into an app (WeChat, QQ, Alipay, Douyin, Weibo, or an Android web view) it suggests opening the page in the system browser.
- Compatibility mode, for a browser that lacks only Ed25519, X25519 or both: the same keys and the same encryption, with those two done in JavaScript (the noble-curves library). The screen explains the choice and says what it changes: while the page is open, this device's private keys are plain bytes in the page's memory instead of keys the browser holds; the JavaScript arithmetic is not hardened against side channels as the browser's own is; and one more library runs in the page. Nothing is made until you tick I understand the risk and press trust this browser. The choice is kept for this browser only, which then shows "compatibility mode" in the bar and on its row in My devices. Tap that label to read what it means, or to stop using compatibility mode: the device keys stay stored, and the page asks again before it uses them. droppen.app/security describes it too.
- droppen.app/security explains itself. Point at, focus or tap any part of a formula: a short card says what it is, why it is there, what makes it and what takes it, and who can know it, and the same value lights up in every formula on the page. A card can be pinned, and View as (your device, the other device, Droppen Hub, a relay) hatches every value that party cannot know. The page now starts by defining the two kinds of device it speaks of, devices that run AI and your browsers and phones, and every later mention shows that definition the same way. Long enumerations are now lists with their key terms in bold, and the repository paths it names link to the source on GitHub.
- When you start a new session, files pasted or attached just after you press Send could still count the attachments that had just been sent, leaving less room than the 20 a message can carry. They now count only what is still in the box.
Devices that run AI (the server droppen, and the one inside the Droppen App)
- Closing a terminal now tells every pane still showing it. Each one, on any of your devices, shows
[process exited]. Before, a pane could miss that note and freeze on a terminal that was already gone. - More terminal fixes:
- A pane that opens a terminal while it is printing gets that output exactly once: it could lose some, or show some twice.
- A pane that cannot keep up with a terminal's output is cut off cleanly and shows
[client too slow], instead of a reset connection that lost the note. One that stops reading altogether is let go after 90 seconds, instead of holding on to the terminal's connection for good. A burst of output after the computer was busy for a moment no longer cuts off one that keeps up. - Closing a terminal whose shell had just exited no longer sends any signal. It used to signal the process ids the shell had, which by then could belong to other programs.
- A relay ticket that Droppen Hub revoked is replaced at once. The device kept trying the revoked ticket and asked for a new one only as it neared its expiry, so it could stay off its relays for up to ten minutes. It now asks Droppen Hub for a fresh ticket straight away.
- The server holds the lock on its instance for as long as its process runs. If serving stopped on an error, the lock could go while the rest of the process still ran, and a second server could then start on the same instance.
Renewing a device's identity key, in testing
- A device's identity key can now be renewed without enrolling the device again, while this is tested. The 0.2.126 notes said renewal stayed switched off. Droppen Hub has since switched it on for early testing: the switch is the hub's, not part of this release. In My devices, a device that runs AI has renew identity key in its ⋯ menu. The account's setting Always confirm on the device when renewing an identity key decides whether each renewal waits for the code that device shows, or a device renews on its own once a device that could control it is removed. Until someone chooses, none renews on its own.
- Fixes found in that testing:
- Notifications from a renewed device keep coming: the page follows the device's new notification key, and the device no longer hands out its old one while it makes the new one.
- A device that cannot save its state as it takes its new key takes the key o...
v0.2.126
What's Changed
- ci: run green in the private org repo by @Kilerd in #2
- ci: add an LLM security review on pull requests by @Kilerd in #3
- feat(web): add droppen.app/security: how the end-to-end encryption works by @Kilerd in #4
- feat(proto): a retired identity key's signed dispute of the renewal that retired it by @Kilerd in #5
- fix(web): keep the chain seen-record in IndexedDB so read-compare-write is atomic across tabs by @Kilerd in #11
- feat(proto): the account's renewal policy (SetRenewalPolicy) and the renewal pause overlay (RenewalPause) by @Kilerd in #6
- test(web): give the new-session page up to 10 s to show what it waits for by @Kilerd in #26
- docs(hub-api): document identity key renewals by @Kilerd in #23
- feat(agent): renew this device's identity key on request by @Kilerd in #24
- feat(web): renew identity keys automatically instead of asking to re-enroll by @Kilerd in #25
- docs(hub-api): an isolated host's agent connection, tickets the hub cannot check, and a pause's end by @Kilerd in #27
- docs: pre-public cleanup (plan quotas, dangling references) by @Kilerd in #22
- chore: pre-public gaps: web and CI-tarball notices, verify-web bundle lookup, relay docs by @Kilerd in #28
- fix(agent): attach to relays through a fake-ip proxy by @Kilerd in #30
- chore: release v0.2.126 by @Kilerd in #31
Full Changelog: v0.2.125...v0.2.126
What's Changed
- ci: run green in the private org repo by @Kilerd in #2
- ci: add an LLM security review on pull requests by @Kilerd in #3
- feat(web): add droppen.app/security: how the end-to-end encryption works by @Kilerd in #4
- feat(proto): a retired identity key's signed dispute of the renewal that retired it by @Kilerd in #5
- fix(web): keep the chain seen-record in IndexedDB so read-compare-write is atomic across tabs by @Kilerd in #11
- feat(proto): the account's renewal policy (SetRenewalPolicy) and the renewal pause overlay (RenewalPause) by @Kilerd in #6
- test(web): give the new-session page up to 10 s to show what it waits for by @Kilerd in #26
- docs(hub-api): document identity key renewals by @Kilerd in #23
- feat(agent): renew this device's identity key on request by @Kilerd in #24
- feat(web): renew identity keys automatically instead of asking to re-enroll by @Kilerd in #25
- docs(hub-api): an isolated host's agent connection, tickets the hub cannot check, and a pause's end by @Kilerd in #27
- docs: pre-public cleanup (plan quotas, dangling references) by @Kilerd in #22
- chore: pre-public gaps: web and CI-tarball notices, verify-web bundle lookup, relay docs by @Kilerd in #28
- fix(agent): attach to relays through a fake-ip proxy by @Kilerd in #30
- chore: release v0.2.126 by @Kilerd in #31
Full Changelog: v0.2.125...v0.2.126