Skip to navigation

ast blueprint

Build, push, deploy, and manage blueprints in the registry
View as Markdown

Manage blueprints in the active account.

ast blueprint <subcommand>

blueprint list

ast blueprint list [--archived] [--json]

--archived lists archived blueprints instead of active ones.

blueprint get

ast blueprint get <name> [--json] [--card] [--template]

--card shows the agent description. --template shows the deployment variables and secrets the blueprint expects.

blueprint deploy

Deploy a blueprint as a new agent in the active account. Alias: ast deploy. Omit the blueprint in a project directory to deploy the blueprint named in astropods.yml.

ast blueprint deploy [<account>/]<name> [flags]
ast deploy [<account>/]<name> [flags]

A bare <name> is a blueprint in the active account. To deploy a blueprint that another account publishes, such as a public blueprint, name it as <account>/<name>. The @<account>/<name> form from astropods.yml also works.

ast deploy acme-labs/summarizer

The deploy prints the environment the agent runs in.

FlagDescription
-n, --name <display-name>Display name for the deployment
--env <name>Environment to deploy into; it must have no agent. Defaults to the blueprint’s oldest environment with no agent, or a new one
--adapter web|insecure-web|slackAdapter to enable (repeatable); defaults to web with auth
--var KEY=VALUEInline variable; KEY=@SECRET_NAME resolves from the vault; KEY=@ uses the key name as the secret name
--vars-file <file>Load variables from a .env file
--schedule <job>=<cron>Cron expression for a scheduled job (repeatable)
--build <id>Pin to a specific build ID
--cluster <id>Cluster to deploy to. Defaults to your account’s default cluster. On an account with more than one cluster, omitting the flag prompts you to pick one
--dry-runValidate inputs without deploying
--waitWait until the public Launch URL is ready before returning
--jsonPrint JSON output on success

Schedule a job

A blueprint declares that a job runs on a schedule; you set when at deploy time. On a first deploy, every job with trigger: {type: schedule} needs a --schedule flag, or the deploy fails validation with cron expression required for schedule trigger.

ast deploy my-agent --schedule docs_sync="*/15 * * * *"

Repeat the flag for each job:

ast deploy my-agent \
--schedule docs_sync="*/15 * * * *" \
--schedule metrics_rollup="0 9 * * 1"

Use a standard five-field cron expression: minute, hour, day of month, month, day of week. Seconds and descriptors such as @daily are not accepted. The server rejects an invalid expression, so a typo surfaces after the request, not before it.

Schedules run in UTC, and a CRON_TZ= or TZ= prefix is not supported. Convert a local time to UTC before you set it. A schedule does not follow daylight saving time, so a job set for a local hour runs an hour off for part of the year where the clocks change.

A redeploy keeps the cadence it already has, so pass agent redeploy a --schedule only for the jobs you want to change. See Ingestion for how to declare the job itself.

blueprint build

Build the container image for a blueprint. Alias: ast build.

ast blueprint build [name] [flags]
ast build [name] [flags]

If [name] is omitted, the name is read from astropods.yml.

FlagDescription
-f, --file <path>Path to spec file (default: astropods.yml)

blueprint push

Build and push to the registry. Alias: ast push.

ast blueprint push [name] [flags]
ast push [name] [flags]

The [name] argument sets the blueprint name in the registry and overrides the name field in astropods.yml. If omitted, the name is read from astropods.yml. Pushing to an archived blueprint restores it.

For a normal push, when the selected spec is in a Git repository, the CLI records the current commit SHA and message. It checks the spec directory and every component’s build.context; unrelated paths in the same repository do not affect the push, while shared build contexts do. If those inputs have staged, unstaged, untracked nonignored, or submodule changes, the push stops before building. Commit the changes or pass --allow-dirty to continue and mark the published build as dirty. --yes does not bypass this check.

If a relevant path cannot be checked by Git or the paths span multiple repositories, the CLI warns that provenance is incomplete but does not block the push. The recorded SHA identifies only the repository containing the selected spec, so some build inputs may not be represented by that commit.

--no-build does not inspect the current Git checkout or attach a commit SHA, commit message, or dirty state. The checkout at push time cannot establish the provenance of an image that was built earlier.

FlagDescription
-V, --visibility public|privateSet blueprint visibility (default: private)
--no-buildSkip building the image before pushing
--allow-dirtyPush even when relevant blueprint inputs have uncommitted changes
--allow-account-overridePush under the active account even if the spec name has a different account prefix
-f, --file <path>Path to spec file (default: astropods.yml)
-y, --yesSkip ordinary confirmation prompts; does not allow a dirty push

blueprint archive

Archive a blueprint so it no longer appears in listings.

ast blueprint archive <name>

blueprint set

Update settings on an existing blueprint.

ast blueprint set <name> [-V|--visibility public|private]
FlagDescription
-V, --visibility public|privateSet blueprint visibility

Next steps