UPDATECLI(1)

πŸ“¦
version 0.123.0 Β· 2 versions
, in nixpkgs unstable

πŸŽ€ UPDATECLI(1) β€” the updatecli manual, group-chat edition πŸŽ€

okay bestie, welcome to the updatecli manual (that's UPDATECLI(1) if you're being formal πŸ’…). Sit down, hydrate, and let's get into it.


✨ NAME ✨

updatecli β€” Updatecli is a declarative dependency manager command line tool πŸ’–


✨ SYNOPSIS ✨

updatecli [options...] [argument...]

✨ DESCRIPTION ✨

So. Updatecli is a declarative dependency manager command line tool 🫢 that's the whole vibe.

Based on Updatecli manifest(s), it makes sure that your target files are up to date. Like, it literally goes and keeps them fresh. No stale manifests, no cap.

Updatecli works in three stages, and the way it does this is honestly kind of iconic:

  1. Source β€” retrieve a value from a third location, like a file, an api, etc.. πŸ‘€ grab the data, get the tea.
  2. Condition β€” ensure conditions are met, based on the value that got retrieved during the source stage. vibe check time βœ…
  3. Target β€” update the target, based on the value retrieved from the source stage. slay, ship it πŸ’…

✨ OPTIONS ✨

  • --debug β€” Debug Output πŸ” like, show me everything.
  • --disable-version-check β€” Disable version check (env: UPDATECLI_DISABLE_VERSION_CHECK) πŸ™ˆ she doesn't need to know.
  • --experimental β€” Enable Experimental mode πŸ§ͺ live a little.
  • --unique-tmp-dir β€” Use a unique temporary directory to allow running multiple Updatecli instances in parallel πŸŒ€ so nobody's stepping on anybody's toes.

✨ COMMANDS ✨

πŸ‘‘ apply NAME[:TAG|@DIGEST]

  • ⚠️ Deprecated in favor of updatecli pipeline apply
  • apply checks if an update is needed then apply the changes πŸ”₯

OPTIONS πŸ’…

  • --clean β€” Remove updatecli working directory like '--clean=true' 🧹
  • --clean-git-branches β€” Remove updatecli working git branches like '--clean-git-branches=true' 🌿
  • --commit β€” Record changes to the repository, '--commit=false' πŸ“
  • -c, --config β€” Sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d' πŸ“
  • --disable-changelog β€” Disable changelog retrieval to avoid unnecessary requests (env: UPDATECLI_DISABLE_CHANGELOG) 🚫
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true' πŸ”“
  • --disable-udash-report β€” Disable publishing pipeline reports to Udash πŸ“‰
  • --existing-only β€” Skip targets when pipeline has no existing remote branch '--existing-only=true' πŸ™…β€β™€οΈ
  • --export-report-to-yaml β€” Export pipeline reports to YAML files πŸ“„
  • --labels β€” Filter pipelines by their labels, accepted as a comma separated list (key:value) 🏷️
  • --pipeline-ids β€” Filter pipelines to apply by their pipeline IDs, accepted as comma separated list πŸ†”
  • --push β€” Update remote refs '--push=false' πŸš€
  • --relative-paths β€” What the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS) πŸ›£οΈ
  • --secrets β€” Sets Sops secrets file uses for templating πŸ”
  • --udash-api-url β€” Udash API URL selecting which service stored by udash login receives pipeline reports 🌐
  • --validate-schema β€” Report manifest keys not matching the Updatecli schema as warnings (env: UPDATECLI_VALIDATE_SCHEMA) βœ”οΈ
  • -v, --values β€” Sets values file uses for templating πŸ—‚οΈ
  • -i, --values-inline β€” Sets inline values uses for templating, accepted valid json/yaml string πŸ“¦

🐚 completion

Generate the autocompletion script for the specified shell πŸ¦‹ (iykyk, tab-completion is self-care)

COMMANDS

bash

Generate the autocompletion script for bash

