Persistent Compute is in private pilot on Mac.Join the waitlist

Your AWS

Run it in your own AWS account.

Your team's cloud computers run in your AWS account. One CloudFormation stack sets exactly what we can do there, and you can read all of it before you create it.

  1. 01

    Cloud computers, disks and logs live in your account.

  2. 02

    We can run only the actions your stack defines.

  3. 03

    Every action is logged in your account before it runs.

  4. 04

    Delete the stack and our access ends.

Where things run

Your account runs the computers. We run the controls.

  • Your AWS account

    • Cloud computers and their disks
    • The network they use
    • Our access role
    • The named actions
    • Your security log
  • Persistent Compute

    • Sign-in and team admin
    • Billing for members
    • The service that asks your account to start, stop or update computers
  • Your private network

    • Your devices reach each cloud computer over an encrypted private network
    • No inbound ports are opened

The stack

Everything it creates. 28 resources at most.

Names match the stack's Resources tab in your AWS console. Cloud computers are launched later by the access role, tagged to your team.

AccessThe roles we can use in your account.2
  • ManagementRoleAWS::IAM::Role

    Our access role. It trusts only our service, only with your connection’s external ID, for at most an hour per session.

  • SupportRoleAWS::IAM::Role

    Support access. Created only if you set SupportAccessUntil, and it stops working at that time. Only if you turn it on

ComputersWhat each cloud computer runs as.3
  • ComputerRoleAWS::IAM::Role

    The computer’s own role: Systems Manager, its own setup key, and adding to the security log.

  • ComputerProfileAWS::IAM::InstanceProfile

    Attaches the computer role to each cloud computer.

  • EnrollmentKeyAWS::KMS::Key

    Encrypts each computer’s one-time network key. Owned by your account, rotated yearly. Kept if you delete the stack

Named actionsThe only commands our role can run on your computers.12
  • ActionInstalledRuntimeAWS::SSM::Document

    Report which version of our software is installed.

  • ActionImagePrerequisitesAWS::SSM::Document

    Check the computer image has what setup needs.

  • ActionBootstrapInstallAWS::SSM::Document

    Install our background service and network client, checked against fixed checksums.

  • ActionBootstrapStatusAWS::SSM::Document

    Report whether setup finished.

  • ActionNetworkEnrollAWS::SSM::Document

    Join the computer to your private network with a one-time key.

  • ActionBootstrapConnectionAWS::SSM::Document

    Check that the background service is connected.

  • ActionCodingToolsAWS::SSM::Document

    Install git, Python, ripgrep or jq.

  • ActionRuntimeUpdateAWS::SSM::Document

    Update our background service and network client, checked against fixed checksums.

  • ActionAuthorizedKeysAWS::SSM::Document

    Set which SSH keys can sign in to the computer.

  • ActionGrowRootFilesystemAWS::SSM::Document

    Grow the file system after a disk is resized.

  • ActionIdleProbeAWS::SSM::Document

    Check whether the computer is idle.

  • ActionAgentSessionAWS::SSM::Document

    List, start, message, read or stop a Claude Code, Codex or Cursor session.

Security logA record in your account that we can’t read or erase.3
  • SecurityLogAWS::Logs::LogGroup

    CloudWatch log group for every action and snapshot. Kept for 365 days unless you choose otherwise. Kept if you delete the stack

  • SecurityCollectorDocumentAWS::SSM::Document

    Records installed software, launch settings, SSH keys and SSH logins.

  • SecurityCollectorAssociationAWS::SSM::Association

    Runs that record on every cloud computer every 30 minutes.

NetworkOnly when you choose a new network. Otherwise you name your own subnet and security group.8
  • ComputerVpcAWS::EC2::VPC

    A dedicated VPC, 10.88.0.0/16. New network only

  • ComputerInternetGatewayAWS::EC2::InternetGateway

    Outbound internet access. New network only

  • ComputerGatewayAttachmentAWS::EC2::VPCGatewayAttachment

    Attaches the gateway to the VPC. New network only

  • ComputerSubnetAWS::EC2::Subnet

    One subnet, 10.88.0.0/20, in one Availability Zone. New network only

  • ComputerRouteTableAWS::EC2::RouteTable

    Routes for that subnet. New network only

  • ComputerDefaultRouteAWS::EC2::Route

    Sends outbound traffic to the internet gateway. New network only

  • ComputerSubnetRouteTableAssociationAWS::EC2::SubnetRouteTableAssociation

    Links the subnet to its routes. New network only

  • ComputerSecurityGroupAWS::EC2::SecurityGroup

    No inbound connections. All outbound traffic. New network only

Access role

What we can do. And what we can't.

One role, defined in your stack. Changing it takes a stack update that you apply.

Can

  • Launch cloud computersOnly from our shared image, in the stack’s subnet and security group, tagged to your team. Bare-metal sizes are refused.
  • Start, stop, resize and remove themOnly computers and disks tagged to your team. Nothing else in your account.
  • Run the named actionsOnly the documents your stack created, only on your team’s computers.
  • Hand each computer a one-time network keyEncrypted with your stack’s key, readable only by the computer it was made for.
  • Read basic EC2 detailsInstances, images, subnets, routes, security groups, volumes and instance types, to run checks.

