{"data":{"slug":"armorerlabs-armorer","name":"Armorer","tagline":"Local control plane for running AI agents with sandboxes, approvals, guardrails, credentials, and runtime health.","github_url":"https://github.com/ArmorerLabs/Armorer","owner":"ArmorerLabs","repo":"Armorer","owner_avatar_url":"https://avatars.githubusercontent.com/u/259909299?v=4","primary_language":"TypeScript","stars":58,"forks":3,"topics":["agent-runtime","agent-security","ai-agents","ai-security","cybersecurity","devtools","docker","guardrails","llm-security","local-first","nanoclaw","openclaw","sandbox","self-hosted","supply-chain-security","tool-calling"],"archived":false,"github_pushed_at":"2026-07-14T20:44:50+00:00","maintenance_label":"Very active","url":"https://www.graphcanon.com/tools/armorerlabs-armorer","markdown_url":"https://www.graphcanon.com/tools/armorerlabs-armorer.md","api_url":"https://www.graphcanon.com/api/graphcanon/tools/armorerlabs-armorer","graph_url":"https://www.graphcanon.com/api/graphcanon/graph?tool=armorerlabs-armorer","description":"Local control plane for running AI agents with sandboxes, approvals, guardrails, credentials, and runtime health.","homepage_url":"https://armorerlabs.com","license":"MIT","open_issues":3,"watchers":0,"ai_summary":null,"readme_excerpt":"<div align=\"center\">\n\n<a href=\"https://armorerlabs.com\">\n  <img src=\"assets/armorer-hero.png\" alt=\"Armorer Labs: run any agent securely\" width=\"100%\" />\n</a>\n\n# Armorer\n\n### Local control plane for AI agents\n\nRun native Armorer Flue agents with local sandboxes, guided setup,\ncredential handling, guardrails, approvals, jobs, logs, and runtime health in\none place.\n\n\n\n\n\n\n\n\n**Run any agent. Securely. Local-first by default.**\n\n> **Experimental release candidate:** Armorer is under active development. The\n> current release train is intended for early testers who are comfortable with\n> local agent runtimes, Docker/Colima, and rapidly evolving setup flows.\n\n[Website](https://armorerlabs.com) · [Install](https://armorerlabs.com/install) · [Docs for humans](HUMANS.md) · [Issues](https://github.com/ArmorerLabs/Armorer/issues)\n\nStar [ArmorerLabs/Armorer](https://github.com/ArmorerLabs/Armorer) if you want safer local agent runtimes to exist.\n\n</div>\n\n---\n\n## One Command\n\n```bash\ncurl -fsSL https://armorerlabs.com/install | sh\n```\n\nThen open the local UI and install supported agents through Armorer.\n\nThe default installer uses the native `armorer` launcher and a pinned local\nappliance image. Users do not need Python, Node.js, pnpm, Rust, or a source\ncheckout.\n\n```bash\narmorer status\narmorer doctor\narmorer logs --follow\n```\n\n## Develop\n\n```bash\ncurl -fsSL https://armorerlabs.com/install | sh -s -- --dev\n```\n\nOr run the workspace manually:\n\n```bash\ncorepack enable\npnpm install --frozen-lockfile\npnpm build\npnpm test\npnpm typecheck\npnpm --filter armorer-ui-selfhost build\n```\n\nSource/development runs also need Rust/Cargo for the native Armorer gateway.\n`pnpm dev`, `pnpm start`, and `pnpm build` run a gateway preflight that uses\nthe packaged gateway when available or builds `crates/armorer-gateway` locally.\n\nProprietary extensions are distributed as authenticated appliance images, not source inside this repository. See [Private distributions](docs/private-distributions.md).\n\nStart the self-hosted UI from source:\n\n```bash\npnpm dev -- --hostname 0.0.0.0 --port 3099\n```\n\nThen open `http://127.0.0.1:3099`.\n\nUse the CLI directly from the workspace:\n\n```bash\npnpm armorer -- list\npnpm armorer -- core status\npnpm armorer -- install armorer-agent --alias signal-native --yes --skip-scan\npnpm armorer -- jobs list\n```\n\nArmorer also supports native Armorer-managed agents and Vault-backed connected\napps from the same CLI:\n\n```bash\npnpm armorer -- install armorer-agent --alias signal-native --yes --skip-scan\npnpm armorer -- connections list\npnpm armorer -- linear customer-sync list\n```\n\nFor docker build GPG signature failures or proxy issues during agent installation, see the [Troubleshooting guide](docs/installation.md#troubleshooting).\n\n\n## Use Your Agent\n\n```text\nSet up Armorer from https://github.com/ArmorerLabs/Armorer on this machine.\nFollow AGENTS.md and the repository instructions.\nInstall Armorer, verify Docker, start the local UI, then help me create and configure an Armorer Flue agent.\nDo not report success until the Armorer CLI works, the UI is reachable, and runtime health checks pass.\n```\n\n## Why Armorer\n\n| Running agents directly | Running agents through Armorer Labs |\n| --- | --- |\n| Each agent has its own setup path | One local control plane |\n| Credentials are easy to scatter | Guided credential handling |\n| Risky actions are hard to review | Human approvals and guardrails |\n| Logs live wherever the agent puts them | Jobs, runtime status, and audit trails |\n| Local networking gets messy | Local-first with optional private remote access |\n\n## What Exists Today\n\n- Local agent runtime and UI.\n- Docker sandbox orchestration for installed agents.\n- Guided setup for providers, models, credentials, channels, and skills.\n- Native Armorer Flue agents as the supported agent runtime.\n- Armorer Agent chat runs with durable Flue-backed run state and live\n  workstream visibility.\n- Vault-backed connected apps with explicit per-agent grants.\n- Linear CRM/c","github_created_at":"2026-02-06T16:34:04+00:00","created_at":"2026-07-15T10:44:47.509906+00:00","updated_at":"2026-07-15T10:44:50.42526+00:00","categories":[{"slug":"ai-agents","name":"AI Agents","url":"https://www.graphcanon.com/categories/ai-agents","markdown_url":"https://www.graphcanon.com/categories/ai-agents.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/ai-agents"},{"slug":"llm-frameworks","name":"LLM Frameworks","url":"https://www.graphcanon.com/categories/llm-frameworks","markdown_url":"https://www.graphcanon.com/categories/llm-frameworks.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/llm-frameworks"},{"slug":"vector-databases","name":"Vector Databases","url":"https://www.graphcanon.com/categories/vector-databases","markdown_url":"https://www.graphcanon.com/categories/vector-databases.md","api_url":"https://www.graphcanon.com/api/graphcanon/categories/vector-databases"}],"tags":[{"slug":"agent-runtime","name":"agent-runtime"},{"slug":"agent-security","name":"agent-security"},{"slug":"ai-agents","name":"ai-agents"},{"slug":"ai-security","name":"ai-security"},{"slug":"cybersecurity","name":"cybersecurity"},{"slug":"devtools","name":"devtools"},{"slug":"docker","name":"docker"},{"slug":"guardrails","name":"guardrails"}],"trust":{"provenance":{"is_fork":false,"github_id":1151577859,"owner_type":"Organization","methodology":"github_public_v1","parent_repo":null,"near_duplicate_slugs":[]},"computed_at":"2026-07-15T10:44:48.479Z","maintenance":{"label":"Very active","score":96,"methodology":"github_public_v1","releases_90d":12,"days_since_push":0,"last_release_at":"2026-06-09T20:43:45Z"},"security_summary":{"status":"no_lockfile","scanner":null,"low_count":0,"high_count":0,"last_scan_at":"2026-07-15T10:44:48.944Z","medium_count":0,"scan_profile":"none","critical_count":0}},"capability_facts":{"mcp":{"source":"repo_scan","observed_at":"2026-07-15T10:44:48.253Z","server_manifest":false},"scan":{"source":"repo_scan","observed_at":"2026-07-15T10:44:48.253Z"},"deploy":{"source":"dockerfile:Dockerfile","self_host":true,"observed_at":"2026-07-15T10:44:48.253Z","managed_saas":false},"has_cli":{"value":true,"source":"package.json:bin|scripts","observed_at":"2026-07-15T10:44:48.253Z"},"languages":{"value":["typescript","javascript"],"source":"github.language+package.json","observed_at":"2026-07-15T10:44:48.253Z"},"has_docker":{"value":true,"source":"dockerfile:Dockerfile","observed_at":"2026-07-15T10:44:48.253Z"},"license_spdx":{"value":"MIT","source":"github.license","observed_at":"2026-07-15T10:44:48.253Z"}}}}