OPTIONS

  • --no-descriptions β€” disable completion descriptions 🀐

fish

Generate the autocompletion script for fish 🐟

OPTIONS

  • --no-descriptions β€” disable completion descriptions 🀐

powershell

Generate the autocompletion script for powershell πŸ’ 

OPTIONS

  • --no-descriptions β€” disable completion descriptions 🀐

zsh

Generate the autocompletion script for zsh 🐚

OPTIONS

  • --no-descriptions β€” disable completion descriptions 🀐

🧩 compose

compose executes specific Updatecli compose tasks such as diff or apply πŸ› οΈ

COMMANDS

apply

apply checks and apply changes defined by the compose file βœ…

OPTIONS

  • --clean β€” Remove updatecli working directory like '--clean=true' 🧹
  • --clean-git-branches β€” Remove git branches created by updatecli like '--clean-git-branches=true' 🌿
  • --commit β€” Record changes to the repository, '--commit=false' πŸ“
  • --disable-changelog β€” Disable changelog retrieval to avoid unnecessary requests (env: UPDATECLI_DISABLE_CHANGELOG) 🚫
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true' πŸ”“
  • --disable-udash-report β€” Disable publishing pipeline reports to Udash πŸ“‰
  • --existing-only β€” Skip targets when pipeline has no existing remote branch '--existing-only=true' πŸ™…β€β™€οΈ
  • --export-report-to-yaml β€” Export pipeline reports to YAML files πŸ“„
  • -f, --file β€” Define the update-compose file πŸ“
  • --ignored-policy-ids β€” Filter policies to ignore by their policy IDs, accepted as a comma separated list πŸ™ˆ
  • --labels β€” Filter pipelines to apply by their labels, accepted as a comma separated list (key:value) 🏷️
  • --only-policy-ids β€” Filter policies to apply by their policy IDs, accepted as a comma separated list 🎯
  • --pipeline-ids β€” Filter pipelines to apply by their pipeline IDs, accepted as a comma separated list πŸ†”
  • --push β€” Update remote refs '--push=false' πŸš€
  • --relative-paths β€” What the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS) πŸ›£οΈ
  • --udash-api-url β€” Udash API URL selecting which service stored by udash login receives pipeline reports 🌐
  • --validate-schema β€” Report manifest keys not matching the Updatecli schema as warnings (env: UPDATECLI_VALIDATE_SCHEMA) βœ”οΈ

diff

diff show changes defined by the compose file πŸ‘€

OPTIONS

  • --clean β€” Remove updatecli working directory like '--clean=true' 🧹
  • --disable-changelog β€” Disable changelog retrieval to avoid unnecessary requests (env: UPDATECLI_DISABLE_CHANGELOG) 🚫
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true' πŸ”“
  • --disable-udash-report β€” Disable publishing pipeline reports to Udash πŸ“‰
  • --export-report-to-yaml β€” Export pipeline reports to YAML files πŸ“„
  • -f, --file β€” Define the Updatecli compose file name πŸ“
  • --ignored-policy-ids β€” Filter policies to ignore by their policy IDs, accepted as a comma separated list πŸ™ˆ
  • --labels β€” Filter pipelines to apply by their labels, accepted as a comma separated list (key:value) 🏷️
  • --only-policy-ids β€” Filter policies to apply by their policy IDs, accepted as a comma separated list 🎯
  • --pipeline-ids β€” Filter pipelines to apply by their IDs, accepted a comma separated list πŸ†”
  • --relative-paths β€” What the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS) πŸ›£οΈ
  • --udash-api-url β€” Udash API URL selecting which service stored by udash login receives pipeline reports 🌐
  • --validate-schema β€” Report manifest keys not matching the Updatecli schema as warnings (env: UPDATECLI_VALIDATE_SCHEMA) βœ”οΈ

show

show manifest(s) defined by the compose file that should be executed πŸ”

