Skip to main content

language.badge standard.badge unittest.badge Coverity OpenSSF Scorecard OpenSSF Baseline Documentation Status

release.badge docker.badge pypi.badge npm.badge cargo.badge cockpit.badge Join the chat at https://gitter.im/app-mesh/community

App Mesh

One secure, lightweight daemon to run, schedule, and remote-control apps across machines.

🧭 Concepts

App Mesh gives you two capabilities: Hosting and Computing.

🎛 Hosting

Declare an app once. The daemon keeps it running.

  • Lifecycle — start, stop, and recover the app after a crash or a daemon restart
  • Scheduling — cron, fixed intervals, start and end dates, daily time windows
  • Protection — health checks, CPU and memory limits, OS user, tenant isolation
  • Any app — a native process or a Docker app

Think systemd on every machine. Or Kubernetes desired state, for any app.

🧮 Computing

Submit work to any node. Get the result back.

  • Command or script — starts a new process, runs once
  • Task message — reuses a warm app that is already running, no startup cost
  • Parallel and control — fan out work across nodes; run sync or async, stream output, set timeouts
  • Workflow — chain many work items into a DAG pipeline and run it natively
  • AI — send task messages to a hosted LLM agent, or give coding agents a sandbox node to build and run

Think serverless, on your own machines.

App Mesh architecture

⚡ Quick Start

Start the daemon in Docker:

docker run -d -p 6060:6060 --restart=always --name=appmesh --net=host -v /var/run/docker.sock:/var/run/docker.sock laoshanxi/appmesh:latest

Host your first app with the appm CLI — open a shell in the daemon container:

$ docker exec -ti appmesh bash

# Sign in once (non-interactive)
$ /opt/appmesh/script/appmesh-auth.sh print-initial-password | appm logon -u admin@appmesh.local --password-stdin

# List registered applications
$ appm ls
ID  NAME      OWNER   STATUS    HEALTH  PID  USER     MEMORY  %CPU  RETURN
0   py-task   system  enabled   OK      557  appmesh  34.4Mi  0     -
1   py-exec   system  disabled  -       -    -        -       -     -
2   identity  system  enabled   OK      344  appmesh  42.3Mi  0     -
3   workflow  system  enabled   OK      558  appmesh  13.5Mi  0     -

# Register a new application
$ appm add -a myapp -c "python3 -u -c 'import time; [print(i, time.ctime()) or time.sleep(1) for i in range(10)]'"

# View its live output
$ appm ls -a myapp -o
0 Wed Sep 16 10:56:12 2026
1 Wed Sep 16 10:56:13 2026
2 Wed Sep 16 10:56:14 2026

# appm -h for more usage

Send a task message to a running app through the SDK. Mint an admin token first — the same password grant that appm logon uses:

$ export APPMESH_BEARER_TOKEN=$(curl -s -u "appmesh-cli:" -X POST http://127.0.0.1:6062/auth/token \
    --data-urlencode grant_type=password \
    --data-urlencode "username=admin@appmesh.local" \
    --data-urlencode "password=$(/opt/appmesh/script/appmesh-auth.sh print-initial-password)" \
    --data-urlencode "scope=openid audience:server:client_id:appmesh-api" \
  | python3 -c 'import sys,json;print(json.load(sys.stdin)["access_token"])')
import os
from appmesh import AppMeshClient
client = AppMeshClient(bearer_token=os.environ["APPMESH_BEARER_TOKEN"])

result_from_server = "0"
for i in range(10):
    task_data = f"print({result_from_server} + {i}, end='')"
    result_from_server = client.run_task(app_name="py-task", data=task_data)
    print(result_from_server)

For native packages (.deb/.rpm), systemd setup, and cluster initialization, see the Installation Guide and the Dockerfile.

🚀 Core Capabilities

Pillar Capability What you get
Hosting Application management Full remote CRUD and control — cgroup limits, OS user, environment variables, Docker apps, stdin/stdout — with monitoring of start counts, exit codes, errors, and health checks
Hosting Scheduling Long- and short-running apps, periodic jobs, cron expressions, custom timings, and policy-driven start/exit behaviors
Computing Remote execution Run commands and scripts on any node; send in-memory tasks to running applications for high-performance computing
Computing Workflow engine GitHub-Actions-style YAML pipelines with DAG scheduling, running natively on App Mesh
Platform Security OAuth/OIDC bearer authentication (RFC 6750) with Principal-based RBAC and multi-tenant isolation; SSL/TLS on TCP/HTTP/WebSocket; HMAC-PSK internal verification
Platform Observability Built-in Prometheus exporter, Grafana datasource, Loki integration, host/app resource metrics
Platform Extras File upload/download API, remote shell execution, hot config reload, bash completion

Runs on Linux, macOS, and Windows (x86 and ARM).

