Aether is an AI-native, self-hosted cloud control plane built with Go and Next.js. It exposes one typed Resource API to the dashboard, CLI, automation, and future AI agent. Its central design rule is:
Aether is a control plane first, an AI agent second, and an infrastructure executor third.
The dashboard, CLI, API, and future agent all use the same typed Aether Resource API. Providers are implementation details behind that boundary; the agent never bypasses it to run arbitrary infrastructure commands.
This repository contains the Phase 0 foundation:
- a modular Go control plane (aetherd);
- the aether-node and aetherctl command surfaces;
- a Next.js dashboard foundation;
- Protobuf contracts generated for Go and TypeScript with Buf;
- ConnectRPC transport;
- PostgreSQL connectivity and migrations;
- provider, plan, policy, operation, workflow, and resource boundaries;
- local Docker Compose and production container builds;
- unit, integration, contract, and browser-test lanes in CI.
It does not yet enroll nodes, deploy containers, authenticate users, or execute AI-generated plans. Those capabilities are intentionally sequenced in ROADMAP.md.
cmd/ Go binaries: aetherd, aether-node, aetherctl
internal/ Private control-plane modules
pkg/resource/ Stable desired-state resource vocabulary
api/proto/aether/v1/ Source-of-truth API contracts
gen/go/ Generated Go contracts
gen/ts/ Generated TypeScript contracts
web/ Next.js dashboard
migrations/ Reserved for externally managed migrations
deploy/ Container and later deployment packaging
docs/ Architecture, decisions, development, and security
tests/ Cross-module test suites
Database migrations used by the binary are embedded from internal/database/migrations so aetherd can run as a single artifact.
- Go 1.27
- Node.js 24.19 LTS
- pnpm 10.32
- Docker with Compose (for the complete local stack)
Buf is installed as a project-local npm dependency. The bootstrap target also downloads the pinned, checksum-verified sqlc binary into the ignored .tools directory.
cp .env.example .env
make bootstrap
make generate
make test
docker compose up --buildThen open http://localhost:3000. The control plane listens on http://localhost:8080, with liveness and readiness at /livez and /readyz.
Run the CLI against it:
go run ./cmd/aetherctl system info --server http://localhost:8080See docs/development/getting-started.md for the full development workflow.
- Every externally visible capability starts with a Resource and typed API.
- Infrastructure changes become Plans and Operations, not hidden CRUD side effects.
- The control plane never relies on inbound SSH to managed nodes.
- Providers implement typed capabilities; no general shell tool is exposed.
- Risk, approval, audit, and tests precede agent tool exposure.
- Later systems such as K3s, Crossplane, NATS, Temporal, and OpenBao are added only when a concrete capability needs them.
Aether welcomes focused issues, documentation improvements, tests, and code contributions. Start with CONTRIBUTING.md, follow the Code of Conduct, and use GitHub Discussions for questions or design exploration.
Please report vulnerabilities through GitHub's private vulnerability reporting, not through a public issue. See SECURITY.md.