{"id":51015313,"url":"https://github.com/cypher-asi/aura-swarm","last_synced_at":"2026-06-21T09:30:40.260Z","repository":{"id":335637808,"uuid":"1146476993","full_name":"cypher-asi/aura-swarm","owner":"cypher-asi","description":"An orchestration environment for deploying agent swarms at scale.","archived":false,"fork":false,"pushed_at":"2026-06-13T16:15:24.000Z","size":1906,"stargazers_count":0,"open_issues_count":0,"forks_count":1,"subscribers_count":0,"default_branch":"master","last_synced_at":"2026-06-13T18:16:59.631Z","etag":null,"topics":["aura"],"latest_commit_sha":null,"homepage":"https://aura.ai","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/cypher-asi.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-01-31T06:38:01.000Z","updated_at":"2026-06-13T16:15:31.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/cypher-asi/aura-swarm","commit_stats":null,"previous_names":["cypher-asi/aura-swarm"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/cypher-asi/aura-swarm","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypher-asi%2Faura-swarm","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypher-asi%2Faura-swarm/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypher-asi%2Faura-swarm/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypher-asi%2Faura-swarm/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/cypher-asi","download_url":"https://codeload.github.com/cypher-asi/aura-swarm/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/cypher-asi%2Faura-swarm/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34605335,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-21T02:00:05.568Z","response_time":54,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["aura"],"created_at":"2026-06-21T09:30:39.663Z","updated_at":"2026-06-21T09:30:40.252Z","avatar_url":"https://github.com/cypher-asi.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003c!-- \u003cimg src=\"assets/banner.png\" alt=\"AURA SWARM\" width=\"480\" /\u003e --\u003e\n  \u003cstrong style=\"font-size: 2em;\"\u003eAURA SWARM\u003c/strong\u003e\n\u003c/p\u003e\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong\u003eConfidential AI Agents in SEV-SNP TEEs\u003c/strong\u003e\u003cbr/\u003e\n  A multi-user platform for running AI agents in confidential virtual machines — hardware-encrypted memory, attestation-gated sealed storage, and per-tier hourly pricing — orchestrated by Kubernetes and secured by zOS authentication.\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"#overview\"\u003eOverview\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"#quick-start\"\u003eQuick Start\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"#architecture\"\u003eArchitecture\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"#principles\"\u003ePrinciples\u003c/a\u003e \u0026nbsp;·\u0026nbsp;\n  \u003ca href=\"docs/spec/v0.2.0/README.md\"\u003eSpec\u003c/a\u003e\n\u003c/p\u003e\n\n## Overview\n\nAURA Swarm is a platform for running isolated AI agents as long-lived services. **Every agent in the fleet is a confidential SEV-SNP virtual machine** (Confidential Containers: Kata + QEMU via the `kata-qemu-snp` runtime class on AMD bare-metal nodes). Agent memory is hardware-encrypted, agent state is sealed at rest with a per-agent key released only after remote attestation by a Trustee KBS, and the platform itself — control plane, hosts, storage, operators — sits outside the trust boundary for agent data. The migration to the all-TEE architecture is complete: there is no legacy microVM tier.\n\nUsers interact with their agents through run streams proxied by the gateway, or through the `aswarm` terminal UI. The platform handles the full agent lifecycle — provisioning, running, hibernation, three wake paths (API, new session, cron trigger), tier resizing, and crypto-erasing teardown — while keeping per-agent sealed state isolated on encrypted EFS.\n\nAuthentication is handled via zOS (JWT/JWKS), and usage is billed through the zbilling service at fixed per-tier hourly rates.\n\n### Box Tiers\n\n| Tier | CPU | Memory | Price | Billing SKU |\n|---|---|---|---|---|\n| `small` | 500m | 1 GiB | 4¢/hour | `swarm.small` |\n| `standard` (default) | 1000m | 2 GiB | 8¢/hour | `swarm.standard` |\n| `pro` | 2000m | 4 GiB | 15¢/hour | `swarm.pro` |\n\nAll tiers share identical isolation, attestation, and sealing — a tier change (`POST /v1/agents/:id/tier`) is purely a resize. Hibernated agents cost nothing.\n\n---\n\n\u003cp align=\"center\"\u003e\n  \u003cstrong style=\"font-size: 1.5em;\"\u003eCore Concepts\u003c/strong\u003e\n\u003c/p\u003e\n\n1. **Agents:** Long-running aura-harness instances, each owned by a single user. An agent is backed by a Kubernetes pod running in a SEV-SNP confidential VM with its own encrypted memory, sealed filesystem state, network identity, and lifecycle.\n\n2. **Sealed storage:** Every content-bearing value the agent persists (conversation record, memory, secrets, process definitions) is AES-256-GCM encrypted under a per-agent DEK before it reaches disk. The DEK lives in the Trustee KBS and is released only into an attested guest; deleting the agent revokes the key (crypto-erase). EFS and backups only ever hold ciphertext.\n\n3. **Secrets vault \u0026 processes:** An in-TEE secrets vault (gateway pass-through API, no control-plane persistence) and in-TEE cron automations — the platform stores only `(process_id, cron, enabled, next_run_at)` and fires content-free triggers; prompts, config, and run data never leave the VM.\n\n4. **Sessions \u0026 runs:** Interactive WebSocket run streams between a user and their agent, authenticated and proxied by the gateway.\n\n5. **Lifecycle:** Provisioning → Running ⇄ Idle → Hibernating/Stopped → wake-on-demand (API call, new session, or cron trigger), with auto-hibernate after idle. Usage events with at-event-time prices power per-agent and per-user cost stats (`GET /v1/usage`).\n\n### Quick Start\n\n```sh\ngit clone https://github.com/cypher-asi/aura-swarm \u0026\u0026 cd aura-swarm\ncargo build\n```\n\nRun the gateway locally (dev mode: container isolation, no KBS — sealed mode needs the deployed stack):\n\n```sh\nDATA_DIR=.data LISTEN_ADDR=0.0.0.0:8080 cargo run -p aura-swarm-gateway\n```\n\nConnect with the CLI:\n\n```sh\nexport AURA_SWARM_GATEWAY=http://localhost:8080\nexport AURA_SWARM_TOKEN=\u003cyour-jwt\u003e\ncargo run -p aura-swarm-cli\n```\n\nSee the [full specification](docs/spec/v0.2.0/README.md) for production deployment and component details, and [deploy/README.md](deploy/README.md) for the confidential-infrastructure install order (SNP node group, CoCo operator, Trustee KBS).\n\n## Principles\n\n1. **Confidential by default:** Every agent runs in a SEV-SNP TEE. The host kernel, the hypervisor, and the platform operators cannot read agent memory or state. Isolation is hardware-enforced, not a configuration option.\n2. **Trigger outside, data inside:** Anything that must leave the TEE for the platform to function (schedules, lifecycle state, usage counters) is content-free metadata. Everything with content stays sealed inside.\n3. **Stateful:** Sealed agent state persists across restarts, hibernation, and tier changes. Users pick up where they left off — and destroying an agent crypto-erases it.\n4. **API-First:** A clean REST + WebSocket API fronts all operations. The gateway is the single entry point; internal services authenticate with a shared service token and are never exposed publicly.\n5. **Observable within the boundary:** Structured tracing throughout every crate; per-VM platform logs (live tail + termination snapshots) and usage/cost stats — without ever collecting in-VM agent content.\n\n## Architecture\n\n| Crate | Description |\n|---|---|\n| `aura-swarm-core` | Shared types, strongly-typed IDs (`AgentId`, `UserId`, `SessionId`), and error definitions |\n| `aura-swarm-store` | RocksDB storage: agents (tier + sealed-storage spec), sessions, users, process triggers, usage events, log snapshots; startup schema migrations |\n| `aura-swarm-auth` | zOS integration: JWKS fetching, JWT validation |\n| `aura-swarm-control` | Agent lifecycle, tier changes, sessions, Trustee KBS DEK lifecycle, ProcessCronService + auto-hibernate, usage aggregation |\n| `aura-swarm-scheduler` | Kubernetes reconciler: `kata-qemu-snp` pod builder (SNP node selection, KBS/sealing env), health monitoring, pod-log snapshots, tier-SKU billing reporter |\n| `aura-swarm-gateway` | Public Axum HTTP/WebSocket API, auth middleware, run/terminal/file/secrets proxying, internal service API |\n| `aura-swarm-client` | Typed client for external consumers (aura-os, aura-network) |\n| `aura-swarm-cli` | Terminal UI (`aswarm`): agent listing, creation, and interactive chat via ratatui |\n| `aura-swarm-deploy` | Deploy TUI (`aswarm-deploy`): runs the staged `deploy/` scripts with a curated step-progress column and a live machine view (raw output + read-only infra-state snapshots) via ratatui |\n\nThe agent runtime inside the TEE is **aura-harness** (sibling repository): attestation boot, sealed stores, secrets vault, processes, run/terminal/file APIs.\n\n## Project Structure\n\n```\naura-swarm/\n  Cargo.toml                    # workspace root\n  crates/\n    aura-swarm-core/            # IDs, schemas, errors\n    aura-swarm-store/           # RocksDB storage + migrations\n    aura-swarm-auth/            # JWT / JWKS authentication\n    aura-swarm-control/         # lifecycle, sessions, cron, DEK, usage\n    aura-swarm-scheduler/       # K8s pod reconciler + billing\n    aura-swarm-gateway/         # public HTTP + WebSocket API\n    aura-swarm-client/          # typed external client\n    aura-swarm-cli/             # terminal UI (aswarm)\n    aura-swarm-deploy/          # deploy-script runner TUI (aswarm-deploy)\n  docker/\n    Dockerfile.gateway          # gateway container image\n    Dockerfile.control          # control plane container image\n    Dockerfile.scheduler        # scheduler container image\n  deploy/\n    config.env                  # AWS / EKS / SNP-pool configuration\n    k8s/                        # K8s manifests (incl. CoCo CcRuntime, Trustee, runtime classes)\n    terraform/                  # VPC, EKS (+ SNP bare-metal node group), EFS, ECR\n  docs/\n    spec/v0.2.0/                # current platform specification\n    spec/v0.1.0/                # superseded (microVM era)\n```\n\n## Deployment\n\nContainer images are built with multi-stage Dockerfiles under `docker/`. Production targets AWS EKS with two node pools: an untainted system pool (gateway, scheduler, Trustee KBS) and a tainted **SEV-SNP bare-metal pool** (default `m6a.metal`, labeled `swarm.io/confidential-node=true`) where the Confidential Containers operator installs the `kata-qemu-snp` runtime for agent pods. EFS encryption is mandatory.\n\nThe `deploy/` directory contains Terraform modules plus a numbered shell-script sequence (00–12) implementing the staged TEE rollout — preflight, deploy-operator IAM, SNP node group, CoCo operator, Trustee KBS (with admin keypair generation), attestation smoke test, R1 deploy + soak, EFS backup, R2 migration + convergence gate, R3 cleanup, and finalize — each step verifying itself before handing off. See [deploy/README.md](deploy/README.md) for the step table and soak guidance; the pre-TEE-rollout scripts are kept in `deploy/legacy/`.\n\n## License\n\nMIT\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypher-asi%2Faura-swarm","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fcypher-asi%2Faura-swarm","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fcypher-asi%2Faura-swarm/lists"}