OPTIONS

  • --clean β€” Remove updatecli working directory like '--clean=true' 🧹
  • --disable-prepare β€” --disable-prepare skip the Updatecli 'prepare' stage ⏭️
  • --disable-templating β€” Disable manifest templating 🚫
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true' πŸ”“
  • -f, --file β€” Define the update-compose file πŸ“
  • --ignored-policy-ids β€” Filter policies to ignore by their policy IDs, accepted as a comma separated list πŸ™ˆ
  • --labels β€” Filter pipelines to apply by their labels, accepted as a comma separated list (key:value) 🏷️
  • --only-policy-ids β€” Filter policies to apply by their policy IDs, accepted as a comma separated list 🎯
  • --pipeline-ids β€” Filter pipelines to apply by their pipeline IDs, accepted a comma separated list πŸ†”
  • --relative-paths β€” What the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS) πŸ›£οΈ

🌈 diff NAME[:TAG|@DIGEST]

  • ⚠️ Deprecated in favor of updatecli pipeline diff
  • diff shows changes πŸ’…

OPTIONS πŸ’…

  • --clean β€” Remove updatecli working directory like '--clean=true' 🧹
  • -c, --config β€” Sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d' πŸ“
  • --disable-changelog β€” Disable changelog retrieval to avoid unnecessary requests (env: UPDATECLI_DISABLE_CHANGELOG) 🚫
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true' πŸ”“
  • --disable-udash-report β€” Disable publishing pipeline reports to Udash πŸ“‰
  • --export-report-to-yaml β€” dumps your pipeline reports out as YAML files ✨ like it's keeping receipts
  • --labels β€” filters which pipelines actually get applied based on their labels, and it's a comma-separated list in key:value form (yes, exactly like that)
  • --pipeline-ids β€” filters pipelines by their pipeline IDs, comma-separated list, no cap 🫢
  • --relative-paths β€” tells Updatecli what the relative paths inside a manifest resolve against: either "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets the Sops secrets file used for templating πŸ”
  • --udash-api-url β€” the Udash API URL, which picks which service β€” the one stored by udash login β€” receives your pipeline reports
  • --validate-schema β€” reports manifest keys that don't match the Updatecli schema as warnings (env: UPDATECLI_VALIDATE_SCHEMA)
  • -v, --values β€” sets the values file used for templating
  • -i, --values-inline β€” sets inline values used for templating, and it takes a valid json/yaml string

πŸŽ€ help [command]

Help about any command. That's it, that's the whole vibe β€” ask and it shall explain πŸ’…


πŸ§ͺ jsonschema

Experimental 🧨 β€” Export JsonSchema to file.

OPTIONS

  • -b, --baseid β€” define schema baseid
  • -d, --directory β€” export schema to directory

πŸ“¦ manifest

manifest executes specific manifest task such as upgrade β€” it's the little command hub for everything manifest-y 🌸

COMMANDS

init <path> β€” init a new Updatecli policy

pull NAME[:TAG|@DIGEST] β€” pull manifest(s) from an OCI registry

OPTIONS

  • --disable-tls β€” Disable TLS verification like '--disable-tls=true'

push [PATH] β€” push manifest(s) to an OCI registry

OPTIONS

  • --assets β€” sets an asset file to push along with the policy, like a script or a data file. Heads up: a manifest only reaches it once pulled, and only with options.relativepaths: manifest πŸ‘€
  • -c, --config β€” sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true'
  • --overwrite β€” overwrite existing manifest(s) in the registry like '--overwrite=true' πŸ’₯
  • --policy β€” sets policy file containing policy metadata information
  • --secrets β€” sets secrets file used for templating
  • -t, --tag β€” name and optionally a tag (format: "name:tag")
  • -v, --values β€” sets values file used for templating

show NAME[:TAG|@DIGEST] β€” show manifest(s) which will be executed πŸ‘€

