Skip to content

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

English | 简体中文 | 繁體中文 | 日本語 | Русский

ErisPulse-App

ErisPulse-App

Run ErisPulse on Android, Windows, Linux and macOS — multiple instances, native UI, always-on.

An official multi-platform client for ErisPulse — the event-driven multi-platform bot framework. Create, run, and manage bot instances with a fully native UI. No PC, terminal, or setup steps required.

Release License Flutter ErisPulse Discussions


Screenshots

Desktop · Windows Mobile · Android
Instance list on Windows Instance list on Android

Core Features

Multi-platform

Android, Windows, Linux and macOS installers are all published on Releases. A single Flutter codebase across every platform.

Multi-instance

Each instance is an independent bot with its own port, working directory and token — create, start, stop and delete as many as you need.

Native UI

A fully native interface built on the Dashboard REST/WebSocket API — real-time monitoring, streaming logs, adapter and module management.

Always-on

On Android a foreground service keeps every instance alive in the background; crashes are detected and restarted automatically. On desktop, instances run as direct processes managed by the app.

Embedded Runtime

On Android, proot, busybox and an Ubuntu image with Python + ErisPulse are bundled (offline build) or downloaded on first launch (online build). On desktop, a portable Python is bundled and the ErisPulse SDK is installed from PyPI with your choice of version — latest by default.

Download Mirror

GitHub releases can be slow or unreachable in some regions — switch the download source to a mirror (ghfast / gh-proxy) right from the settings page.


How It Works

Android

┌────────────────────────────────────────────────────┐
│  ErisPulse-App (Flutter)                            │
│                                                    │
│  Native UI ── Dashboard REST / WS API              │
│       │                                            │
│       └── Foreground Service (background isolate)  │
│                │                                   │
│                ▼                                   │
│  proot (user-space chroot)                         │
│       │                                            │
│       ▼                                            │
│  Ubuntu rootfs + Python + ErisPulse instances      │
└────────────────────────────────────────────────────┘
  • The Foreground Service owns every instance process, so bots keep running even when the UI is closed.
  • The UI talks to each instance through 127.0.0.1:<port>/Dashboard/* — the same REST and WebSocket API the web Dashboard uses.
  • Each instance runs the SDK in its own working directory under the shared rootfs, with its own port and token.

Desktop (Windows / Linux / macOS)

┌────────────────────────────────────────────────────┐
│  ErisPulse-App (Flutter)                            │
│                                                    │
│  Native UI ── Dashboard REST / WS API              │
│       │                                            │
│       ▼                                            │
│  bundled Python ── ErisPulse instances (processes) │
└────────────────────────────────────────────────────┘
  • The app bundles a portable Python. On first launch you pick an ErisPulse SDK version to install (latest by default).
  • Instances run as direct child processes of the app and stop when the app exits.

For the internal design, see Architecture.


Quick Start

Android

Two builds are published on Releases:

Build Runtime image
erispulse-app-online-*.apk downloaded on first launch
erispulse-app-offline-*.apk bundled inside the APK

Both install the same way:

  1. Install and launch. Allow the notification permission — it keeps the background service alive.
  2. The home screen shows a banner until the runtime is ready. Tap it to run the first-launch initialization (progress and log view included).
  3. Create an instance and start it.
  4. Configure adapters and your model API keys from the in-app dashboard.

The offline build is self-contained — no network access needed after installation. If the first-launch download is slow or unreliable, switch the download source in Settings to a mirror.

Desktop

Pick the build for your platform from Releases: Windows setup.exe (or portable zip), Linux tar.gz, macOS zip.

Note

Linux: the tar.gz does not bundle system libraries — install GTK3 first or you'll get libgtk-3.so.0: cannot open shared object file:

sudo apt install -y libgtk-3-0 libayatana-appindicator3-1 libwebkit2gtk-4.1-0

Newer archives ship install-deps.sh which does this for you (detects apt / dnf / pacman / zypper). WSL2 users need WSLg for the GUI (enabled by default on Windows 11).

  1. Install and launch.
  2. Choose an ErisPulse SDK version on the welcome screen (latest is preselected) and install it.
  3. Create an instance and start it.

Developer Guide

Requirements

  • Flutter ≥ 3.22 (stable channel)
  • Android SDK (API 36+) for Android builds

Build

flutter pub get

# Android
# online: runtime downloaded on first launch
flutter build apk --release --dart-define=FLAVOR=online
# offline: rootfs bundled into the APK (needs assets/rootfs present)
flutter build apk --release --dart-define=FLAVOR=offline

# Desktop
flutter build windows
flutter build linux

The Android rootfs image is built by a separate workflow (.github/workflows/build-rootfs.yml) which bakes Ubuntu arm64 + Python + ErisPulse; the Android build then embeds it. See scripts/ for details.

Project Layout

lib/
├── main.dart                    # Entry point + Provider wiring
├── models/                      # Instance / log / system / adapter DTOs
├── pages/                       # Native UI pages
│   ├── home_page.dart           # Instance list
│   ├── instance_detail_page.dart# Overview / logs / adapters / modules / config
│   ├── onboarding_page.dart     # First-launch runtime provisioning
│   └── ...
├── services/
│   ├── instance_manager.dart    # Instance metadata CRUD + persistence
│   ├── dashboard_api.dart       # Dashboard REST client
│   └── runtime/                 # proot / rootfs / foreground service (Android)
│                               # desktop runtime / SDK manager (Windows/Linux)
└── widgets/

Related Projects

Project Description
ErisPulse The async multi-platform bot framework this app embeds
ErisPulse-Dashboard Web management panel; the API this app's native UI is built on

License

MIT


Acknowledgments

The Android container approach builds on user-space chroot (proot) and static busybox, following the ecosystem established by Termux. The product shape and mobile deployment approach draw on AstrBot-Android-App.

About

No description, website, or topics provided.

Resources

Code of conduct

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages