Apps
App creation, management, static hosting, GitHub integration, review, and publish commands
This page covers an app's whole life in the CLI — creation, reads, settings changes, GitHub integration, file storage, custom domains, ownership, and publication review. A new app starts with apps bootstrap (template + repository + first deploy) or apps create. For the concepts behind "who can use this app" — visibility, invitations — start with the access control guide. Flag descriptions in the tables are the CLI help text verbatim.
axhub apps
Manage apps: list, create, fork, update, members, git, and bootstrap.
axhub apps archive
Archive an app record (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps bootstrap
Bootstrap a new app from a template or repository.
| Flag | Type | Description | Default |
|---|---|---|---|
--device-code | string | Resume an already-issued GitHub OAuth device code (env: AXHUB_GITHUB_DEVICE_CODE) | — |
--dry-run | boolean | Dry-run preview is the default. Pass --execute to create backend app + GitHub repo + deploy | true |
--execute | boolean | Execute the bootstrap saga | — |
--github-owner | string | GitHub owner or organization where the repository will be created | — |
--installation-id | integer | GitHub App installation id | — |
--name | string | New app display name | — |
--repo-name | string | Repository name to create in GitHub | — |
--repo-private | boolean | Create a private repository. Default unless --repo-public is passed | true |
--repo-public | boolean | Create a public repository | — |
--resume-last | boolean | Resume the latest locally cached GitHub Device Flow for this profile | — |
--slug | string | New app slug | — |
--subdomain | string | New app subdomain label | — |
--template | string | Template UUID or built-in alias (react, nextjs, astro) | — |
--tenant | string | Tenant slug or id. Defaults to the active tenant when omitted | — |
--wait-approval | string | Keep waiting for the user's GitHub approval inside this one command, up to the given duration (6s–10m; e.g. 90s). Without it the resume polls once and exits. Use it instead of re-running the resume in a loop. Use with --device-code or --resume-last | — |
--watch | boolean | Poll the bootstrap status endpoint until done/failed | — |
--watch-interval | string | Poll interval such as 2s or 1m. Minimum 1s; defaults to 2s | — |
--watch-timeout | string | Maximum watch time such as 30m, 60s. Defaults to 30m | — |
axhub apps bootstrap-status
Check the status of an in-progress bootstrap.
| Flag | Type | Description | Default |
|---|---|---|---|
<bootstrap> | string (positional) | Bootstrap id returned by axhub apps bootstrap --execute | — |
--tenant | string | Tenant slug or id. Defaults to the active tenant when omitted | — |
--watch | boolean | Poll until done/failed | — |
--watch-interval | string | Poll interval such as 2s or 1m. Minimum 1s; defaults to 2s | — |
--watch-timeout | string | Maximum watch time such as 30m, 60s. Defaults to 30m | — |
axhub apps check-availability
Check whether an app slug is available.
| Flag | Type | Description | Default |
|---|---|---|---|
--slug | string | App slug to preflight | — |
--subdomain | string | App subdomain label to preflight | — |
--tenant | string | Tenant slug or id. Defaults to the active tenant when omitted | — |
axhub apps co-owners
Manage an app's co-owners.
axhub apps co-owners list
Show the representative owner and all co-owners (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
axhub apps co-owners add
Grant a user co-ownership.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--user | string | Target user id | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps co-owners remove
Revoke a user's co-ownership — owner-only access is cut immediately.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--user | string | Target user id | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps create
Create a new app.
| Flag | Type | Description | Default |
|---|---|---|---|
--auth-mode | string | App auth mode: cookie, bearer, api_key, or anonymous | — |
--category | string | App category slug or ID. | — |
--data-scopes | string | Comma-separated data scopes | — |
--deploy-method | string | Deploy method on creation: docker (default), compose, or static. Immutable after create — backend rejects subsequent updates with invalid_state_transition / immutable_field | — |
--description | string | App description (≤20000 chars). Symmetric with apps update --description | — |
--from-file | string | Path to a local input file. | — |
--icon-dark-url | string | Dark-mode icon URL | — |
--icon-url | string | Light-mode icon URL (typically from axhub apps sign-icon-upload) | — |
--interactive | boolean | Use an interactive prompt when terminal input is available. | — |
--name | string | Resource display name. | — |
--resource-tier | string | Pod resource tier on creation: XS / S / M / L / XL. Sent to the API as resource_preset. Tenant max (tenants.max_resource_tier, default L) is enforced backend-side | — |
--slug | string | Stable slug or identifier for the resource. | — |
--subdomain | string | Subdomain on creation. Persisted as apps.subdomain (spec 285 fix) | — |
--tenant | string | Tenant slug or ID used to scope the command. | — |
axhub apps delete
Delete an app (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps detect
Detect GitHub repo build settings for migration (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--owner | string | Repository owner. Use together with --repo-name | — |
--path | string | Sub-path within the repository (monorepo app root) | — |
--ref | string | Git ref (branch, tag, or commit SHA). Defaults to the repo default branch | — |
--repo | string | GitHub repository as owner/repo. Alternative to --owner + --repo-name | — |
--repo-name | string | Repository name. Use together with --owner | — |
axhub apps discover
Discover public apps in the catalog.
| Flag | Type | Description | Default |
|---|---|---|---|
--category | string | App category slug or ID. | — |
--created-within-days | string | Filter apps created within N days (1..=3650) | — |
--limit | integer | Pagination control for list output. | — |
--page | integer | Page number (1-based) | — |
--per-page | integer | Page size forwarded to the backend as the dedicated per_page=N query key (distinct from --limit, which is forwarded verbatim as limit=N). If both flags are passed, --limit wins. Integrations that capture the outbound query string must read per_page and limit independently | — |
--q | string | Search query string. | — |
--sort | string | Sort order for list output. | — |
--tenant | string | Tenant slug or id scope (tenant-scoped discover) | — |
axhub apps domains
Manage an app's custom domains.
axhub apps domains list
List an app's custom domains (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
axhub apps domains add
Register a custom domain and receive the DNS records to publish. The domain stays pending until you publish the DNS records and domains verify succeeds.
| Flag | Type | Description | Default |
|---|---|---|---|
<host> | string (positional) | Hostname to attach, e.g. app.example.com | — |
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps domains remove
Detach a custom domain — the certificate is deleted and traffic is cut immediately. Not idempotent: a second run exits with code 5.
| Flag | Type | Description | Default |
|---|---|---|---|
<domain_id> | string (positional) | Custom domain id (from domains list), not the hostname | — |
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps domains verify
Re-check DNS and move the domain toward the active state.
| Flag | Type | Description | Default |
|---|---|---|---|
<domain_id> | string (positional) | Custom domain id (from domains list), not the hostname | — |
--app | string | App id or slug | — |
--wait | boolean | Poll until the domain becomes active or disconnected; bounded by the global --timeout (exit 10 on overrun) | — |
axhub apps fork
Fork an existing app into a new app.
| Flag | Type | Description | Default |
|---|---|---|---|
<source> | string (positional) | Source app slug/id | — |
--dry-run | boolean | Dry-run preview is the default | true |
--execute | boolean | Execute the fork bootstrap saga | — |
--name | string | New app display name. Defaults to --slug | — |
--repo-public | boolean | Create a public fork repo when the bootstrap backend creates GitHub resources | — |
--slug | string | New app slug | — |
--subdomain | string | New app subdomain label | — |
--template | string | Override source template id when the source app does not expose one | — |
--tenant | string | Destination tenant slug/id. Defaults to the active tenant | — |
axhub apps get
Show one app's details by id or slug.
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
axhub apps git
Manage an app's git connection.
axhub apps git connect
Connect a GitHub repository to an axhub app.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug. Preferred for agent scripts | — |
--branch | string | Branch to connect | main |
--device-code | string | Resume an already-issued GitHub OAuth device code (env: AXHUB_GITHUB_DEVICE_CODE) | — |
--direct | boolean | Use the direct backend connection endpoint with repo-owner installation resolution | — |
--dry-run | boolean | Dry-run preview is the default. Pass --execute to mutate | true |
--execute | boolean | Execute the backend git-connection mutation | — |
--installation-id | integer | Optional explicit GitHub App installation id; must belong to the repo owner | — |
--no-browser | boolean | Alias for direct backend connection mode; no browser/device flow is launched | — |
--repo | string | Repository in owner/repo form | — |
--resume-last | boolean | Resume the latest locally cached GitHub Device Flow for this profile | — |
--wait-approval | string | Keep waiting for the user's GitHub approval inside this one command, up to the given duration (6s–10m; e.g. 90s). Without it the resume polls once and exits. Use it instead of re-running the resume in a loop. Use with --device-code or --resume-last | — |
axhub apps git disconnect
Disconnect the app's GitHub repository.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug. Preferred for agent scripts | — |
--dry-run | boolean | Dry-run preview is the default. Pass --execute to mutate | true |
--execute | boolean | Execute the backend disconnect mutation | — |
axhub apps git status
Show the app's current GitHub connection.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug. Preferred for agent scripts | — |
axhub apps git update
Update the connected branch.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug. Preferred for agent scripts | — |
--branch | string | New branch name | — |
--dry-run | boolean | Dry-run preview is the default. Pass --execute to mutate | true |
--execute | boolean | Execute the backend update mutation | — |
axhub apps inspection-consent
Check and set consent for the deploy inspection pipeline sending this app's source code to an external LLM reviewer. Revoking consent does not recall code already sent, and LLM opinions are advisory only — blocking verdicts come from the deterministic scanner (axhub deploy scan). axhub apps inspection-consent --app <app> is shorthand for get.
axhub apps inspection-consent get
Show the app's current code-inspection consent state (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
axhub apps inspection-consent set
Grant or revoke consent. One of --granted or --revoked is required.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--granted | boolean | Allow the deploy inspection pipeline to send this app's source code to an LLM reviewer | — |
--revoked | boolean | Withdraw consent; future inspections stop sending source code | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps list
List apps you can access (paginated).
| Flag | Type | Description | Default |
|---|---|---|---|
--all | boolean | Fetch all pages the backend returns | — |
--category-id | string | Category UUID filter | — |
--operating-status | string | Operating rollup filter: live | dev | archived | — |
--operating-status-in | string | Comma-separated operating rollup filter (OR) | — |
--page | integer | Page number to request | — |
--page-size | integer | Number of apps per page | — |
--per-page | integer | Alias for --page-size | — |
--q | string | Search query forwarded as q | — |
--review-status | string | Single review status (backend authority — additional values may exist) | — |
--review-status-in | string | Comma-separated review status filter | — |
--sort | string | Sort key (backend authority — additional values may exist) | — |
--status | string | App deployment status filter: draft | deployed | archived (spec 324) | — |
--tenant | string | Tenant slug or id scope | — |
--visibility | string | Visibility filter: private / invite_only / public / internet | — |
axhub apps members
List members of an app.
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--page | integer | Page number (1-based) | — |
--per-page | integer | Page size (default 50, max 200) | — |
axhub apps mine
List apps the active user can access.
| Flag | Type | Description | Default |
|---|---|---|---|
--page | integer | Page number to forward to the backend (current backend may return the full list) | — |
--per-page | integer | Page size to forward to the backend (current backend may return the full list) | — |
axhub apps owned
List apps owned by the active user (App-shape, no pagination flags).
(no options)
axhub apps ownership
Manage an app's representative ownership.
axhub apps ownership transfer
Hand the representative-owner role to another user. Irreversible — once executed you are demoted to co-owner, and only the new owner can hand it back. Execution requires the global --yes in addition to --execute.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--to | string | User id that becomes the new representative owner | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Commit the transfer. Must be combined with the global --yes | — |
axhub apps purge
Permanently purge a deleted app (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps raw-db
Manage an app's raw Postgres database.
axhub apps raw-db disable
Disable the raw Postgres database (irreversible; dry-run by default).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps raw-db enable
Enable the raw Postgres database (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps reactivate
Reactivate an archived app record (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps received
List apps received by the active user (owned apps excluded).
(no options)
axhub apps resource-presets
List backend resource preset catalog.
(no options)
axhub apps resume
Resume an app; dry-run by default. Backend auto-redeploys the last successful production deployment.
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps search
Search apps by query.
| Flag | Type | Description | Default |
|---|---|---|---|
<query> | string (positional) | Search query string. | — |
--all | boolean | — | — |
--category | string | App category slug or ID. | — |
--cursor | string | Backend cursor for the next search page | — |
--limit | integer | Backend page-size limit; takes precedence over --per-page | — |
--page | integer | Pagination control for list output. | — |
--per-page | integer | Pagination control for list output. | — |
--sort | string | Sort order for list output. | — |
--status | string | App deployment status filter: draft | deployed | archived | — |
--status-in | string | Comma-separated status filter | — |
--visibility | string | — | — |
axhub apps sign-icon-upload
Request a signed URL to upload an app icon.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App slug or id (required unless --pre-create is set) | — |
--content-type | string | Explicit content type for pre-create mode (overrides file extension detection since no file is read) | — |
--dry-run | boolean | Preview only — request the signed URL but skip the PUT upload (default) | true |
--execute | boolean | Commit the upload; mutually exclusive with --dry-run | — |
--file | string | Path to the icon file to upload (PNG/JPEG/WEBP/GIF, ≤ 2MB). Ignored in --pre-create mode (no upload happens) | — |
--pre-create | boolean | Pre-create mode: request a presigned PUT URL for the tenant-level POST /api/v1/tenants/{tID}/apps/icon/upload-url endpoint so the icon can be uploaded before the app exists. Requires --tenant + --slug + --content-type. Skips the local file PUT; the caller drives the upload to the returned put_url with their own client | false |
--slug | string | App slug for pre-create mode (the slug the app will have) | — |
--tenant | string | Tenant slug or id for pre-create mode | — |
--variant | string | Icon variant: light (default) or dark | light |
axhub apps static
Manage static hosting (releases + site) for an app.
axhub apps static auth
Start protected static-site auth and return a redirect URL.
axhub apps static auth start
Start static auth for a target URL. OAuth login required.
| Flag | Type | Description | Default |
|---|---|---|---|
--target | string | Static-site URL to authenticate. OAuth login required. | — |
axhub apps static deploy
Deploy a local directory as a new static release (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--from-dir | string | Local directory whose files become the static release | — |
--release-version | string | Optional release version label. The clap field is release_version (and flag --release-version) to avoid colliding with the global --version flag's arg id; it is sent to the backend as version | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases
Manage static releases for an app.
axhub apps static releases activate
Activate a static release (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases create
Create a new static release (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--body-json | string | Inline JSON object request body | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--from-file | string | Path to a JSON object request body | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases finalize
Finalize a static release (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases list
List static releases (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App slug or ID to operate on. | — |
--tenant | string | Tenant slug or ID used to scope the command. | — |
axhub apps static releases promote-approve
Approve a pending static release promote request.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases promote-reject
Reject a pending static release promote request.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases promote-request
Request review to promote the staged release to production.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases revoke
Revoke a static release (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases rollback
Roll back to a static release (dry-run by default; use --execute).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static releases stage
Point the staging host at a finalized static release.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--release-id | string | Release id | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static site
Inspect or configure the static site.
axhub apps static site get
Show the current static-site configuration (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App slug or ID to operate on. | — |
--tenant | string | Tenant slug or ID used to scope the command. | — |
axhub apps static site set
Replace the static-site configuration (dry-run by default; use --execute).
The static-only visibility setting has been retired. Static page access is now decided solely by the app's visibility — the server ignores the --visibility value below. Change visibility with axhub apps update --visibility (narrowing) or axhub publish (widening). Service Workers are always blocked regardless of settings.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--body-json | string | Inline JSON object request body | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--from-file | string | Path to a JSON object request body | — |
--service-worker-allowed | boolean | Retired — ignored. Service Workers are always blocked | — |
--service-worker-disallowed | boolean | Retired — ignored. Service Workers are always blocked | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
--visibility | string | Retired — ignored. Access is decided by the app's visibility | — |
axhub apps static site staging
Enable or disable static-site staging.
axhub apps static site staging disable
Disable the derived staging host.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static site staging enable
Enable the derived staging host for release review.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps static site unpublish
Stop serving the static site (dry-run by default; use --execute). The app's visibility does not change — republish and it opens at the previous scope.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub apps storage
Manage app file storage (declarative object storage). It can also be enabled via storage.enabled: true in axhub.yaml — see the Connect storage.
axhub apps storage status
Show storage provisioning state and access details (read-only).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
axhub apps storage enable
Provision app storage (idempotent).
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps storage ls
List stored objects in cursor pages.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug | — |
--prefix | string | Only list keys starting with this prefix | — |
--delimiter | string | Group keys past this separator into prefixes (folder view), e.g. / | — |
--limit | integer | Backend page size for this request | — |
--cursor | string | Cursor from a previous page's next_cursor | — |
axhub apps storage get-url
Issue a presigned https download URL for one object key.
| Flag | Type | Description | Default |
|---|---|---|---|
<key> | string (positional) | Object key | — |
--app | string | App id or slug | — |
axhub apps storage rm
Delete one object — the backend has no CLI-side undo.
| Flag | Type | Description | Default |
|---|---|---|---|
<key> | string (positional) | Object key | — |
--app | string | App id or slug | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps suspend
Suspend an app runtime; dry-run by default, use --execute to mutate.
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--dry-run | boolean | Preview the operation without applying state changes. | true |
--execute | boolean | Apply the state-changing operation instead of previewing it. | — |
axhub apps templates
Manage app templates.
axhub apps templates list
List active app bootstrap templates.
(no options)
axhub apps update
Update an app's metadata.
| Flag | Type | Description | Default |
|---|---|---|---|
<app> | string (positional) | App slug or ID to operate on. | — |
--auth-mode | string | New auth mode: cookie, bearer, api_key, or anonymous | — |
--category-id | string | New category UUID | — |
--clear-category | boolean | Clear the category (wins over --category-id) | — |
--clear-cost-center | boolean | Clear the cost attribution label | — |
--clear-subdomain | boolean | Clear the subdomain (mutually exclusive with --subdomain) | — |
--cost-center | string | New cost attribution label | — |
--data-scopes | string | New comma-separated data scopes | — |
--description | string | New description (≤20000 chars). Pass an empty string to clear | — |
--icon-dark-url | string | New dark-mode icon URL | — |
--icon-url | string | New light-mode icon URL (typically from axhub apps sign-icon-upload) | — |
--name | string | New display name (1~100 chars) | — |
--resource-tier | string | New Pod resource tier: XS / S / M / L / XL. Sent to the API as resource_preset. Tenant max enforced backend-side | — |
--subdomain | string | New subdomain | — |
--summary | string | New one-line app summary (≤60 chars). Pass an empty string to clear | — |
--visibility | string | New visibility: private / invite_only / public / internet. Narrowing only — to widen, submit a publication request via axhub publish (violations get 409 visibility_widen_not_allowed) | — |
axhub apps workspace
List workspace apps visible to the active user (App-shape, no pagination flags).
(no options)
axhub init
Scaffold a new axhub.yaml in the current directory.
| Flag | Type | Description | Default |
|---|---|---|---|
<args> | string (positional) | — | — |
axhub github
Connect and manage GitHub repositories.
axhub github accounts
List GitHub accounts and AxHub installation state.
axhub github accounts list
List user and organization accounts visible to AxHub.
(no options)
axhub github complete
Complete GitHub App installation callback state binding.
| Flag | Type | Description | Default |
|---|---|---|---|
--branch | string | — | — |
--installation-id | integer | — | — |
--repo | string | — | — |
--state | string | — | — |
axhub github installations
Browse repositories available to a GitHub App installation.
axhub github installations repos
List repositories for a GitHub installation id.
| Flag | Type | Description | Default |
|---|---|---|---|
--installation-id | integer | GitHub App installation id | — |
--page | integer | Page number to request | — |
--per-page | integer | Repositories per page | — |
axhub github link
Link a GitHub user token via the browserless device-link flow.
| Flag | Type | Description | Default |
|---|---|---|---|
--tenant | string | Tenant id or slug (defaults to the active tenant) | — |
axhub open
Open an app or resource in the browser.
| Flag | Type | Description | Default |
|---|---|---|---|
<args> | string (positional) | — | — |
--logs | boolean | — | — |
--metrics | boolean | — | — |
axhub categories
Manage app categories: list, create, update, and delete.
axhub categories get
Show one category by id.
| Flag | Type | Description | Default |
|---|---|---|---|
<id> | string (positional) | Resource identifier. | — |
--tenant | string | Tenant slug or ID used to scope the command. | — |
axhub categories list
List app categories.
| Flag | Type | Description | Default |
|---|---|---|---|
--all | boolean | — | — |
--page | integer | Pagination control for list output. | — |
--per-page | integer | Pagination control for list output. | — |
--tenant | string | Tenant slug or ID used to scope the command. | — |
axhub review
Review and moderate pending app publication requests.
axhub review get
Get a publication request.
| Flag | Type | Description | Default |
|---|---|---|---|
<request_id> | string (positional) | publication request id | — |
axhub review history
Show review-request history for an app or tenant.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | app slug or id for per-app history | — |
--page | integer | page number for per-app history (default 1) | — |
--page-size | integer | items per page (default 20) | — |
--tenant | string | tenant id for tenant-wide settled history; overrides global --tenant | — |
axhub publish
Submit a publication request to make an app public.
| Flag | Type | Description | Default |
|---|---|---|---|
--app | string | App id or slug (defaults to axhub.yaml name/app.slug) | — |
--deployment-id | string | Deployment id to publish (staging apps) | — |
--dry-run | boolean | Preview the publication request without submitting (default) | true |
--execute | boolean | Submit the publication request | — |
--note | string | Submission note for the reviewer | — |
--visibility | string | Requested visibility for a normal app: invite_only / public / internet | — |