Skip to content

lollipopkit/exedev-cli

Repository files navigation

exe.dev cli

中文

This workspace provides two operator CLIs for managing exe.dev VMs and a small Kubernetes fleet.

Skill

Install the exedev-ctl skill:

npx skills add https://github.com/lollipopkit/exedev-cli

exedev-ctl

exedev-ctl is the exe.dev VM management CLI. It uses local SSH by default and can also call the exe.dev HTTPS command API with --transport http.

List VMs through SSH:

exedev-ctl ls

Use the HTTPS API explicitly:

# You can create one from https://exe.dev/user
export EXE_DEV_API_KEY="exe0...."
exedev-ctl --transport http ls

Both CLIs also load environment variables from .env automatically. Existing shell environment variables take precedence.

Common operations:

exedev-ctl new --name p1-a-1 --image ubuntu:22.04 --no-email
exedev-ctl share port p1-a-1 8080
exedev-ctl domain add p1-a-1 app.example.com
exedev-ctl rm p1-a-1

Dangerous operations such as rm, public share changes, and support-root grants ask for confirmation by default. Use --yes only in reviewed automation.

Detailed documentation:

exeuntu

exeuntu is the default exe.dev base image. It is a developer/agent-oriented Ubuntu 24.04 image with systemd and a broader set of apt-installed tools than a minimal container image. Published images are available from ghcr.io/lollipopkit/exeuntu.

Release Compatibility

Release archives include Linux musl binaries for x86_64 and aarch64, plus native macOS binaries for Intel and Apple Silicon. Linux release binaries are built with vendored native TLS and static OpenSSL so they do not require a compatible system libssl.so at runtime. CI validates the Linux musl dist build before release packaging.

exedev-k8s

exedev-k8s is the Kubernetes fleet management CLI. It reads fleet.yaml, creates or reuses exe.dev VMs, bootstraps Tailscale and k3s, labels and taints nodes, and can deploy manifests with kubectl apply -f.

k8s-cli

Preview a fleet plan:

exedev-k8s plan --fleet fleet.yaml --mode new

Bootstrap a new k3s fleet:

export EXE_DEV_API_KEY="exe0...."
# You can create one from https://login.tailscale.com/admin/machines/new-linux
export TS_AUTHKEY="tskey-auth-..."
exedev-k8s bootstrap --fleet fleet.yaml --mode new --manifests k8s/examples

The fleet model starts from fleet.example.yaml. Project and task pools become deterministic Kubernetes labels such as exedev.dev/project, exedev.dev/task, and exedev.dev/pool; isolated pools also receive a NoSchedule taint.

Detailed documentation:

About

Unofficial CLI for https://exe.dev

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages