Prerequisites
Before running the installer, confirm you have the following:AWS credentials configured
Run the command below. It must return your account ID without errors.If you see an error, run
aws configure or set AWS_PROFILE to a profile with admin access on your sandbox account.A supported shell
The installer works in
bash, zsh, and AWS CloudShell. If you’re using CloudShell, your credentials are already configured — you can skip the step above.Bedrock access in your region (most packs)
OpenClaw, Claude Code, NemoClaw, Hermes, Pi, and IronClaw all use Amazon Bedrock. Make sure your account has model access enabled for the region you plan to deploy into.
Codex CLI (OpenAI) and Kiro CLI (Kiro cloud) do not use Bedrock. If you pick either of those, you can skip this step.
Interactive install
Run the one-liner below. The installer walks you through four choices — install mode, agent pack, permission profile, and deploy method — then provisions everything automatically.- Install mode — Simple (recommended) or Advanced. Simple asks only for pack and profile, then auto-configures everything else. See Simple-mode defaults for what gets decided for you.
- Agent pack — the AI agent runtime to install (OpenClaw, Claude Code, Codex CLI, Kiro CLI, NemoClaw, Hermes, Pi, or IronClaw).
- Profile — the IAM permission level for the agent’s EC2 instance.
- Deploy method — CloudFormation (default) or Terraform.
Non-interactive install
Pass-y (or --non-interactive) with --pack and --profile to skip all prompts. This is useful for scripts, CI pipelines, or repeatable setups.
- OpenClaw — builder
- OpenClaw — read-only
- Claude Code
- Codex CLI
- Kiro CLI
- NemoClaw
Full stateful agent with persistent memory, 24/7 gateway, and multi-channel access (Telegram, Discord, Slack). Gets
AdministratorAccess.CLI flags reference
| Flag | Values | Description |
|---|---|---|
-y, --non-interactive, --yes | — | Skip all prompts; accept defaults |
--pack <name> | openclaw, claude-code, codex-cli, kiro-cli, nemoclaw, hermes, pi, ironclaw | Agent pack to deploy |
--profile <name> | builder, account_assistant, personal_assistant | IAM permission profile |
--method <name> | cfn, terraform / tf | Deploy method (default: cfn) |
--simple | — | Force simple install mode |
--advanced | — | Force advanced install mode |
--kiro-from-secret <id|arn> | Secrets Manager ID or ARN | Kiro API key for headless Kiro CLI deploys |
What happens after you run the installer
The installer creates your infrastructure and boots the agent in four stages:CloudFormation (or Terraform) creates the base infrastructure
CloudFormation (or Terraform) creates the base infrastructure
A new VPC (
10.0.0.0/16), public subnet (10.0.1.0/24), internet gateway, security group, and IAM instance profile are created in your account. The EC2 instance size depends on your profile: t4g.xlarge for builder, t4g.medium for assistant profiles. All instances are arm64 Graviton.UserData bootstrap runs on the instance
UserData bootstrap runs on the instance
The instance installs Node.js via mise, clones the Lowkey repo, and dispatches to the selected pack’s
install.sh. CloudFormation (or Terraform) waits for a success signal before marking the stack complete.The agent pack installs and starts
The agent pack installs and starts
Each pack follows its own install logic — systemd service, CLI binary, or both. OpenClaw and NemoClaw install as systemd services; Claude Code and Codex CLI install as CLI tools you run interactively.
Security services turn on (builder and account_assistant)
Security services turn on (builder and account_assistant)
Security Hub, GuardDuty, Inspector, IAM Access Analyzer, and AWS Config recorder are enabled automatically. The
personal_assistant profile skips all security services.Connect via SSM Session Manager
Connect via SSM Session Manager
SSH is disabled by default. Connect using AWS Systems Manager:Find the instance ID in the CloudFormation stack Outputs tab, or run:
Verify your install
Once the stack reachesCREATE_COMPLETE, SSM into the instance and run the version check for your pack:
- OpenClaw
- Claude Code
- Codex CLI
- Kiro CLI
- NemoClaw
- Hermes
Run the essential bootstraps
After connecting to your agent for the first time, run the essential bootstraps. They configure skills, memory management, coding standards, and security practices — and significantly reduce agent mistakes. Paste this into your agent chat:Risks
Thebuilder profile gives your agent AdministratorAccess to your AWS account. That’s what makes it useful — and what makes it dangerous:
- LLMs make mistakes. They can misconfigure IAM policies, delete resources, create overly permissive security groups, or run up costs with unintended resource creation. This will happen eventually.
- Admin access means admin-level damage. If the model hallucinates a destructive command, it has the permissions to execute it. There is no approval gate by default.
- Non-deterministic behavior. The same prompt can produce different infrastructure on different days. Not all changes are reversible.
- Lowkey is not a security product. It can surface GuardDuty and Security Hub findings, but an LLM summarizing alerts is not the same as a security team.
- Use a dedicated sandbox account. This is the single most important thing you can do. One account = one blast radius.
- Set AWS Budgets alerts from day one.
- Review CloudTrail periodically — every API call the agent makes is logged there.
- Start small. Build a simple app before asking the agent to design a multi-service platform.
Clean up
To remove a Lowkey deployment and all resources it created, run the uninstaller. It finds deployments by tag, lets you pick which to remove, and handles both CloudFormation and Terraform.The uninstaller also offers to remove Terraform state buckets and DynamoDB lock tables if they exist. Any Bedrock inference charges stop when the instance terminates.