Back to Eliza

README

packages/app/README.md

2.0.15.1 KB
Original Source
<p align="center"> </p> <h1 align="center">elizaOS</h1> <p align="center"> <em>Open-source AI agents for everyone</em> </p> <p align="center"> <a href="https://github.com/elizaOS/eliza/actions/workflows/release.yml"></a> <a href="https://github.com/elizaOS/eliza/actions/workflows/test.yml"></a> <a href="https://www.npmjs.com/package/@elizaos/app"></a> <a href="https://github.com/elizaOS/eliza/blob/main/LICENSE"></a> </p> <p align="center"> <a href="https://eliza.app">eliza.app</a> </p>

A personal AI assistant you run on your own devices, built on elizaOS. Cross-platform — macOS, Windows, Linux, iOS, and Android.

Install

macOS / Linux / WSL:

bash
curl -fsSL https://elizaOS.github.io/eliza/install.sh | bash

Windows (PowerShell):

powershell
irm https://elizaOS.github.io/eliza/install.ps1 | iex

npm global

bash
npm install -g @elizaos/app
eliza setup

no-install (optional)

bash
bunx @elizaos/app setup
# or
npx @elizaos/app setup

Download the App

Desktop builds are published on the GitHub Releases page when a signed release has completed. Mobile distribution is store-first: TestFlight/App Store for iOS and Play testing/Play Store for Android. Developer sideload paths are for contributors and QA, not the public mobile install path.

PlatformFormat
macOS (Apple Silicon).dmg
macOS (Intel).dmg
Windows.exe installer
Linux.AppImage, .deb, .rpm when attached to the release
iOSTestFlight / App Store (coming soon); local Xcode sideload for development
AndroidPlay Store (coming soon); signed QA APK attached by release CI for QA/developer install

Developer preflight checks:

bash
bun run preflight:ios:sideload
bun run preflight:ios:store
bun run preflight:android:sideload
bun run preflight:android:store

Developer install helpers:

bash
# iOS: checks Xcode/device prerequisites and opens the workspace.
bun run install:ios:sideload

# Android: installs the latest local APK with adb, or builds first.
bun run install:android:adb -- --build
bun run install:android:adb -- --apk ./android/app/build/outputs/apk/debug/app-debug.apk

Quick Start

bash
eliza onboard --install-daemon
eliza agent --message "hello" --thinking high

Development

Prerequisites: Node.js >= 22, bun

Setup

bash
git clone https://github.com/elizaOS/eliza.git
cd eliza

bun install
bun run build

Run the App (Desktop)

bash
cd packages/app
bun install
bun run build:desktop
bun run dev:desktop

Dev Server

bash
cd packages/app
bun run dev

Mobile

bash
# iOS (requires macOS + Xcode 15+)
bun run ios

# Android (requires Android Studio + SDK 34+)
bun run android

Build Plugins

bash
bun run plugin:build

Desktop app startup and errors

If the embedded agent fails to load (e.g. missing native module), the app keeps the API server up so the UI can show an error instead of "Failed to fetch". Why: Without that, one load failure would close the API server and the window would show only "Failed to fetch" with no message. See Electrobun startup and exception handling for why the guards in electrobun/src/native/agent.ts exist and must not be removed.

Plugin resolution

Dynamic plugin imports (import("@elizaos/plugin-*")) resolve from the importing file's location. In dev mode and CLI, that can miss root node_modules. We set NODE_PATH to repo root in src/runtime/eliza.ts, scripts/run-node.mjs, and electrobun/src/native/agent.ts (dev path). Why: Without this, dynamically loaded plugins fail with "Cannot find module" on boot. For Bun specifically, some published plugins have exports["."].bun = "./src/index.ts" (missing in the tarball); we patch those in scripts/patch-deps.mjs so Bun resolves via dist/. See Plugin resolution and NODE_PATH (including "Bun and published package exports").

Build and release (desktop bundle, CI)

Plugin and native deps for the packaged app are copied into eliza-dist/node_modules by the release packaging scripts (scripts/copy-runtime-node-modules.ts for Electrobun). They derive the runtime package closure from installed package metadata and the built server bundle instead of maintaining a manual allowlist. macOS Intel builds run install and build under Rosetta so x64 native binaries are included. Why: Build and release (CI, desktop binaries) explains arch, copy script, and release workflow.

Tests

bash
# from repo root
bun run test

License

MIT