OPTIONS

  • --clean β€” Remove updatecli working directory like '--clean=true'
  • -c, --config β€” sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-prepare β€” --disable-prepare skip the Updatecli 'prepare' stage
  • --disable-templating β€” disable manifest templating
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true'
  • --graph β€” output in graph format
  • --graph-flavor β€” flavor of graph format, accepted values are 'dot' for graphviz or 'mermaid'
  • --labels β€” filter pipelines to apply by their labels, accepted as a comma separated list (key:value)
  • --pipeline-ids β€” filter pipelines to apply by their IDs, accepted a comma separated list
  • --relative-paths β€” what the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets secrets file used for templating
  • -v, --values β€” sets values file used for templating
  • -i, --values-inline β€” sets inline values used for templating, accepted valid json/yaml string

upgrade β€” upgrade executes manifest upgrade task ⬆️

OPTIONS

  • -c, --config β€” sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • -i, --in-place β€” write the updated Updatecli manifest back to the same file instead of stdout ✍️
  • --labels β€” filter pipelines to apply by their labels, accepted as a comma separated list (key:value)
  • --pipeline-ids β€” filter pipelines to apply by their IDs, accepted a comma separated list

validate β€” validate manifest(s) against the Updatecli schema βœ…

OPTIONS

  • -c, --config β€” sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-templating β€” disable manifest templating
  • --relative-paths β€” what the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets secrets file used for templating
  • --strict β€” report warnings as errors 😀 no chill mode
  • -v, --values β€” sets values file used for templating
  • -i, --values-inline β€” sets inline values used for templating, accepted valid json/yaml string

πŸ”₯ pipeline

pipeline executes specific pipeline tasks such as diff or apply β€” this is where the actual doing stuff happens, bestie πŸ’œ

COMMANDS

apply NAME[:TAG|@DIGEST] β€” apply checks if an update is needed then applies the changes πŸš€

OPTIONS

  • --clean β€” Remove updatecli working directory like '--clean=true'
  • --clean-git-branches β€” Remove updatecli working git branches like '--clean-git-branches=true'
  • --commit β€” record changes to the repository, '--commit=false'
  • -c, --config β€” sets config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-changelog β€” disable changelog retrieval to avoid unnecessary requests (env: UPDATECLI_DISABLE_CHANGELOG)
  • --disable-tls β€” Disable TLS verification like '--disable-tls=true'
  • --disable-udash-report β€” disable publishing pipeline reports to Udash πŸ™ˆ
  • --existing-only β€” skip targets when the pipeline has no existing remote branch '--existing-only=true'
  • --export-report-to-yaml β€” export pipeline reports to YAML files
  • --labels β€” filter pipelines to apply by their labels, accepted as a comma separated list (key:value)
  • --pipeline-ids β€” filter pipelines to apply by their IDs, accepted a comma separated list
  • --push β€” update remote refs '--push=false'
  • --relative-paths β€” what the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets Sops secrets file used for templating
  • --udash-api-url β€” Udash API URL selecting which service stored by udash login receives pipeline reports
  • --validate-schema β€” report manifest keys not matching the Updatecli schema as warnings (env: UPDATECLI_VALIDATE_SCHEMA)
  • -v, --values β€” sets values file used for templating
  • -i, --values-inline β€” sets inline values used for templating; it expects a genuinely valid json/yaml string, so don't try to be cute with it πŸ’…

🌈 diff NAME[:TAG|@DIGEST]

diff shows changes. That's the whole vibe. It's giving "spot the difference" but for your dependency manifests ✨