Can't

  • Open a shell or a Session Manager session
  • Run AWS-RunShellScript or any document your stack didn’t create
  • Create or change IAM users, roles or policies
  • Snapshot, image or export disks
  • Read or delete your security log
  • Change a computer’s launch settings or open inbound ports
  • Touch S3, databases, secrets or anything else in your account
The 12 named actions
installed-runtime
Report which version of our software is installed.
image-prerequisites
Check the computer image has what setup needs.
bootstrap-install
Install our background service and network client, checked against fixed checksums.
bootstrap-status
Report whether setup finished.
network-enroll
Join the computer to your private network with a one-time key.
bootstrap-connection
Check that the background service is connected.
coding-tools
Install git, Python, ripgrep or jq.
runtime-update
Update our background service and network client, checked against fixed checksums.
authorized-keys
Set which SSH keys can sign in to the computer.
grow-root-filesystem
Grow the file system after a disk is resized.
idle-probe
Check whether the computer is idle.
agent-session
List, start, message, read or stop a Claude Code, Codex or Cursor session.
Every IAM permission, exactly

Most are limited to resources tagged to your team. The template shows each condition.

  • ec2:DescribeInstances
  • ec2:DescribeRouteTables
  • ec2:DescribeNatGateways
  • ec2:DescribeImages
  • ec2:DescribeSubnets
  • ec2:DescribeSecurityGroups
  • ec2:DescribeVolumes
  • ec2:DescribeVolumesModifications
  • ec2:DescribeInstanceStatus
  • ec2:DescribeInstanceAttribute
  • ec2:DescribeInstanceTypeOfferings
  • ec2:DescribeInstanceTypes
  • ec2:RunInstances
  • ec2:CreateVolume
  • ec2:CreateTags
  • ec2:StartInstances
  • ec2:StopInstances
  • ec2:TerminateInstances
  • ec2:ModifyVolume
  • ec2:AttachVolume
  • ec2:DetachVolume
  • ec2:DeleteVolume
  • kms:Decrypt
  • kms:DescribeKey
  • kms:CreateGrant
  • kms:GenerateDataKeyWithoutPlaintext
  • kms:ReEncryptFrom
  • kms:ReEncryptTo
  • kms:Encrypt
  • kms:GenerateDataKey
  • iam:PassRole
  • iam:GetRole
  • iam:GetInstanceProfile
  • ssm:PutParameter
  • ssm:AddTagsToResource
  • ssm:GetParameter
  • ssm:DeleteParameter
  • ssm:DescribeParameters
  • ssm:DescribeInstanceInformation
  • ssm:GetCommandInvocation
  • ssm:ListCommands
  • ssm:SendCommand

Security log

A record you own. We can't erase it.

A CloudWatch log group in your account, created by your stack.

Every action, before it runs

Each named action first writes an event to your log: which action, which computer and its inputs. Long inputs are recorded as a hash. If the write fails, the action stops.

A snapshot every 30 minutes

Your stack also records our installed software, the launch settings, authorized SSH keys and SSH logins on each computer.

Append-only for us

Computers can only add events. Our role has no CloudWatch Logs permissions, so we can't read, change or delete anything in it. Only your own AWS admins control it.

It keeps events for 365 days by default, and you can choose from 30 days to 10 years. It stays if you delete the stack.

CloudTrail too

AWS CloudTrail records each command we send, with the role that sent it.

Before you create it

Review it in your own AWS console.

01

Open AWS CloudFormation

A team admin starts from Settings › Your AWS in the console and chooses Open AWS CloudFormation.

02

Read the template

AWS opens its own quick-create page in your account, with the template link shown. You can also download the template from the setup page.

03

Create the stack

Nothing exists until you acknowledge the IAM roles and choose Create stack. Afterwards, the stack's Resources tab lists everything it made.

04

Enter your account ID

We check the role, its external ID, the template version, the network, outbound HTTPS and the disk key before any computer launches.

Removing it

Delete the stack. Our access goes with it.

01

Delete your cloud computers

Delete them from the console, or terminate them yourself in EC2, where they're tagged to your team. They're launched by our role, not by the stack, so do this first.

02

Delete the stack

CloudFormation deletes our access role, the named actions and the network it made. With the role gone, we can't act in your account.

03

Keep or delete the rest

Your security log and the stack's encryption key stay, so the record outlives our access. Delete them yourself when you no longer need them.

FAQ

Questions and answers.

Who pays for what?

AWS bills you directly for your cloud computers and their storage. We bill your team per member.

Can you open a shell on our computers?

Not with the access role. Support access is a separate role that exists only if you set SupportAccessUntil on the stack, and it stops working at that time.

How long can you hold access?

Each session with the access role lasts at most 60 minutes, and only works with your connection's external ID.

Can we use our own VPC?

Yes. Choose your own network during setup and name a subnet and security group. Computers need outbound HTTPS and no inbound access.

Why isn't the template published here?

Each template is made for one team and carries that team's connection details. Your admin can read and download yours before creating anything.

Who can set it up?

Team admins, from Settings › Your AWS in the console. If you don't see it, email hello@persistentcompute.ai.