🔄 Workflow Pipeline

Define CI/CD pipelines as YAML — similar to GitHub Actions, but running natively on App Mesh with the built-in Workflow Engine:

  • DAG scheduling — jobs run in dependency order, independent jobs in parallel
  • 4 step types — shell commands, existing Apps, Task API messages, sub-workflows
  • Error handling — retry with exponential backoff, continue-on-error, finally cleanup blocks
  • Expressions — ${{ inputs.env }}, ${{ steps.build.stdout }}, success(), failure(), always()
  • Remote execution — target specific nodes by label or hostname
appm workflow add -f pipeline.yaml        # register
appm workflow run pipeline -e env=prod -f # run and follow output
appm workflow runs pipeline               # view history

🤖 AI & LLM Integration

The Computing pillar makes App Mesh a natural runtime for AI workloads:

🧰 Interfaces & SDKs

Interface Details
CLI appm command reference
REST REST APIs · OpenAPI spec
Web GUI app-mesh-ui
SDKs Python · Golang · Rust · Java · JavaScript · C++

💡 Success Stories

AI & automation

Computing

Operations & observability

Platform & Kubernetes

🆚 Comparison

Feature App Mesh systemd crontab
Schedule accuracy Seconds Seconds Minutes
Language C++17 C C
Web GUI √
Command lines √ √ √
SDK √
Cron schedule expression √ √
Manage docker app √
Session login √
Manage stdout/stderr √ √
Health check √
Authentication √
Multi-tenant √ √

📚 Documentation

🔗 Library dependencies

Community & License

Questions and discussions are welcome on Gitter. Licensed under the MIT License.

Release files for appmesh 3.0.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Built distribution (wheel)

Table of built distributions (wheels) for appmesh 3.0.5
File Interpreter ABI Platform
appmesh-3.0.5-py3-none-any.whl Python 3 none any Details

Release files / appmesh-3.0.5-py3-none-any.whl

Download URL appmesh-3.0.5-py3-none-any.whl
Size 59.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
922fa2a082a5b3716b181df7804b5f30d74976d6e99f5d0c8e03f8a06981150a
BLAKE2b-256 checksum
How to use checksums
e6531e35fc966b0d571f9c2cde7190c608209bf8945f444a6ed0e6b9d61018b5
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

3.0.6

1 release file

This release

3.0.5 This release

1 release file

3.0.4

1 release file

3.0.3

1 release file

3.0.2

1 release file

3.0.1

1 release file

3.0.0

1 release file

2.3.3

1 release file

2.3.2

1 release file

2.3.1

1 release file

2.3.0

1 release file

2.2.9

1 release file

2.2.8

1 release file

2.2.7

1 release file

2.2.6

1 release file

2.2.5

1 release file

2.2.4

1 release file

2.2.3

1 release file

2.2.2

1 release file

2.2.1

1 release file

2.2.0

1 release file

2.1.19

1 release file

2.1.18

1 release file

2.1.17

1 release file

2.1.16

1 release file

2.1.15

1 release file

2.1.14

1 release file

2.1.13

1 release file

2.1.12

1 release file

2.1.11

1 release file

2.1.10

1 release file

2.1.9

1 release file

2.1.8

1 release file

2.1.7

1 release file

2.1.6

1 release file

2.1.5

1 release file

2.1.4

1 release file

2.1.3

1 release file

2.1.2

1 release file

2.1.1

1 release file

2.1.0

1 release file

2.0.4

1 release file

2.0.3

1 release file

2.0.2

1 release file

2.0.1

1 release file

1.6.17

2 release files

1.6.16

2 release files

1.6.15

2 release files

1.6.14

2 release files

1.6.11

1 release file

1.6.8

1 release file

1.6.7

1 release file

1.6.5

1 release file

1.6.2

1 release file

1.6.1

1 release file

1.5.4

1 release file

1.5.3

1 release file

1.4.8

1 release file

1.4.7

1 release file

1.4.6

1 release file

1.4.5

1 release file

1.4.3

1 release file

1.4.2

1 release file

1.4.1

1 release file

1.4.0

1 release file

1.3.9

1 release file

1.3.8

1 release file

1.3.7

1 release file

1.3.6

1 release file

1.3.5

1 release file

1.3.4

1 release file

1.3.3

1 release file

1.3.2

1 release file

1.3.1

1 release file

1.3.0

1 release file

1.2.9

1 release file

1.2.6

1 release file

1.2.5

1 release file

1.2.3

1 release file

1.2.2

1 release file

1.2.1

1 release file

1.2.0

1 release file

1.1.9

1 release file

1.1.8

1 release file

1.1.7

1 release file

1.1.6

1 release file

1.1.5

1 release file

1.1.4

1 release file

1.1.3

1 release file

1.1.1

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page