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 daemon to run, schedule, and remote-control apps across machines.

A lightweight C++ daemon with Dex/OIDC authentication and RBAC, a CLI, REST APIs, SDKs in 6 languages, and a built-in workflow engine.

Use App Mesh to:

⚡ 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

Manage applications with the appm CLI. Authentication is Dex-only: every request needs a bearer token — run appm logon once interactively, or export APPMESH_BEARER_TOKEN with a token from the built-in automation client (see Install: Automation clients):

# List registered applications
$ APPMESH_BEARER_TOKEN="$TOKEN" appm ls
ID  NAME    OWNER           STATUS    HEALTH  PID  USER  MEMORY    %CPU  RETURN  AGE  DURATION  STARTS  COMMAND
1   pyexec  system:appmesh  disabled  -       -    -     -         -     -       37s  -         0       "python3 ../../bin/py_exec.py"
2   ping    system:appmesh  enabled   OK      747  root  5.9 MiB   0     -       37s  37s       1       "ping cloudflare.com"
3   pytask  system:appmesh  enabled   OK      748  root  29.7 MiB  0     -       37s  37s       1       "python3 ../../bin/py_task.py"

# Register a new application
$ APPMESH_BEARER_TOKEN="$TOKEN" appm add -a myapp -c "ping www.baidu.com"

# View its live output
$ appm ls -a myapp -o
PING www.baidu.com (183.2.172.17) 56(84) bytes of data.
64 bytes from 183.2.172.17 (183.2.172.17): icmp_seq=1 ttl=52 time=34.9 ms

# appm -h for more usage

Send tasks to a running application and get responses back through the SDK:

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="pytask", 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

Capability What you get
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
Scheduling Long- and short-running apps, periodic jobs, cron expressions, custom timings, and policy-driven start/exit behaviors
Remote execution Run commands and scripts on any node; send in-memory tasks to running applications for high-performance computing
Workflow engine GitHub-Actions-style YAML pipelines with DAG scheduling, running natively on App Mesh
Security Dex/OIDC bearer authentication (RFC 6750) with Principal-based RBAC and multi-tenant isolation; SSL/TLS on TCP/HTTP/WebSocket; HMAC-PSK internal verification
Observability Built-in Prometheus exporter, Grafana datasource, Loki integration, host/app resource metrics
Extras File upload/download API, remote shell execution, hot config reload, bash completion

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

🤖 AI & LLM Integration

App Mesh's secure remote-execution core makes it a natural runtime for AI workloads:

🔄 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

🧰 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

Remote computing

Operations & observability

Platform & Kubernetes

🆚 Comparison

Feature App Mesh Supervisor crontab
Schedule accuracy Seconds Seconds Minutes
Language C++17 Python 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.

Download files

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

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distribution

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

appmesh-3.0.0-py3-none-any.whl (58.8 kB view details)

Uploaded Python 3

File details

Details for the file appmesh-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: appmesh-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 58.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for appmesh-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 2c7a778e3707f93617e742708939b18a609f91060b5ca8e8cc3c0a36e055a10b
MD5 318056309d8a4bc672143b2abb849cf1
BLAKE2b-256 be4fa4d7c45256bc9c512b087551ba78b01d5a0a4068fb2660592f0f52dbd700

See more details on using hashes here.

Release history Release notifications | RSS feed

This release

3.0.0 This release

1 file

2.3.3

1 file

2.3.2

1 file

2.3.1

1 file

2.3.0

1 file

2.2.9

1 file

2.2.8

1 file

2.2.7

1 file

2.2.6

1 file

2.2.5

1 file

2.2.4

1 file

2.2.3

1 file

2.2.2

1 file

2.2.1

1 file

2.2.0

1 file

2.1.19

1 file

2.1.18

1 file

2.1.17

1 file

2.1.16

1 file

2.1.15

1 file

2.1.14

1 file

2.1.13

1 file

2.1.12

1 file

2.1.11

1 file

2.1.10

1 file

2.1.9

1 file

2.1.8

1 file

2.1.7

1 file

2.1.6

1 file

2.1.5

1 file

2.1.4

1 file

2.1.3

1 file

2.1.2

1 file

2.1.1

1 file

2.1.0

1 file

2.0.4

1 file

2.0.3

1 file

2.0.2

1 file

2.0.1

1 file

1.6.17

2 files

1.6.16

2 files

1.6.15

2 files

1.6.14

2 files

1.6.13

2 files

1.6.11

1 file

1.6.8

1 file

1.6.7

1 file

1.6.5

1 file

1.6.2

1 file

1.6.1

1 file

1.5.4

1 file

1.5.3

1 file

1.4.8

1 file

1.4.7

1 file

1.4.6

1 file

1.4.5

1 file

1.4.3

1 file

1.4.2

1 file

1.4.1

1 file

1.4.0

1 file

1.3.9

1 file

1.3.8

1 file

1.3.7

1 file

1.3.6

1 file

1.3.5

1 file

1.3.4

1 file

1.3.3

1 file

1.3.2

1 file

1.3.1

1 file

1.3.0

1 file

1.2.9

1 file

1.2.6

1 file

1.2.5

1 file

1.2.3

1 file

1.2.2

1 file

1.2.1

1 file

1.2.0

1 file

1.1.9

1 file

1.1.8

1 file

1.1.7

1 file

1.1.6

1 file

1.1.5

1 file

1.1.4

1 file

1.1.3

1 file

1.1.1

1 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