# stack

<!---MARKER_GEN_START-->
Manage Swarm stacks

### Subcommands

| Name                            | Description                                                          |
|:--------------------------------|:---------------------------------------------------------------------|
| [`config`](stack_config.md)     | Outputs the final config file, after doing merges and interpolations |
| [`deploy`](stack_deploy.md)     | Deploy a new stack or update an existing stack                       |
| [`ls`](stack_ls.md)             | List stacks                                                          |
| [`ps`](stack_ps.md)             | List the tasks in the stack                                          |
| [`rm`](stack_rm.md)             | Remove one or more stacks                                            |
| [`services`](stack_services.md) | List the services in the stack                                       |



<!---MARKER_GEN_END-->

## Description

Manage stacks.
