Orbi is a SQL-like DSL for managing infrastructure across Azure, AWS, Cloudflare, GitHub, and Kubernetes — with live queries against real cluster state.
$ curl -fsSL https://raw.githubusercontent.com/epyphite/orbi/main/install.sh | sh$ orbi "SELECT name, namespace, status, restarts FROM k8s_pods WHERE status = 'CrashLoopBackOff';" ┌─────────────────────┬────────────┬──────────────────┬──────────┐ │ name │ namespace │ status │ restarts │ ├─────────────────────┼────────────┼──────────────────┼──────────┤ │ api-worker-7f9b6 │ prod │ CrashLoopBackOff │ 14 │ │ billing-sync-2d1c │ prod │ CrashLoopBackOff │ 8 │ │ notif-dispatcher-xy │ staging │ CrashLoopBackOff │ 3 │ └─────────────────────┴────────────┴──────────────────┴──────────┘ 3 rows $ orbi "SELECT name, replicas, ready_replicas FROM k8s_deployments WHERE ready_replicas < replicas;" ┌──────────────────┬──────────┬─────────────────┐ │ name │ replicas │ ready_replicas │ ├──────────────────┼──────────┼─────────────────┤ │ api-worker │ 5 │ 2 │ │ billing-sync │ 3 │ 0 │ └──────────────────┴──────────┴─────────────────┘ 2 rows $ orbi "CREATE RESOURCE 'cf_dns_record' id='api' zone='example.com' type='A' content='1.2.3.4';" ✓ Created cf_dns_record 'api' in zone example.com → 1.2.3.4 $
This is orbi querying a live Kubernetes cluster.
Not a static snapshot. Not a Terraform state file. The actual pods, right now.
-- Which pods are crashing across all namespaces? SELECT name, namespace, restarts FROM k8s_pods WHERE status = 'CrashLoopBackOff'; -- Which deployments haven't caught up to their desired replica count? SELECT name, replicas, ready_replicas FROM k8s_deployments WHERE ready_replicas < replicas; -- Which firewall rules block traffic from Tor exit nodes? SELECT id, expression, action FROM resources WHERE resource_type = 'cf_firewall_rule' AND expression LIKE '%tor%';
kubectl get pods | grep CrashLoopBackOff works, until you need to sort by restart count, filter by namespace, and join against deployment names.
Orbi treats every resource — Kubernetes pods, Azure databases, AWS VPCs, Cloudflare DNS records — as rows in a table.
Query them with WHERE clauses. Filter by tags. Sort by status.
No other tool does this.
# why
We built Orbi after the 400th time we wrote a bash script to find drift between our Terraform state and reality. If infrastructure is data, we thought, why can't we query it? Turns out you can — and once you can, everything else about managing infrastructure gets easier.
Describe what you want. Orbi figures out how. IF NOT EXISTS makes every statement idempotent. Re-running a file is safe.
CREATE IF NOT EXISTS RESOURCE 'postgres' id = 'prod-db' version = '16' storage_gb = 64;
Your registry is SQLite. Your cloud state is a view. SELECT anything. Join anything. Export anything.
SELECT resource_type, COUNT(*) FROM resources WHERE status = 'pending' GROUP BY resource_type;
Azure, AWS, Cloudflare, GitHub, Kubernetes, Firecracker. Same CREATE/SELECT/DESTROY. Different ON PROVIDER.
CREATE RESOURCE 'postgres' id = 'db' ON PROVIDER 'azure-prod'; CREATE RESOURCE 'rds_postgres' id = 'dr' ON PROVIDER 'aws-dr';
VMs, PostgreSQL, AKS, networking, container apps
EC2, RDS, VPC, Security Groups
DNS, firewall, page rules, zones
Repos, rulesets, secrets, workflow files
Deployments, services, LIVE pod queries
Local dev + prod edge compute
Plus 9 credential backends: env, file, HashiCorp Vault, AWS Secrets Manager, GCP Secret Manager, Azure Key Vault, 1Password, SOPS, Kubernetes Secrets.
-- Kubernetes deployment from zero ADD IF NOT EXISTS PROVIDER id = 'prod' type = 'kubernetes' auth = 'env:KUBECONTEXT'; CREATE RESOURCE 'k8s_namespace' id = 'api'; CREATE RESOURCE 'k8s_deployment' id = 'api' namespace = 'api' image = 'myregistry.azurecr.io/api:v1.2.3' replicas = 3 port = 8080 ON PROVIDER 'prod'; CREATE RESOURCE 'k8s_service' id = 'api' namespace = 'api' type = 'LoadBalancer' port = 80 target_port = 8080 ON PROVIDER 'prod';
No credentials required. Simulate mode runs the full DSL against realistic fake clouds. Point it at real infrastructure when you're ready.
# Install curl -fsSL https://raw.githubusercontent.com/epyphite/orbi/main/install.sh | sh # Try it — no credentials needed orbi --simulate "CREATE RESOURCE 'postgres' id = 'test-db' version = '16';" # Interactive shell orbi shell
No spam. Unsubscribe anytime. We'll email you when new providers ship.