# Release Overview



A curated record of changes across Pear and its modules, newest first. Entries are grouped by module, and every **Breaking** item links to migration guidance. For the raw upstream record, see each module's GitHub releases; this page is the docs-team view of what the changes mean for your application. To publish release notes for *your own* app instead, ship a `CHANGELOG.md`—see [Publish a changelog for your app](/pear/how-to/operate-an-app/publish-a-changelog).

## 2026-10-15 — Pear 3.6.0 [#2026-10-15--pear-360]

Pear 3.6.0 is a feature release on top of Pear 3.5.0. It removes no command or flag, but five changes can affect an existing script. Unknown-argument errors have new wording. `pear build` now fails when it is given no artifact flag, and an artifact with the wrong name prints an `ERR_INVALID_APP_NAME` message without a stack trace. `pear install` exits with code 1 when an install fails, where it exited 0. The human-readable output of eight commands wraps pear links in color codes on macOS and Linux. Two commands add a field to their human-readable output: `pear info` gains a `writable` row between `productName` and `length`, which shifts every row after it, and under `--no-tty` the `pear seed` network line now ends with `, uptime <time>`. `--json` carries both values, as `writable` and `uptime`. The rest is visibility. `pear build` reports what it builds, in plain text and as `--json` events a script can check, `pear info` shows whether this machine can write to a link, and `pear seed` reports its uptime. A long-running `pear seed` stays current across releases, and the CLI accepts quoted links and leaves your terminal clean when you interrupt a prompt.

### pear (CLI) — v3.6.0 [#pear-cli--v360]

