---
title: blossom app_plan:init
url: "/docs/reference/cli/app_plan/init/"
canonical_url: https://docs.blossom88.com/docs/reference/cli/app_plan/init/
markdown_url: https://docs.blossom88.com/docs/reference/cli/app_plan/init.md
summary: Write app_plan.yml from the repository in the working directory, or from
  a saved App Plan
categories:
- cli
- reference
---

# blossom app_plan:init

Write app_plan.yml from the repository in the working directory, or from a saved App Plan

## Usage

    blossom app_plan:init [--from FROM] [--force]

## Flags

| Flag | Description |
| --- | --- |
| `--from` | Write the file from a saved App Plan id instead of the repository |
| `--force, -f` | Overwrite an existing starter file |

Examples:

    cd path/to/the/app
    blossom app_plan:init
    blossom quickstart:list

Writes app_plan.yml. Inside a git repository with an origin remote the file
is derived from it: the source from the remote, the App name from the
repository, and the Services from the Procfile (web first and public; release
hooks are not Services). A private GitHub repository is planned as
`private_provider`, cloned through the Account's connected GitHub App.
Elsewhere it writes the example starter. Check the Service command, edit
anything else, then plan it, or deploy it at once:

    blossom app_plan:create --data app_plan.yml
    blossom app_plan:deploy --data app_plan.yml

A Procfile `cable` process becomes a public Service with `paths: ["/cable"]`,
which the deploy turns into the Environment's `/cable` route, so ActionCable
answers on the web host. Nothing is routed by a Service's name.

To keep files across deploys, uncomment the web Service's `storage:` block.
A Volume makes the Service Persistent: one Container, with the Volume at
`mount_path`. Buildpack Apps live in `/workspace`, so `/workspace/storage` is
the App's own `storage/` folder.
