# Reference



Reference is the technical description of how Pear works. It's information-oriented: comprehensive, accurate, and dry. Use it to look up a flag, an API signature, or a configuration field.

If you're trying to accomplish a specific task, see **[How To](/pear/how-to)**. For the design rationale, see **[About Pear](/pear/explanation)**.

<Callout type="info">
  **Bare is the runtime underneath.** A small, zero-core JavaScript runtime with its own docs: the module system, native addons, embedding in native and mobile apps, and compiling to a standalone binary all live on the [Bare tab](/bare). [How the stack fits together](/p2p/explanation/how-the-stack-fits-together) maps the layers.
</Callout>

<Callout type="info">
  **P2P is the peer-to-peer building blocks.** Hypercore, Hyperswarm, Autobase, Hyperbee, Hyperdrive, HyperDHT, and Corestore—independent JavaScript modules for storage, discovery, and replication, with their own docs on the [P2P tab](/p2p). [How the stack fits together](/p2p/explanation/how-the-stack-fits-together) maps the layers.
</Callout>

## In this section [#in-this-section]

### Pear [#pear]

* [Pear CLI](/pear/reference/pear/cli)—covers `pear stage`, `pear seed`, `pear build`, `pear install`, and every flag.
* [Pear OTA](/pear/reference/pear/runtime)—the `pear-runtime` library and JavaScript API for over-the-air updates inside a running Pear app.
* [Pear Mobile OTA](/pear/reference/pear/mobile)—the `pear-mobile` module: the same OTA and storage model, embedded in React Native and Expo apps via a Bare worklet.
* [Mobile OTA Boot Control](/pear/reference/pear/mobile-boot-control)—the `pear-runtime-react-native` Expo config plugin: chooses between the bundle shipped in a native build and a downloaded OTA update.
* [Configuration](/pear/reference/pear/configuration)—every key in `package.json`'s `pear` block.
* [Pear API (removed)](/pear/reference/pear/api)—the older direct-access `global.Pear` API, removed in v3. Use the Pear OTA (`pear-runtime`) module instead.

For a curated record of breaking changes and removals across these modules, see the [Release Overview](/pear/release-overview).

### Bare [#bare]

The runtime Pear is built on, and the kit for embedding it in native apps:

* [Bare runtime API](/bare/reference/bare/runtime)—the `Bare` global: process properties, lifecycle, addons, threads, IPC.
* [Bare CLI](/bare/reference/bare/cli)—run a script or REPL with the `bare` command.
* [Bare Kit](/bare/reference/bare/bare-kit)—the Worklet and IPC API for iOS, Android, and React Native.

Per-module API references (also linked from the [Bare modules catalog](/bare/reference/bare/modules)): [bare-fs](/bare/reference/bare/modules/bare-fs), [bare-os](/bare/reference/bare/modules/bare-os), [bare-stream](/bare/reference/bare/modules/bare-stream), [bare-tcp](/bare/reference/bare/modules/bare-tcp), [bare-fetch](/bare/reference/bare/modules/bare-fetch), [bare-crypto](/bare/reference/bare/modules/bare-crypto), [bare-subprocess](/bare/reference/bare/modules/bare-subprocess), [bare-rpc](/bare/reference/bare/modules/bare-rpc), [bare-sqlite](/bare/reference/bare/modules/bare-sqlite), [bare-broadcast-channel](/bare/reference/bare/modules/bare-broadcast-channel), [bare-sdl](/bare/reference/bare/modules/bare-sdl), [bare-module-resolve](/bare/reference/bare/modules/bare-module-resolve), [bare-module-traverse](/bare/reference/bare/modules/bare-module-traverse), [bare-addon-resolve](/bare/reference/bare/modules/bare-addon-resolve), [bare-bluetooth-android](/bare/reference/bare/modules/bare-bluetooth-android), [bare-bluetooth-apple](/bare/reference/bare/modules/bare-bluetooth-apple), [bare-module](/bare/reference/bare/modules/bare-module), [bare-url](/bare/reference/bare/modules/bare-url), [bare-atomics](/bare/reference/bare/modules/bare-atomics), [bare-timers](/bare/reference/bare/modules/bare-timers), [bare-pipe](/bare/reference/bare/modules/bare-pipe), [bare-semver](/bare/reference/bare/modules/bare-semver), [bare-form-data](/bare/reference/bare/modules/bare-form-data), [bare-channel](/bare/reference/bare/modules/bare-channel), [bare-tls](/bare/reference/bare/modules/bare-tls), [bare-console](/bare/reference/bare/modules/bare-console), [bare-structured-clone](/bare/reference/bare/modules/bare-structured-clone), [bare-ipc](/bare/reference/bare/modules/bare-ipc), [bare-inspector](/bare/reference/bare/modules/bare-inspector), [bare-make](/bare/reference/bare/modules/bare-make), [bare-prom-client](/bare/reference/bare/modules/bare-prom-client), [bare-posix](/bare/reference/bare/modules/bare-posix), [bare-mdns-discovery](/bare/reference/bare/modules/bare-mdns-discovery), [bare-sidecar](/bare/reference/bare/modules/bare-sidecar), [bare-union-bundle](/bare/reference/bare/modules/bare-union-bundle), [bare-mime](/bare/reference/bare/modules/bare-mime), [bare-apk](/bare/reference/bare/modules/bare-apk).

### CI & release [#ci--release]

* [Desktop release npm scripts](/pear/reference/ci-and-release/desktop-release-npm-scripts)—the common `package.json` scripts in Pear Electron desktop repos.
* [Holepunch GitHub Actions](/pear/reference/ci-and-release/github-actions)—the reusable composite actions in `holepunchto/actions` for building, signing, publishing, and recovering Pear apps and modules.
* [pear-ci GitHub Action](/pear/reference/ci-and-release/pear-ci-action)—staging a Pear app from CI into a `pear://` link with the `pear-ci` action.

### Module catalog [#module-catalog]

* [Modules](/pear/reference/modules/pear-modules)—the `pear-*` libraries: application, UI, common, developer, integration.
* [Bare modules](/bare/reference/bare/modules)—the `bare-*` runtime modules underpinning Pear.

For the peer-to-peer building blocks, helpers, and tools Pear apps are built on—Hypercore, Hyperswarm, Autobase, and the rest—see [P2P's Reference](/p2p/reference).

## Stability legend [#stability-legend]

Module pages call out a stability indicator. The four levels:

| Stability                       | Description                                                 |
| ------------------------------- | ----------------------------------------------------------- |
| <Status level="stable" />       | Unlikely to change or be removed in the foreseeable future. |
| <Status level="experimental" /> | New, untested, or has known issues.                         |
| <Status level="deprecated" />   | Being removed or replaced in the future.                    |
| <Status level="unstable" />     | May change or be removed without warning.                   |