* Added: [`pear build`](/pear/reference/pear/cli#pear-build) prints the app, version, and target, then one `+ <file> (origin: <source>)` line for each artifact it places, and `Build complete!`. It printed nothing on success before. With `--json` it emits `building` (`name`, `version`, `target`), one `executable` (`file`, `origin`) per artifact, and `final`. An `executable` event has no architecture field, so a script reads the `by-arch/<arch>` segment of `file`. See [Preflight a release before staging](/pear/how-to/operate-an-app/manual-deployment/preflight-a-release).
* Added: [`pear info`](/pear/reference/pear/cli#pear-info) reports [`writable`](/pear/reference/pear/cli#pear-info-writable)—whether this machine's corestore holds the key pair for the link—as a row between `productName` and `length` and as a field of the `--json` `info` object. It describes stage and provision links, and it does not prove a stage will succeed.
* Added: [`pear seed`](/pear/reference/pear/cli#pear-seed) reports how long the session has been running. The live view gains an `Uptime:` row between `Whoami:` and `Network:`, and under `--no-tty` the network line ends with `, uptime <time>`, as in `uptime 3m 12s`. The `--json` `stats` object gains `uptime`, in milliseconds.
* Added: [link arguments](/pear/reference/pear/cli#quoted-links) may be wrapped in one pair of matching single or double quotes, which Pear strips before it parses the link. `npm pkg get` prints a quoted JSON string, so its output can go straight into a Pear command, as in `pear stage $(npm pkg get upgrade)`. Earlier releases reject a quoted link with `A valid pear link must be specified.`
* Changed: [`pear seed`](/pear/reference/pear/cli#pear-seed) re-reads `package.json` whenever the drive grows or is truncated, so the `App:` row and the `--json` `stats` fields `name` and `semver` follow a release without restarting the seeder. They were read once at startup before.
* Changed: an unknown command or argument fails with `✖ Unexpected argument  '<value>'`, with two spaces before the quote, where it failed with `✖ Unrecognized Argument at index <n> with value <value>`. A script that matches the old text should match both.
* Changed: [`pear build`](/pear/reference/pear/cli#pear-build) reports an artifact that is not named after `productName`, `name`, or a `bin` entry as `ERR_INVALID_APP_NAME`, and prints only its message. It printed a stack trace before.
* Changed: the human-readable output of `pear build`, `pear cores`, `pear dump`, `pear gc`, `pear info`, `pear provision`, `pear stage`, and `pear versions` prints pear links in green, and some counts, sizes, and completion messages too. On macOS and Linux Pear writes the color codes when output is piped or redirected, and `NO_COLOR` does not turn them off, so `pear info <link>` through a pipe now has escape codes around the link. Windows and `--json` output carry none. See [Scripting with `--json`](/pear/reference/pear/cli#json-output).
* Changed: [`pear sidecar`](/pear/reference/pear/cli#pear-sidecar) and `pear sidecar shutdown` wait until the old sidecar has released `pear.lock` in the platform directory before they print `Sidecar has shutdown`.
* Fixed: Ctrl+C at a typed confirmation prompt (`STAGE` in `pear stage`, `CLEAR` in `pear gc cores`) restores the terminal. It could leave the terminal unresponsive or in raw mode before.

### pear-build — v1.3.2, v1.3.1 [#pear-build--v132-v131]

* Added (v1.3.1): a `building` event, which `pear build`'s new output is built on. A missing artifact path throws `ERR_NOT_FOUND` (`<path> does not exist`) where it threw a plain error.
* Changed (v1.3.2): [`--package`](/pear/reference/pear/cli#pear-build) defaults to `./package.json`, so running `pear build` without it no longer prints the command's help. A build with no artifact flag fails with `at least one app build must be specified` where it created an empty deployment directory.

### pear-install — v1.4.0 [#pear-install--v140]

* Changed: [`pear install`](/pear/reference/pear/cli#pear-install) exits with code 1 when the install fails, which includes a `--json` run whose `final` object has `success: false`.
* Changed: when the app's drive has `by-arch/` folders but none for this machine, the `Not found:` error ends with `Target platform <arch> was not found in application drive.` and an `Available:` line that lists the platforms it does have.

### Internal — deps bump [#internal--deps-bump]

`hyperdb` v6.10.0, `hyperbee2` v2.18.0, `hypercore-storage` v3.3.2, `bare-worker` v4.5.3, and the new `protomux-request` v0.1.0, which `blind-peer-muxer` v1.7.0 builds on. No documented surface changes in these. `autobase` is no longer in the lockfile.

<Callout type="info">
  Pear 3.6.0 also bundles newer Hypercore, HyperDHT, Hyperswarm, Hyperdrive, Corestore, Compact-encoding, Protomux, Hyperschema, blind-peering, and blind-peer releases—see [P2P's release overview](/p2p/release-overview)—and its executable embeds Bare v1.35.0, up from v1.29.4, and bundles bare-type v1.4.0—see [Bare's release overview](/bare/release-overview). `pear versions` prints the embedded version on its `bare:` line. An application pins its own copies of these modules in its `package.json`, so upgrading Pear does not change them in your app—upgrade those dependencies directly to pick the changes up.
</Callout>

## 2026-09-22 — Pear 3.5.0 [#2026-09-22--pear-350]

Pear 3.5.0 is a feature release on top of Pear 3.4.0. One command is renamed: `pear blind-peer identity` is gone, replaced by the new `pear identity` command, which prints all four of this machine's network keys instead of just the one. The rest is `pear seed` reporting—a `Verlink` row in place of `Drive Key`, and block-level sync progress for both the drive and its blobs. Among the bundled modules, Hyperschema 1.23.0 changes how bool arrays are encoded, which matters to any app that regenerates its schemas—see [P2P's release overview](/p2p/release-overview).

### pear (CLI) — v3.5.0 [#pear-cli--v350]

* Added: [`pear identity`](/pear/reference/pear/cli#pear-identity)—`seed`, `blind-relay`, `blind-peer`, and `blind-peer-client` each print one of this machine's local network public keys. The key goes to stdout and the [next-step hint](/pear/reference/pear/cli#next-step-hints) to stderr, so `KEY=$(pear identity seed)` captures the key alone. See [Look up this machine's network keys](/pear/how-to/look-up-network-keys).
* Added: [`pear seed`](/pear/reference/pear/cli#pear-seed)'s stats gain a `Verlink:` row—the full versioned `pear://<fork>.<length>.<key>` form of the drive being seeded.
* Added: [`pear seed`](/pear/reference/pear/cli#pear-seed)'s stats gain a `Blobs Length:` row, and both it and `Drive Length:` now report synced blocks and a percentage (`12/40 [ 30%]`) rather than a bare total. `--json` `stats` gains `driveSynced`, `blobsSynced`, `blobsLength`, and `driveFork`.
* **Breaking:** `pear blind-peer identity` removed—use [`pear identity blind-peer-client`](/pear/how-to/look-up-network-keys#authorize-this-machine-with-a-blind-peer), which prints the same key. Scripts calling the old form now fail with `✖ Unrecognized Argument at index 0 with value identity`. `pear blind-peer` keeps `start` and `request`.
* Changed: [`pear seed`](/pear/reference/pear/cli#pear-seed)'s stats drop the `Drive Key:` row in favour of `Verlink:`. The key is the verlink's last segment, and `--json` still reports `driveKey` unchanged.
* Changed: under `--no-tty`, `pear seed` prints `... verlink <verlink>` where it printed `... drive key <key>`, and `... drive length` gains the sync suffix (`3 [ 100% ]`). A script reading those lines should switch to `--json`, whose `stats` fields are unchanged apart from the additions above.
* Changed: [`pear blind-peer start`](/pear/reference/pear/cli#pear-blind-peer) inherits the bundled blind-peer v3.15.0's longer default notification timeout—30 seconds, up from 10—since the CLI does not set `notificationTimeout`. It sets none of the other blind-peer or blind-peering options that changed, so [`pear seed --blind-peer`](/pear/reference/pear/cli#pear-seed) is unaffected, and trust handling—announce downgrades and refusing deletes from untrusted peers—is unchanged.
* Fixed: [`pear cores`](/pear/reference/pear/cli#pear-cores) writes its table straight to stdout instead of through `console.log`, which mangled the rules and `✔` marks into mojibake on Windows.

### Internal — deps bump [#internal--deps-bump-1]

`hyperbee2` v2.14.1, `autobase` v7.28.2, `pear-ipc` v6.16.0. No documented surface changes in these.

<Callout type="info">
  Pear 3.5.0 also bundles newer Hypercore, HyperDHT, Hyperswarm, Compact-encoding, Corestore, Protomux, Secretstream, Hyperschema, blind-peering, and blind-peer releases—see [P2P's release overview](/p2p/release-overview)—and its executable embeds Bare v1.29.4 and bundles bare-type v1.1.1—see [Bare's release overview](/bare/release-overview). `pear versions` prints the embedded version on its `bare:` line. An application pins its own copies of these modules in its `package.json`, so upgrading Pear does not change them in your app—upgrade those dependencies directly to pick the changes up.
</Callout>

## 2026-09-10 — Pear 3.4.0 [#2026-09-10--pear-340]

Pear 3.4.0 is a feature release on top of Pear 3.3.0. Nothing in it is breaking, but one change affects existing project layouts: `pear stage` no longer searches parent directories for a `package.json`, so a project staged from a subdirectory of its real root now needs `--skip-package-json` or `<dir>` pointed at the root. Otherwise the release adds blind peers and blind relays as native CLI commands, gives `pear seed` and `pear cores` more informative output, and moves next-step hints to stderr.

### pear (CLI) — v3.4.0 [#pear-cli--v340]

* Added: [`pear blind-peer`](/pear/reference/pear/cli#pear-blind-peer)—`start [--trusted-peer <peer>]` runs a blind peer server natively, `identity` prints this machine's key for an operator to authorize, and `request <key> --peer <peer>` asks a blind peer to seed something on demand. See [Availability and blind peering](/pear/explanation/availability-and-blind-peering).
* Added: [`pear blind-relay start`](/pear/reference/pear/cli#pear-blind-relay) and the global [`--relay <key>`](/pear/reference/pear/cli#relay-flag) flag—run a relay for peers that cannot hole-punch directly, and route a command's connections through one. See [Peer-to-peer, demystified](/p2p/explanation/peer-to-peer-demystified#hole-punching-and-nat-traversal).
* Added: [`pear seed --blind-peer <key>`](/pear/reference/pear/cli#pear-seed) registers the drive being seeded with a blind peer in one flag, without wiring the `blind-peering` client directly.
* Added: [`pear stage --skip-package-json`](/pear/reference/pear/cli#pear-stage) stages a folder without a `package.json`.
* Changed: [`pear stage`](/pear/reference/pear/cli#pear-stage) no longer searches parent directories for a `package.json`—only `<dir>` itself is checked. Interactively it now prompts for typed `STAGE` confirmation when none is found; under `--json` or a non-interactive shell it fails immediately with `ERR_INVALID_PROJECT_DIR` instead.
* Changed: [`pear cores`](/pear/reference/pear/cli#pear-cores) prints a header row and a `Size` column with a total-size summary; the type column drops its `[...]` brackets.
* Changed: [`pear seed`](/pear/reference/pear/cli#pear-seed)'s stats replace the standalone `Semantic Version:` row with `App: <name>@<version>` and add a `Blobs Size:` row.
* Changed: [next-step hints](/pear/reference/pear/cli#next-step-hints) write to stderr instead of stdout—`LINK=$(pear touch)` no longer risks capturing one.

### blind-peer, blind-peering, blind-relay — new to Pear's dependency tree [#blind-peer-blind-peering-blind-relay--new-to-pears-dependency-tree]

New bundled packages backing the commands above: [`blind-peer`](https://github.com/holepunchto/blind-peer) v3.12.6 (server), [`blind-peering`](https://github.com/holepunchto/blind-peering) v2.6.3 (client), [`blind-relay`](https://github.com/holepunchto/blind-relay) v1.6.1 (relay protocol). `blind-peer` and `blind-peering` now have reference pages—[blind-peer](/p2p/reference/helpers/blind-peer) and [blind-peering](/p2p/reference/helpers/blind-peering)—documented at later versions. `blind-relay` has none, so see [Availability and blind peering](/pear/explanation/availability-and-blind-peering) and the `pear blind-peer`/`pear blind-relay` CLI reference for it.

### pear-build — v1.3.0 [#pear-build--v130]

* Added: each [`--<platform-arch>-app`](/pear/reference/pear/cli#pear-build) flag accepts multiple values, so a standalone binary can ship alongside a desktop app under one architecture. Each artifact must be named after `productName`/`name`, or after a `bin` name when `bin` is an object.

### pear-install — v1.3.0 [#pear-install--v130]

* Changed: [`pear install`](/pear/reference/pear/cli#pear-install) places applications in `~/Applications` (macOS, and Linux where it or `~/AppImages` exists), and binaries in `%LOCALAPPDATA%\Programs\<app>\` on Windows or `~/.local/bin` elsewhere—all user-level, no `sudo`.
* Added: installing a binary on non-Windows appends `~/.local/bin` to `PATH` by editing your shell config (`export PATH=…`, or `fish_add_path` for fish), skipping it when already present.
* Fixed: `--timeout <seconds>` works, and an unset `SHELL` no longer breaks shell-config detection.

### Internal — deps bump [#internal--deps-bump-2]

`hyperdht` v6.33.2 (now a direct pin), `pear-ipc` v6.15.0. No documented surface changes.

## 2026-08-24 — Pear 3.3.0 [#2026-08-24--pear-330]

Pear 3.3.0 is a feature release on top of Pear 3.2.0. Nothing in it is breaking, but two changes affect scripts: `pear gc cores` now stops for typed confirmation before clearing a writable core, and the new next-step hints are written to stdout, so `LINK=$(pear touch)` captures the hint block along with the link. Otherwise the release is about making the CLI easier to follow—deployment commands suggest the next step, `pear cores` prints a readable table, and help text and per-field hints were rewritten across every command.

### pear (CLI) — v3.3.0 [#pear-cli--v330]

* Added: [`pear gc cores <name>`](/pear/reference/pear/cli#gc-cores-by-name) clears cores by application name as well as by link, matching the `name` field of each staged application's `package.json`.
* Added: [`pear gc cores --force|-f`](/pear/reference/pear/cli#gc-cores-confirmation) clears writable cores without the confirmation prompt.
* Added: [Next-step hints](/pear/reference/pear/cli#next-step-hints)—[`pear touch`](/pear/reference/pear/cli#pear-touch), [`pear stage`](/pear/reference/pear/cli#pear-stage), [`pear provision`](/pear/reference/pear/cli#pear-provision), and the [`pear multisig`](/pear/reference/pear/cli#pear-multisig) subcommands `keys get`, `link`, `request`, `sign`, `verify`, and `commit` print the command that usually comes next. Suppressed under `--json`. `keys paths`, `keys add`, `keys remove`, and `keys list` print no hint. They are written to stdout after the command's own output, so command substitution such as `LINK=$(pear touch)` captures them too; use `--json` and read `.data.link`, or take the first line. Pear 3.4.0 moves them to stderr.
* Changed: [`pear gc cores`](/pear/reference/pear/cli#gc-cores-confirmation) requires typed `CLEAR` confirmation before clearing any writable core. On 3.2.0 and earlier writable cores were silently skipped and the command never blocked. The prompt re-asks on any other input, so a piped stdin loops forever rather than failing—**`--force` is mandatory for automation that clears cores it owns**.
* Changed: [`pear cores`](/pear/reference/pear/cli#pear-cores) prints a sorted table with the application name and a `[core]`/`[blobs]` type column; `name` and `blobs` also appear in `--json`.
* Changed: [`pear provision`](/pear/reference/pear/cli#pear-provision)'s `Provisioned:` block and `pear multisig link`'s output no longer end with a `pear seed` line—it moved into the hint block.
* Changed: command summaries, descriptions, argument and flag help text clarified across every command, and per-field hints added covering constraints, interactions, and failure modes. [`pear --menu`](/pear/reference/pear/cli#interactive-menu) displays those hints.
* Changed: `--sidecar` is hidden from help and marked internal.
* Fixed: [`pear stage`](/pear/reference/pear/cli#pear-stage) prints the `ERR_INVALID_PROJECT_DIR` message instead of a stack trace.

### pear-build — v1.2.0, v1.1.2 [#pear-build--v120-v112]

* Added (v1.2.0): [`pear build --config [path]`](/pear/reference/pear/cli#pear-build) points at the project's `pear.json`—mandatory for mobile targets.
* Added (v1.2.0): each `--<platform-arch>-app` source is checked for existence up front.
* Changed (v1.1.2): expected errors are rethrown through `pear-errors`.

### pear-runtime-updater — v3.4.0 [#pear-runtime-updater--v340]

* Added: a [`skipUpdate`](/pear/reference/pear/runtime#options) option—an async predicate that, when it returns truthy, skips that update check.

### Internal — deps bump [#internal--deps-bump-3]

`hypercore-storage` v3.2.1, `paparam` v1.13.0, `pear-ipc` v6.13.0, `rocksdb-native` v3.17.4, and `udx-native` v1.21.1. No documented surface changes.

## 2026-08-12 — Pear 3.2.0 [#2026-08-12--pear-320]

Pear 3.2.0 is a feature release on top of Pear 3.1.0. Nothing in it is breaking: it adds an interactive command menu, lets `pear seed` exit once peers are synced, and tightens up `pear gc` and `pear provision`.

### pear (CLI) — v3.2.0 [#pear-cli--v320]

* Added: [`pear --menu`](/pear/reference/pear/cli#interactive-menu) launches an interactive, terminal-driven menu for browsing commands.
* Added: [`pear seed --until-sync <key>`](/pear/reference/pear/cli#pear-seed) exits once every specified peer has fully synced; repeat the flag to wait for more than one.
* Changed: [`pear cores`](/pear/reference/pear/cli#pear-cores) skips cores with zero contiguous length by default and reports each core's length; pass `--all-cores` to include the skipped ones.
* Changed: [`pear gc cores`](/pear/reference/pear/cli#pear-gc)'s `link` argument is now required—it previously cleared every core in the store when omitted.
* Changed: [`pear dump`](/pear/reference/pear/cli#pear-dump)'s `dir` argument is now optional—handy with `--list`, which already sets it to `-` for you.
* Changed: [`pear seed`](/pear/reference/pear/cli#pear-seed)'s stats gain a `semver` field alongside `driveLength`.
* Changed: `--json` error objects gain a `code` field alongside `success` and `message`.
* Removed: `pear gc sidecars`, with no direct replacement.
* Fixed: `--json` output now emits command errors as valid JSON instead of malformed output.
* Fixed: [`pear seed --json`](/pear/reference/pear/cli#pear-seed)'s `driveKey`, `discoveryKey`, `contentKey`, and `whoami` are normalized to z32—previously raw hex.
* Fixed: [`pear provision`](/pear/reference/pear/cli#pear-provision) error messages.
* Fixed: [`pear provision --dry-run`](/pear/reference/pear/cli#pear-provision) no longer writes to the real `<target-link>`—it syncs into a throwaway local store instead.
* Fixed: [`pear gc cores`](/pear/reference/pear/cli#pear-gc) resolves content cores before clearing, and no longer reports skipped cores (writable, or already gone) as cleared.
* Fixed: [`pear build`](/pear/reference/pear/cli#pear-build) shows help when `--package` is missing, instead of failing partway through.

## 2026-07-30 — Pear 3.1.0 and module updates [#2026-07-30--pear-310-and-module-updates]

Pear 3.1.0 is the first feature release on top of Pear v3 (below). Nothing in it is breaking: it adds core inspection, speeds up vanity key generation, and fills in reporting gaps left by the v3 restructure.

### pear (CLI) — v3.1.0 [#pear-cli--v310]

* Added: [`pear cores`](/pear/reference/pear/cli#pear-cores) lists an application's cores—one `pear://` link per core, suffixed `(writable)` when this device holds the key pair—followed by a totals summary.
* Added: [`pear touch --vanity`](/pear/reference/pear/cli#pear-touch) generates vanity keys across multiple threads instead of one.
* Changed: [`pear info`](/pear/reference/pear/cli#pear-info) now reports `productName`, `version`, `upgrade`, and `verlink`.
* Changed: [`pear multisig`](/pear/reference/pear/cli#pear-multisig) asks you to confirm the password before it is used.
* Fixed: [`pear info`](/pear/reference/pear/cli#pear-info) and [`pear changelog`](/pear/reference/pear/cli#pear-changelog) output corrections, and password prompts no longer ignore backspace.
* Sidecar errors are now persisted rather than lost with the process—see [Sidecar logs](/pear/reference/pear/cli#sidecar-logs).

### pear (CLI) — v3.0.1 [#pear-cli--v301]

* Fixed: [`pear build`](/pear/reference/pear/cli#pear-build) resolves package-relative paths correctly.
* Fixed: Linux runs check for `libatomic` up front instead of failing later.
* Fixed: [`pear install`](/pear/reference/pear/cli#pear-install) guards against an unset `SHELL`.

### pear-runtime-updater — v3.3.0 [#pear-runtime-updater--v330]

* Added: a network monitor, so the updater reacts to connectivity changes.
* Fixed: errors raised when closing during an update, or immediately before one started.

### pear-build — v1.1.1 [#pear-build--v111]

* Fixed: `package.json` is read and parsed directly instead of via `require`, which fixes package-relative resolution during [`pear build`](/pear/reference/pear/cli#pear-build).
* Added: test coverage for `win32-arm64`.

### pear-install — v1.2.2, v1.2.1 [#pear-install--v122-v121]

* Fixed (v1.2.2): [`pear install`](/pear/reference/pear/cli#pear-install) guards against an unset `SHELL` when detecting your shell config.
* Added (v1.2.1): Node 20 and 21 support, and `--timeout <seconds>` now works as documented.

<Callout type="info">
  Hypercore, Hyperdrive, HyperDHT, and Corestore also shipped updates around this time—see [P2P's release overview](/p2p/release-overview) for those building-block/helper-module changes.
</Callout>

## 2026-07 — Pear v3 [#2026-07--pear-v3]

Pear v3 completes the split announced in [Pear Evolution](https://pears.com/news/pear-evolution/): the runtime moves out of the CLI and into the embeddable **[Pear OTA](/pear/reference/pear/runtime)** (`pear-runtime`) library, and the CLI focuses on deployment and installation.

### pear (CLI) — v3 [#pear-cli--v3]

* **Breaking:** `pear run` removed. Launch applications by embedding [Pear OTA](/pear/reference/pear/runtime) instead—see [Migrate from pear run to Pear OTA](/pear/how-to/operate-an-app/migration). Running it now exits with `pear run has been removed`.
* **Breaking:** `pear release` removed. v3 has no release pointer to set: a production release is a quorum-signed commit onto the production link—use [`pear provision`](/pear/reference/pear/cli#pear-provision) + [`pear multisig`](/pear/reference/pear/cli#pear-multisig).
* **Breaking:** `pear presets`, `pear shift`, and `pear drop` removed. For resetting an app's storage, see [Manage installed applications](/pear/how-to/manage-installed-applications).
* **Breaking:** the ambient `global.Pear` API is gone with `pear run`. The [Pear API page](/pear/reference/pear/api) is retained for reference only.
* **Breaking:** `--no-ask` (all commands), `pear stage --compact`, and `pear sidecar --mem`/`--key` flags removed; `pear data` slims down to `dht` and `multisig` subcommands.
* **Breaking:** `pear://<alias>` shorthand links removed. Refer to applications by their full `pear://<key>` link.
* Added: [`pear install <link>`](/pear/reference/pear/cli#pear-install) installs applications from peers directly into the OS application folder (provided by [`pear-install`](https://github.com/holepunchto/pear-install)).
* Added: `pear multisig keys paths`, `pear info --multisig`, `pear sidecar shutdown|inspect`, and `pear gc cores [link]`.
* Changed: `pear build` is now provided by the standalone [`pear-build`](https://github.com/holepunchto/pear-build) module.
* Changed: [`pear seed`](/pear/reference/pear/cli#pear-seed) reports `whoami` and drive length, encodes all keys as z32, and cleans up its colored output.
* Fixed: `pear stage --truncate`, first-run [`pear dump`](/pear/reference/pear/cli#pear-dump) failures, and several `pear seed` edge cases.

### pear-runtime (Pear OTA) — v1.3.1 [#pear-runtime-pear-ota--v131]

* The embeddable OTA-update library is now branded **Pear OTA** in these docs; the package name stays `pear-runtime`.
* Constructor accepts `store` + `swarm` (supply your own [Corestore](/p2p/reference/helpers/corestore)/Hyperswarm, together), `storage`, `delay`, and `bundled` options—see the [Options reference](/pear/reference/pear/runtime#options).
* `PearRuntime.run()` workers started from a Bare process run as Bare threads; thread workers do not expose `IPC.stdin`/`stdout`/`stderr`.

## See also [#see-also]

* [Pear CLI reference](/pear/reference/pear/cli)—current command set with removed commands badged.
* [Migrate from pear run to Pear OTA](/pear/how-to/operate-an-app/migration)—the v3 migration path.
* [P2P's release overview](/p2p/release-overview)—Hypercore, Hyperdrive, HyperDHT, Corestore, and the rest of the building-block/helper-module changes.
* [Bare's release overview](/bare/release-overview)—Bare runtime and bare-\* module releases.
