Managing Pipelines
Pipelines are a YAML-based configuration system for defining CI/CD workflows in TeamCity. Each pipeline belongs to a project, references a VCS root, and contains one or more jobs. The teamcity pipeline command group lets you list, inspect, create, and manage pipeline YAML.
Listing pipelines
View all pipelines on the server:

Filter by project:
pipeline list flags
Flag | Description |
|---|---|
| Filter by project ID |
| Maximum number of pipelines to display (default 30, use 0 for all) |
| Output as JSON. Use |
Viewing pipeline details
The view shows the pipeline name, parent project, head build type, and all jobs with their YAML keys and display names.
Validating pipeline YAML
Validate a .teamcity.yml file against the server's JSON schema before pushing:
The schema is fetched from the server and cached locally for 24 hours. Use --refresh-schema to force a re-fetch, or --schema to use a local schema file.
validate flags
Flag | Description |
|---|---|
| Path to a local JSON schema file |
| Force re-fetch schema from server |
Inspecting the pipeline schema
Print the per-instance JSON schema TeamCity uses to validate .teamcity.yml:

The complete schema includes the enabled runners and build features, with their parameters, on the connected server, so it can drift between TeamCity versions. The CLI caches it locally for 24 hours; pass --refresh to bypass the cache and re-fetch from the server:
If the complete schema endpoint is unavailable, the command prints a limited embedded fallback schema and warns on stderr. --refresh requires the server schema. Authentication and server errors are reported, not replaced with a fallback. Proxies must allow /app/pipeline/schema/complete; allowing only /app/rest/ is insufficient.
Creating a pipeline
Create a new pipeline from a YAML file:
When --vcs-root is omitted, an interactive prompt lists VCS roots available in the project.
create flags
Flag | Description |
|---|---|
| Parent project ID (required) |
| VCS root ID. Use |
| Path to pipeline YAML file (default |
Downloading pipeline YAML
Download the YAML source for a server-stored pipeline:
Output goes to stdout by default, making it pipe-friendly. Use -o to write to a file.
Uploading pipeline YAML
Push updated YAML to a server-stored pipeline:
When no file is specified, the CLI reads .teamcity.yml from the current directory.
pipeline push <id> --file pipeline.yml (or -f) selects the YAML file, as with pipeline create. The existing positional file argument remains supported; do not combine it with --file.
Deleting a pipeline
A confirmation prompt is shown unless --yes is passed.
Managing secrets
Pipeline secrets use credentialsJSON: tokens. Create a token in the pipeline's project, then reference it in your YAML:
Reference the token in your pipeline YAML:
Then push:
Pipelines in other commands
Project tree
teamcity project tree shows pipelines alongside jobs, marked with ⬡:
Pipeline-generated sub-projects and virtual build types are hidden automatically.
Run view
When viewing a pipeline run, the CLI shows the pipeline name and lists all jobs:
Run tree
teamcity run tree detects pipeline runs and displays a flat job list with a status summary instead of a generic dependency tree:

Job list
teamcity job list hides pipeline head build types by default. Use --all to show them:
Running a pipeline
Pipelines are triggered through the standard run start command using the pipeline head build type ID: