> For clean Markdown of any page, append .md to the page URL.
> For a complete documentation index, see https://docs.astropods.com/llms.txt.
> For full documentation content, see https://docs.astropods.com/llms-full.txt.

# Your first blueprint

A **blueprint** is a versioned snapshot of your agent project (built container images and a registered spec) stored in the Astropods registry. Once pushed, a blueprint can be deployed as a live agent or shared with others.

Requires an account and [`ast login`](/authentication).

<Steps>
  <Step title="Log in">
    ```bash
    ast login
    ```

    Completes the browser authentication flow. See [Authentication](/authentication) for details.
  </Step>

  <Step title="Push">
    From your agent project directory, push and register the blueprint under a name:

    ```bash
    ast blueprint push <name>
    ```

    The `<name>` argument sets the blueprint name in the registry and does not need to match the `name` field in `astropods.yml`. This lets you push the same project under different names, for example to maintain a staging and production blueprint from one codebase:

    ```bash
    ast blueprint push my-agent-staging
    ast blueprint push my-agent-prod
    ```

    Blueprints are **private** by default. To publish to the public catalog:

    ```bash
    ast blueprint push my-agent --visibility public
    ```
  </Step>

  <Step title="View your blueprints">
    List all blueprints in the active account:

    ```bash
    ast blueprint list
    ```

    Get details (including the rendered agent card) for a specific blueprint:

    ```bash
    ast blueprint get <name> --card
    ```
  </Step>
</Steps>

***

## Pushing to an org account

If your `astropods.yml` includes an account prefix in the name (e.g. `name: myorg/my-agent`) and your active account is different, the push will fail with an account mismatch error. Either switch to the matching account first:

```bash
ast account switch myorg
ast blueprint push my-agent
```

Or pass `--allow-account-override` to push under the active account regardless of the prefix in the spec:

```bash
ast blueprint push my-agent --allow-account-override
```

***

## Next steps

* [Deploy your first agent](/deploy-agent): run a blueprint as a live hosted agent
* [Managing secrets](/secrets): store credentials in the account vault for deployment
* [Make your agent discoverable](/agent-card): add an `AGENT.md` to control how your blueprint appears in the blueprints catalog