Commands
glci#
Launch the interactive TUI. Browse pipeline structure, run jobs, view history. If stdout is not a TTY, prints help.
glci run [job...]#
Run pipeline jobs locally. Job names support glob patterns (* is the only metacharacter). Global flags also apply.
| Flag | Description |
|---|---|
-d, --detached | Start pipeline in background and exit |
-e, --executor | Executor: docker, kubernetes (default “docker”) |
--image | Default Docker image (default “alpine:latest”) |
--stage | Run only jobs in this stage |
--env KEY=VALUE | Set variable (repeatable) |
--env-file | Load variables from env file |
--secrets | Remote variables: all, project, none (default “all”) |
--refresh-secrets | Force refresh cached API variables |
--git-strategy | clone, fetch, none, remote (default “clone”) |
--context | branch=NAME, merge_request, tag=NAME, env=NAME |
--mr-source | Source branch for merge_request |
--mr-target | Target branch for merge_request |
--input KEY=VALUE | Pipeline input (repeatable) |
--inputs-file | Load inputs from YAML file |
--dirty | Include uncommitted files (default: true) |
--no-dirty | Only use committed code |
--reuse-artifacts | Reuse artifacts from prior run |
--simulate | Echo commands, produce dummy artifacts |
--timeout | Override job timeout (e.g. 30m, 1h) |
--no-registry | Disable embedded registry |
--registry | Custom registry URL |
--registry-user | Container registry username |
--registry-password | Container registry password |
--push-through | Mirror pushes to upstream registry |
--pull-policy | Docker image pull policy: always, if-not-present, never |
--no-token | Disable forwarding host token as CI_JOB_TOKEN |
--skip | Skip a job (treated as success; repeatable) |
--no-skip | Force-run a normally-skipped job (repeatable) |
--no-skip-all | Disable all skip rules from config |
--manual | Auto-run a manual job (repeatable) |
--manual-all | Auto-run ALL manual jobs |
--no-manual | Disable manual auto-run |
--project-dir | Map trigger target to local dir (repeatable) |
-p, --pipeline | Named preset from .glciconfig.toml |
-w, --watch | Re-run on file changes |
--debounce | Debounce interval (default 500ms) |
--on-change | Shell command to run when files change (requires –watch) |
glci show#
Visualize pipeline without running it. Evaluates rules: using the specified context (default: merge_request).
| Flag | Description |
|---|---|
-w, --watch | Re-render on file changes |
--debounce | Debounce interval (default 500ms) |
--on-change | Shell command to run when files change (requires –watch) |
--plain | Disable colors |
--no-dag | Hide needs annotations |
--json | JSON output |
--context | CI context: branch=NAME, merge_request, tag=NAME, env=NAME |
--mr-source | Source branch for merge_request |
--mr-target | Target branch for merge_request |
--input KEY=VALUE | Pipeline input (repeatable) |
--inputs-file | Load inputs from YAML file |
-p, --pipeline | Named preset |
glci stop [pipeline-id]#
Stop running pipelines or individual jobs. If the daemon no longer tracks the pipeline (e.g., after a daemon restart), glci stop <id> falls back to force-removing leftover containers and the pipeline network, then marks the pipeline as canceled in history.
| Flag | Description |
|---|---|
--job | Stop specific job |
glci log [pipeline-id] [job-name]#
Show job trace logs. Streams live for running jobs.
glci retry [pipeline-id]#
Retry failed jobs.
| Flag | Description |
|---|---|
--job | Retry specific job |
glci jobs#
List parsed pipeline jobs. Applies the same context filtering as glci show. Global flags also apply.
| Flag | Description |
|---|---|
--stage | Filter by stage |
--json | JSON output |
--context | CI context: branch=NAME, merge_request, tag=NAME, env=NAME |
--mr-source | Source branch for merge_request |
--mr-target | Target branch for merge_request |
--input KEY=VALUE | Pipeline input (repeatable) |
--inputs-file | Load inputs from YAML file |
-p, --pipeline | Named preset |
-w, --watch | Re-list on file changes |
--debounce | Debounce interval (default 500ms) |
--on-change | Shell command to run when files change (requires –watch) |
glci lint#
Validate CI configuration. Parses the full CI file (including include: directives) and checks for structural issues.
| Flag | Description |
|---|---|
-q, --quiet | Exit code only, no output on success |
-w, --watch | Re-validate on file changes |
--debounce | Debounce interval (default 500ms) |
--on-change | Shell command to run when files change (requires –watch) |
glci history#
List past pipeline runs.
| Flag | Description |
|---|---|
--limit | Max results (default 20) |
glci history show [id]#
Show pipeline details with job list. Defaults to the latest pipeline.
| Flag | Description |
|---|---|
--plain | Plain text output (no colors) |
--no-dag | Hide DAG dependency arrows |
glci history clean#
Delete history.
| Flag | Description |
|---|---|
--keep N | Keep last N |
glci ps#
List active pipelines and containers.
| Flag | Description |
|---|---|
-c, --containers | Show only Docker containers |
glci artifacts#
glci artifacts list [pipeline-id]#
| Flag | Description |
|---|---|
--all | Across all pipelines |
glci artifacts download [pipeline-id] <job>#
| Flag | Description |
|---|---|
--output | Output path |
glci artifacts extract [pipeline-id] <job>#
| Flag | Description |
|---|---|
--output | Output directory |
glci artifacts inspect [pipeline-id] <job>#
glci artifacts diff <id1> <id2>#
| Flag | Description |
|---|---|
--job | Job name |
glci artifacts delete [pipeline-id] [job]#
| Flag | Description |
|---|---|
--all | All pipelines |
--older-than | Duration (e.g. 7d) |
glci releases#
glci releases list [pipeline-id]#
| Flag | Description |
|---|---|
--all | Across all pipelines |
glci releases show [pipeline-id] <tag>#
glci releases download [pipeline-id] <tag> [file]#
| Flag | Description |
|---|---|
-o, --output | Output path/directory |
glci registry#
Manage the embedded container registry.
glci registry list#
List images stored in the local registry.
| Flag | Description |
|---|---|
--project | Filter by project path |
glci registry pull <image> [prefix]#
Pull an image from the daemon registry into the local Docker daemon. An optional prefix retags the image (e.g., local produces local.registry.gitlab.com/...).
glci registry clean#
Remove stored registry blobs.
| Flag | Description |
|---|---|
--project | Only clean specific project’s images |
glci registry stats#
Show registry storage usage (total size, image count, layer count).
glci pages#
Preview GitLab Pages sites from local pipeline runs.
glci pages serve [pipeline-id] [job-name]#
Extract and serve a Pages job’s artifact over HTTP. Pipeline ID defaults to the latest pipeline. Job name defaults to the first Pages-enabled job found (pages: true or pages: { publish: "dir" }). The publish directory within the artifact is served (default public/). If the publish directory is not found, the artifact root is served. If the preferred port is taken, the next available port is chosen automatically.
| Flag | Description |
|---|---|
-p, --port | Port to serve on (default 8080) |
--host | Host to bind to (default 127.0.0.1) |
glci config#
Show effective merged configuration (global ~/.glci/config.toml + project .glciconfig.toml). Running glci config with no subcommand is equivalent to glci config show.
Displays [docker], [skip], and [pipelines.*] sections. Runner configuration ([runner] and [runners.<name>]) including config templates is validated at load time — template syntax errors appear as warnings.
| Flag | Description |
|---|---|
--gitlab | Show resolved GitLab instance config (URL, token source, project) |
--network | Show network, paths, and TLS config with defaults annotated |
glci config show#
Same as glci config – accepts the same --gitlab and --network flags.
glci config init#
Scaffold a starter .glciconfig.toml in the current project. Errors if the file already exists.
glci config edit#
Open the project config in $EDITOR (falls back to $VISUAL). If no project config exists, opens $EDITOR on .glciconfig.toml in the current directory.
glci system#
glci system df#
Show disk usage of all glci resources.
glci system prune#
Remove unused containers, networks, volumes, CI cache.
| Flag | Description |
|---|---|
-a, --all | Remove everything including registry and history |
--force | Skip confirmation prompt |
glci system cache clean#
Wipe CI cache volume.
glci system logs info#
Show log file path and size.
glci system logs clean#
Remove the log file.
glci system docker containers|networks|volumes#
Inspect glci-managed Docker resources.
glci daemon#
glci daemon status#
Show PID, uptime, active pipelines, commit.
glci daemon start#
Start the daemon manually.
glci daemon stop#
Graceful shutdown. Waits for running jobs to complete.
| Flag | Description |
|---|---|
--force | Force kill the daemon immediately |
glci daemon logs#
Show daemon log output.
| Flag | Description |
|---|---|
-F, --follow | Follow log output in real time (like tail -f) |
-n, --lines | Number of lines to show (default 50, 0 for all) |
glci skill#
glci skill install#
Download and install the glci skill file for AI coding agents. When run interactively, prompts for agent and scope selection. Supports: Claude Code, Cursor, Windsurf, VS Code (Copilot), GitLab Duo, Codex (OpenAI), OpenCode.
| Flag | Description |
|---|---|
--agent | Target agent(s): claude-code, cursor, windsurf, vscode, gitlab-duo, codex, opencode (comma-separated) |
--scope | Installation scope: project or global |
glci doctor#
Run health checks: Docker, daemon, token, CI config, git. Each check reports pass, fail, or warning with details.
glci version#
Show CLI and daemon build commit. Reports a [VERSION MISMATCH] warning if the CLI and daemon were built from different commits.
Global flags#
These flags are available on all commands:
| Flag | Description |
|---|---|
-f, --file | Path to CI config file (default “.gitlab-ci.yml”) |
--token | GitLab private token (or set GITLAB_TOKEN env var) |
--gitlab-url | GitLab instance URL (or set GITLAB_URL env var) |
--project | GitLab project path (e.g. group/subgroup/project) |