OPTIONS 🌸

  • --clean β€” removes the updatecli working directory, like '--clean=true'
  • -c, --config β€” sets the config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-changelog β€” disables changelog retrieval so you don't make unnecessary requests (env: UPDATECLI_DISABLE_CHANGELOG)
  • --disable-tls β€” disables TLS verification, like '--disable-tls=true'
  • --disable-udash-report β€” disables publishing pipeline reports to Udash
  • --export-report-to-yaml β€” exports pipeline reports to YAML files
  • --labels β€” filters pipelines to apply by their labels, accepted as a comma separated list (key:value)
  • --pipeline-ids β€” filters pipelines to apply by their pipeline IDs, accepted a comma separated list
  • --relative-paths β€” decides what the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets the Sops secrets file used for templating
  • --udash-api-url β€” the Udash API URL, selecting which service β€” stored by udash login β€” receives pipeline reports
  • --validate-schema β€” reports manifest keys that don't match the Updatecli schema as warnings (env: UPDATECLI_VALIDATE_SCHEMA)
  • -v, --values β€” sets the values file used for templating
  • -i, --values-inline β€” sets inline values used for templating; expects a valid json/yaml string

πŸ¦‹ prepare NAME[:TAG|@DIGEST]

prepare runs the tasks you need before a run, like git clone. It's the get-ready-with-me of subcommands 🫢

OPTIONS ✨

  • --clean β€” removes the updatecli working directory, like '--clean=true
  • -c, --config β€” sets the config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-tls β€” disables TLS verification, like '--disable-tls=true'
  • --labels β€” filters pipelines to apply by their labels, accepted as a comma separated list (key:value)
  • --pipeline-ids β€” filters pipelines to apply by their pipeline IDs, accepted a comma separated list
  • --relative-paths β€” decides what the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets the Sops secrets file used for templating
  • -v, --values β€” sets the values file used for templating
  • -i, --values-inline β€” sets inline values used for templating; expects a valid json/yaml string
ngl bestie, the page literally repeats this exact same prepare block a couple more times at different indent levels β€” same command, same flags, same everything. Consider the list above your one-stop shop, no cap πŸ’€

πŸ‘‘ show NAME[:TAG|@DIGEST]

  • Deprecated in favor of updatecli manifest show β€” prints the configuration that will be executed
lowkey important: this one is deprecated, so maybe don't build your whole personality around it. Go hang with updatecli manifest show instead πŸ™ˆ

OPTIONS πŸŽ€

  • --clean β€” removes the updatecli working directory, like '--clean=true'
  • -c, --config β€” sets the config file or directory. By default, Updatecli looks for a file named 'updatecli.yaml' or a directory named 'updatecli.d'
  • --disable-prepare β€” --disable-prepare skip the Updatecli 'prepare' stage'--disable-prepare=true'
  • --disable-tls β€” disables TLS verification, like '--disable-tls=true'
  • --labels β€” filters pipelines to apply by their labels, accepted as a comma separated list (key:value)
  • --pipeline-ids β€” filters pipelines to apply by their IDs, accepted a comma separated list
  • --relative-paths β€” decides what the relative paths of a manifest resolve against: "workingdirectory" or "manifest" (env: UPDATECLI_RELATIVE_PATHS)
  • --secrets β€” sets the secrets file used for templating
  • -v, --values β€” sets the values file used for templating
  • -i, --values-inline β€” sets inline values used for templating; expects a valid json/yaml string

πŸ’œ udash

udash provides various Udash service integration. It's the whole Udash situation, handled 🌟

COMMANDS πŸ’…

config β€” [Experimental] config shows the config file path

EXAMPLES

updatecli udash config

login url β€” [Experimental] login authenticates with the Udash.

OPTIONS

  • --api-url β€” api-url defines the udash API URL
  • --token β€” token defines the Udash API token. Without it, Updatecli prompts for one

EXAMPLES

updatecli udash login app.updatecli.io

logout url β€” [Experimental] logout from an Udash service.

EXAMPLES

updatecli udash logout app.updatecli.io

⭐ version

Prints the current application version. Short, sweet, iconic, periodt πŸ‘‘


That's the whole page bestie, you ate that πŸ“ This was updatecli β€” the source line reads UP...I(1) (the page name got a little truncated, we still love her) β€” version-dated 2026-10-26. Go forth and manage your dependencies declaratively, no cap πŸ’–πŸ§šβœ¨

πŸ“¦ where this page comes from