--- title: Console introduction description: The two command-line programs of SummerCMS, the summer developer tool and the application binary, and how summer delegates runtime commands. section: console order: 10 --- # Console introduction WinterCMS has one console entry point, `php artisan`. SummerCMS has two programs, because the developer tooling and the running application are separate binaries: | Program | Where it comes from | What it does | |---------|---------------------|--------------| | `summer` | Installed once from the framework with `go install ./cmd/summer`. | Builds and watches applications, scaffolds plugins and their parts, records API parity fixtures and builds these docs. | | The application binary, for example `./bin/acme` | Written by `summer build` into the application's `bin/` directory. | Runs the application: the HTTP server, migrations, workers, the scheduler, admin accounts and every command its plugins add. | The application binary is what you deploy, so everything that must run in production, such as migrations and workers, is a command of the binary rather than of `summer`. ## Getting help Both programs list their commands with `--help`, and every command accepts `--help` for its arguments and flags: ```sh summer --help summer make:model --help ./bin/acme --help ./bin/acme migrate:rollback --help ``` ## Commands that summer delegates During development you often work from the application directory with `summer` alone. These `summer` commands find the application's `summer.yaml`, build `bin/` when it does not exist yet, and run the same command of the binary with the same arguments: | summer command | Runs | |----------------|------| | `summer migrate` | `./bin/acme migrate` | | `summer migrate:rollback` | `./bin/acme migrate:rollback` | | `summer migrate:status` | `./bin/acme migrate:status` | | `summer serve` | `./bin/acme serve` | | `summer queue:work` | `./bin/acme queue:work` | | `summer queue:clear` | `./bin/acme queue:clear` | | `summer schedule:run` | `./bin/acme schedule:run` | `summer` does not rebuild an existing binary before it delegates. Run `summer build` after you change code, or keep `summer dev` running. Every other runtime command, such as `route:list`, `key:generate` or `admin:create`, is run on the binary directly. ## The sections of this chapter - [Setup and maintenance](setup-and-maintenance.md) lists every command of the application binary. - [Scaffolding](scaffolding.md) covers `summer build`, `summer dev` and the `make:` commands. - [Writing commands](writing-commands.md) shows how a plugin adds its own commands. - [Utilities](utilities.md) covers the parity and documentation commands of `summer`.