Skip to main content

English documentation Simplified Chinese documentation

Haoleme

Haoleme

Run commands on your computer or server. Follow them from your phone.

Website · Download APK · Quick Start · PyPI

Android APK 1.0.3 Haoleme CLI on PyPI Total GitHub Issues License: AGPL-3.0-or-later

HaolemeApp/Haoleme on Trendshift

[!NOTE] Haoleme v1.0.3 is a stable release. Computers can now push live output and device meters over WebSocket, while the app still falls back to SSE and HTTP. Model-training progress monitoring remains a feature in development. View the release or install it directly over an existing version.

Why Haoleme

Haoleme is a local-first command monitor for work that should keep running while you do something else. Prefix a command with hao, then use the Android app to follow live output, switch between machines, receive completion notifications, or stop a task remotely. For supported model-training output, run cards can also surface the latest epoch, loss, elapsed time, and a visual progress bar.

It is built for model training, evaluations, remote scripts, batch jobs, crawlers, builds, and long SSH sessions. Commands and console output are end-to-end encrypted before they reach Haoleme Cloud or a self-hosted Relay.

Preview

Run status and device overview Pairing and settings

Quick Start

1. Download the Android app

Download Haoleme v1.0.3

2. Install the CLI

pip install -U haoleme

3. Pair this computer

hao login

Choose Haoleme Cloud or a self-hosted Private Relay, then scan the QR code or enter the 6-digit code in the app.

4. Run a command

Add hao before the command you already use:

hao echo hello
hao python train.py
hao bash script.sh

The run, live console output, and final status will appear in the app automatically.

Requirements

  • Android 6.0 or newer
  • Python 3.7 or newer on Windows, macOS, or Linux
  • Network access to Haoleme Cloud, or a reachable Private Relay

Features

  • Live runs: running, succeeded, and failed states with searchable console output and local history.
  • Training progress (in development): detect common epoch, loss, and tqdm output and show progress directly on run cards. Recognition and presentation may change as this feature evolves.
  • Phone notifications: know when a command completes or fails without watching SSH.
  • Multiple machines: switch between computers and servers, rename devices, and see online status.
  • Projects and metrics: group related runs and inspect CPU, memory, and GPU utilization.
  • Remote controls: stop, rerun, open a remote terminal, or request shutdown after completion.
  • Per-device startup monitoring: enable or disable background startup from the app, or use hao autostart enable|disable|status.
  • Efficient realtime delivery: WebSocket updates keep runs and console previews in sync, with automatic SSE and HTTP fallback.
  • Private by design: QR or 6-digit pairing, offline retry, local caches, and E2EE for sensitive run content.

Agent Integrations

Haoleme includes a skill for Codex and Claude Code. It automatically monitors important training, full evaluation, deployment, and long-running tasks while leaving dependency installs, quick pretests, formatting, and routine Git commands local.

npx skills add HaolemeApp/Haoleme --skill monitor-with-haoleme -g -a codex -a claude-code -y

Source

Architecture

flowchart LR
  HOST["Computer or server<br/>hao + local SQLite"]
  RELAY["Haoleme Cloud or Private Relay<br/>pairing + sync + control"]
  APP["Android app<br/>runs + console + notifications"]
  HOST -->|"E2EE run updates + heartbeat"| RELAY
  RELAY -->|"WebSocket / SSE encrypted updates"| APP
  APP -->|"control requests"| RELAY
  RELAY -->|"stop / rerun / terminal"| HOST

hao starts commands through a PTY and saves their state locally first. Network interruptions enter a retry queue. Commands, working directories, host details, and console output are encrypted with AES-256-GCM before upload; the Android app decrypts and caches them locally.

Self-hosting

The standard app can connect to a Private Relay without a custom APK. For an Internet-facing HTTPS Relay:

hao login https://hao.example.com

For a trusted LAN, run hao login, choose Private Relay, then choose Start a LAN Relay on this computer. A domain is optional on a private network; HTTPS is required when exposing a Relay to the Internet.

See the Private Relay deployment guide for Docker, Caddy, LAN mode, backups, and security guidance.

Help and Contributing

Security

The public repository excludes official signing keys, production credentials, private deployment configuration, databases, logs, payment QR codes, and user run data. Official signing material and server credentials are injected through private environment configuration.

Run contents are end-to-end encrypted. Relay operators can still see the limited metadata required for pairing, synchronization, device presence, and delivery. See SECURITY.md for supported versions and private vulnerability reporting.

License

Haoleme is licensed under AGPL-3.0-or-later.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

haoleme-0.5.7.tar.gz (133.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

haoleme-0.5.7-py3-none-any.whl (105.8 kB view details)

Uploaded Python 3

File details

Details for the file haoleme-0.5.7.tar.gz.

File metadata

  • Download URL: haoleme-0.5.7.tar.gz
  • Upload date:
  • Size: 133.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for haoleme-0.5.7.tar.gz
Algorithm Hash digest
SHA256 4d7a5343600986bb48c344b9bb0b4045c2f502f14482bb56bfed9aada56bfe89
MD5 7e8637e0fb46b60542911f221189d22c
BLAKE2b-256 c6732dec43518c059c3e792acd9ea0aff46f0b668176744040caa431118e355e

See more details on using hashes here.

File details

Details for the file haoleme-0.5.7-py3-none-any.whl.

File metadata

  • Download URL: haoleme-0.5.7-py3-none-any.whl
  • Upload date:
  • Size: 105.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.4

File hashes

Hashes for haoleme-0.5.7-py3-none-any.whl
Algorithm Hash digest
SHA256 d837ae7d1b91d0d5b9271966665ca53d3f64c0a3d7c8f9bf600288dabc7c8ede
MD5 e11defd9410c559eb835d02ba95211c4
BLAKE2b-256 5d1d6ae748e3ed70478414fe8309a37db3822b7db46613f1165c6044bf9c826e

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page