Skip to main content

A secure installer for agentic applications.

Project description

Armorer

Armorer turns agentic applications into managed, self-hosted runtimes, letting teams install, configure, monitor, and secure agents without hand-wiring Docker, credentials, channels, and guardrails.

Armorer is built for running tools like OpenClaw as real services: it owns setup, tracks background jobs, exposes a local operations UI, routes Telegram access, verifies runtime health, and applies security controls around credentials, approvals, and suspicious agent behavior.

[!WARNING] Armorer is an active engineering preview for trusted local and self-hosted environments. Expect sharp edges around new agents, platform-specific Docker behavior, and early release packaging.

Running Armorer

Requirements

Armorer works best on machines that can run Docker-backed services and Python 3.10+.

Recommended local prerequisites:

  • Python 3.10+
  • Docker Desktop or Docker Engine
  • pipx for isolated CLI installs
  • optional: Telegram bot tokens for chat and alerting flows
  • optional: Tailscale for private remote dashboard access

Option 1. Ask Codex or Claude Code to set it up

Point your coding agent at this repository and ask it to run the setup for your machine:

Set up Armorer from https://github.com/SecureNeural/Armorer on this machine. Follow the repository instructions and AGENTS.md. Install Armorer with Armorer Guard when supported, verify Docker, configure the local runtime, start the self-hosted UI, then help me install and configure OpenClaw through Armorer. Do not report success until the Armorer CLI works, the UI is reachable, and the runtime health checks pass.

The agent should use Armorer's own CLI and setup flows instead of ad hoc shell commands whenever Armorer exposes a first-class command.

Option 2. Install the CLI yourself

Install Armorer:

pipx install "armorer[guard]"

Or use pip directly:

pip install "armorer[guard]"

Configure the default model provider:

armorer config

Start or refresh the managed runtime:

armorer rebuild all --clean --prune

Open the local UI:

http://127.0.0.1:3000

If Armorer Guard is not available for your platform, install plain Armorer:

pipx install armorer

Armorer will still run with a basic built-in scanner.

Option 3. Run from source

git clone https://github.com/SecureNeural/Armorer.git
cd Armorer
pip install -e ".[guard]"
armorer --help

For repo development, use uv:

uv run armorer --help
uv run pytest

What Armorer Manages

Armorer combines a local control plane with a self-hosted web UI:

  • agent install, run, stop, uninstall, and repair flows
  • Docker-backed runtime lifecycle and job tracking
  • guided OpenClaw setup for providers, models, skills, Telegram, and remote access
  • a dashboard for runtime, model, gateway, security, jobs, alerts, and logs
  • Telegram gateway setup for Armorer and managed agents
  • credential capture and redaction flows
  • guardrail settings, alerting, and proactive security controls
  • release/E2E hooks for testing install and setup from scratch

OpenClaw

Install OpenClaw through Armorer:

armorer install openclaw --yes --skip-scan

Run it:

armorer run openclaw

Or use the UI:

  1. Open Discover.
  2. Install OpenClaw.
  3. Continue through the installed-agent setup wizard.
  4. Pick provider, model, skills, Telegram, and access mode.
  5. Apply setup and finish pairing if Telegram is enabled.

Armorer keeps OpenClaw setup inside the managed flow instead of dropping users into app-native onboarding unless they explicitly choose the native path.

Security

Armorer includes security controls for agent operations:

  • remote task signing and verification
  • approval flows for sensitive actions
  • credential redaction and capture handling
  • input and output scanning
  • alert routing over Telegram
  • runtime and agent health inspection
  • guard controls for steering, shutdown, restart, and scan actions

Armorer Guard is developed separately from this public repository. Public Armorer can use the private Guard binary/package when installed and falls back to a basic built-in scanner when it is not available.

Install the stronger binary scanner with:

pip install armorer-guard

Useful Commands

armorer
armorer config
armorer rebuild all --clean --prune
armorer install openclaw --yes --skip-scan
armorer run openclaw
armorer uninstall openclaw
armorer gateway telegram
armorer ui-api --host 127.0.0.1 --port 8788
armorer-redteam run --target openclaw

Development

Run tests:

uv run pytest

Build the self-hosted UI:

cd web/armorer-ui-selfhost
npm run build -- --webpack

Key areas:

  • CLI and lifecycle: src/armorer/main.py, src/armorer/cli/
  • web API: src/armorer/web/
  • OpenClaw integration: src/armorer/apps/openclaw/
  • self-hosted UI: web/armorer-ui-selfhost/
  • release pipeline: docs/architecture/ci_release_pipeline.md
  • delivery spec: specs/github_delivery_pipeline_spec.md

E2E Testing

Armorer includes a self-hosted E2E foundation for install/setup verification:

The long-term goal is to run Armorer from scratch across multiple user-like environments before changes reach production.

Symphony

This repository includes repo-side Symphony configuration so it can be driven by the upstream Symphony Elixir orchestrator for Linear-based issue execution.

See docs/symphony.md for setup and run instructions.

Releasing

Release automation lives in .github/workflows/release.yml.

The release workflow publishes:

  • a PyPI package
  • a multi-arch GHCR container image
  • a GitHub Release with Python and self-hosted UI artifacts

Detailed release steps are in docs/releasing.md.

License

See LICENSE.

Project details


Download files

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

Source Distribution

armorer-0.1.9.tar.gz (444.6 kB view details)

Uploaded Source

Built Distribution

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

armorer-0.1.9-py3-none-any.whl (511.4 kB view details)

Uploaded Python 3

File details

Details for the file armorer-0.1.9.tar.gz.

File metadata

  • Download URL: armorer-0.1.9.tar.gz
  • Upload date:
  • Size: 444.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for armorer-0.1.9.tar.gz
Algorithm Hash digest
SHA256 72a0043e7134e19a130459f774d300672a52a2155e14a4be159533144642de8f
MD5 d0dabab9eb47b12c1b0d2a0f3ed167c2
BLAKE2b-256 23f52b468a83d3376a11efdfec420653208033aa7d2d60ff7ebf45546f201dc5

See more details on using hashes here.

Provenance

The following attestation bundles were made for armorer-0.1.9.tar.gz:

Publisher: release.yml on SecureNeural/Armorer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file armorer-0.1.9-py3-none-any.whl.

File metadata

  • Download URL: armorer-0.1.9-py3-none-any.whl
  • Upload date:
  • Size: 511.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for armorer-0.1.9-py3-none-any.whl
Algorithm Hash digest
SHA256 d742b5df2563af5292d12faa018aee72b671cfbe1eebf72da1b4fe1d2ead4bd5
MD5 20a17d1338d4e29bf064e47062cb28a1
BLAKE2b-256 159f46f5dc897e3a893c3c608af5aae628a23fe3235dc6d31f391e1514c7af52

See more details on using hashes here.

Provenance

The following attestation bundles were made for armorer-0.1.9-py3-none-any.whl:

Publisher: release.yml on SecureNeural/Armorer

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

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