efx — CLI Reference
Command-line interface for the Effixo platform.
Global flags
Available on every command.
| Flag | Type | Default | Description |
|---|---|---|---|
--api-url | string | Backend API URL (overrides config) | |
--auth-url | string | Auth service URL (overrides config) | |
-o, --output | string | table | Output format: table, json |
efx
Effixo CLI — manage apps, services, and deployments
efx [flags]
efx is the command-line interface for the Effixo platform. Use it to create and manage apps, deploy and scale services, and handle secrets, volumes, organizations, and invites — from your terminal or CI. Configuration is resolved in order: command flags, then environment variables (EFX_API_URL, EFX_AUTH_URL, EFX_API_KEY), then ~/.efx/config.yaml, then built-in defaults. Authenticate once with 'efx login'.
Subcommands
apps · invites · login · logout · orgs · secrets · services · status · volumes · whoami
efx apps
Manage apps
efx apps
Aliases: app
Manage apps — the top-level grouping that owns your services. An app holds one or more services and carries team-based access (admin, writer, reader). Create an app first, then deploy services into it. Pausing or resuming an app cascades to its services, and teams can be assigned to an app to control who may view, deploy, or manage it.
# Create an app and list all apps efx apps create acme efx apps list # Grant a team writer access, then pause the app efx apps assign-team acme --team platform --role writer efx apps pause acme
Subcommands
assign-team · create · delete · get · list · pause · resume · teams · update
efx apps assign-team
Assign a team to an app with a role
efx apps assign-team <app> <team-name-or-id> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--role | string | writer | Role: admin, writer, reader |
efx apps create
Create a new app
efx apps create <name>
efx apps delete
Delete an app
efx apps delete <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
-y, --yes | bool | false | Skip confirmation |
efx apps get
Show app details
efx apps get <id-or-name>
efx apps list
List apps
efx apps list
efx apps pause
Pause an app
efx apps pause <id-or-name>
efx apps resume
Resume a paused app
efx apps resume <id-or-name>
efx apps teams
List team assignments for an app
efx apps teams <id-or-name>
efx apps update
Update an app (rename)
efx apps update <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--name | string | New app name |
efx invites
Manage organization invites
efx invites
Invite users to your organization and manage pending invites. Create an invite for an email address, list outstanding invites, and revoke one that is no longer needed. Requires organization admin permissions.
efx invites create [email protected] efx invites list efx invites revoke [email protected]
Subcommands
efx invites create
Create an organization invite
efx invites create <email> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--role | string | member | Role: admin or member |
--team | stringSlice | [] | Optional team IDs to assign on accept (repeatable) |
efx invites list
List pending invites
efx invites list
efx invites revoke
Revoke a pending invite
efx invites revoke <invite-id>
efx login
Authenticate with an API key
efx login [flags]
Authenticate with an Effixo API key. Provide the key with --api-key, the EFX_API_KEY environment variable, or the interactive prompt. The key is exchanged for a token and saved to ~/.efx/config.yaml so subsequent commands are authenticated. Create API keys in the console under Teams → API Keys.
efx login --api-key efx_xxx EFX_API_KEY=efx_xxx efx login
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--api-key | string | API key (or set EFX_API_KEY env var) |
efx logout
Clear stored credentials
efx logout
efx orgs
List and switch organization context
efx orgs
List the organizations you belong to and switch the active one. The active org determines which apps, services, and secrets you see. Switching re-issues your token for the selected org and updates ~/.efx/config.yaml.
efx orgs list efx orgs switch acme-inc
Subcommands
efx orgs list
List organizations for the current user
efx orgs list
efx orgs switch
Switch the current organization context
efx orgs switch <org-id|org-name>
efx secrets
Manage secrets
efx secrets
Aliases: secret
Manage secrets — encrypted key/value pairs injected into services. Secrets are org-scoped by default, or app-scoped with --app. Reference them from a service's environment at deploy time (for example via --secret-env on 'services create'). Values are write-only over the API and can be shown again only by users with permission, using 'secrets reveal'.
# Create an org-scoped and an app-scoped secret efx secrets create DB_PASSWORD --value s3cr3t efx secrets create API_KEY --value abc123 --app acme # List, then reveal a value efx secrets list efx secrets reveal DB_PASSWORD
Subcommands
efx secrets create
Create a secret
efx secrets create <name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (for app-scoped secrets) | |
--value | string | Secret value |
efx secrets delete
Delete a secret
efx secrets delete <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
-y, --yes | bool | false | Skip confirmation |
efx secrets list
List secrets
efx secrets list
efx secrets reveal
Reveal a secret's value (admin only)
efx secrets reveal <id-or-name>
efx secrets update
Update a secret's value
efx secrets update <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--value | string | New secret value |
efx services
Manage services
efx services
Aliases: svc, service
Manage services — the deployable workloads inside an app. A service runs a container image with a port, an optional HTTP route, scaling bounds, environment variables, secrets, and persistent volumes. Creating or updating a service produces a deployment; use 'redeploy' to roll it again with the current definition. Services belong to an app and deploy to a region.
# Create a web service in the "acme" app
efx services create --app acme --name web \
--image nginx:latest --port 80/http --route 80:/ --min-scale 1
# Create a service with a persistent volume, then redeploy
efx services create --app acme --name api --image myapi:1 \
--volume data:/var/lib/data
efx services redeploy webSubcommands
efx services create
Create a service from a definition file or flags
efx services create [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (required) | |
--env | stringSlice | [] | Environment variable (KEY=VALUE, repeatable) |
-f, --file | string | Definition JSON file | |
--image | string | Docker image | |
--instance-type | string | Instance type (e.g. micro, small, medium) | |
--max-scale | int | 1 | Maximum number of instances |
--min-scale | int | 1 | Minimum number of instances |
--name | string | Service name | |
--port | stringSlice | [] | Port (PORT/PROTOCOL e.g. 8080/http, repeatable) |
--region | string | wep01 | Region |
--route | stringSlice | [] | Route (PORT:PATH e.g. 8080:/, repeatable) |
--secret-env | stringSlice | [] | Secret env var (KEY=SECRET_NAME, repeatable) |
--type | string | WEB | Service type (WEB, WORKER) |
--volume | stringSlice | [] | Volume mount (NAME:/mount/path, repeatable) |
efx services delete
Delete a service
efx services delete <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (disambiguate same-named services) | |
-y, --yes | bool | false | Skip confirmation |
efx services get
Show service details
efx services get <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (disambiguate same-named services) |
efx services list
List services
efx services list [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | Filter by app name or ID |
efx services redeploy
Trigger a redeployment
efx services redeploy <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (disambiguate same-named services) |
efx services update
Update a service's definition
efx services update <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (disambiguate same-named services) | |
--env | stringSlice | [] | Environment variable (KEY=VALUE, repeatable) |
-f, --file | string | Definition JSON file | |
--image | string | Docker image | |
--instance-type | string | Instance type (e.g. micro, small, medium) | |
--max-scale | int | 0 | Maximum number of instances |
--min-scale | int | 0 | Minimum number of instances |
--name | string | New service name (rename) | |
--port | stringSlice | [] | Port (PORT/PROTOCOL e.g. 8080/http, repeatable) |
--region | string | Region | |
--route | stringSlice | [] | Route (PORT:PATH e.g. 8080:/, repeatable) |
--secret-env | stringSlice | [] | Secret env var (KEY=SECRET_NAME, repeatable) |
--type | string | Service type (WEB, WORKER) |
efx status
Show quick status overview
efx status [service-id] [flags]
Show a quick health overview. With no argument, prints a summary of your apps and services and their current status. Pass a service name or ID to drill into that service's deployments and instances. Use --app to disambiguate when a service name exists in multiple apps.
# Overview of everything efx status # Drill into one service efx status web --app acme
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (disambiguate same-named services) |
efx volumes
Manage persistent volumes
efx volumes
Aliases: volume, vol
Manage persistent volumes — movable disks that outlive a service. A volume is a named, org- or app-scoped disk. Its backing storage (PVC) is created lazily when a service that mounts it first deploys, survives detach, and can be handed off to another service one at a time (ReadWriteOnce). Deleting the volume is what destroys the data. Attach one to a service with the '--volume NAME:/mount/path' flag on 'services create'.
# Create volumes (default 1Gi, storage class local-path)
efx volumes create data --size 5Gi
efx volumes create cache --size 1Gi --app acme --storage-class local-path
# List, then attach to a service
efx volumes list
efx services create --app acme --name db --image postgres:16 \
--volume data:/var/lib/postgresql/dataSubcommands
efx volumes create
Create a persistent volume
efx volumes create <name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
--app | string | App name or ID (for app-scoped volumes) | |
--size | string | 1Gi | Volume size (e.g. 1Gi, 10Gi) |
--storage-class | string | Storage class (default: local-path) |
efx volumes delete
Delete a persistent volume (destroys its data)
efx volumes delete <id-or-name> [flags]
Flags
| Flag | Type | Default | Description |
|---|---|---|---|
-y, --yes | bool | false | Skip confirmation |
efx volumes list
List volumes
efx volumes list
efx whoami
Show current user, org, and role
efx whoami
Show who you are currently authenticated as. Prints your email, active organization, and your org and platform roles, based on the stored token. Useful for confirming which org context commands will run against before making changes.