Skip to content

deckctl source

Handles source lifecycle. Sources are persisted to config.yaml — see the configuration reference.

deckctl source [command] [flags]
SubcommandPurpose
listList configured sources
getShow one source
addAdd a source
removeRemove a source

All subcommands also accept the global flags.


deckctl source list [flags]

No command-specific flags. Table columns: Name, Type, Path, TokenEnv, URL.

Terminal window
deckctl source list
deckctl source list -o json

deckctl source get [name] [flags]

Takes the source name as a positional argument. Same columns as list.

Terminal window
deckctl source get work
deckctl source get work -o json

deckctl source add [flags]
FlagDescription
-n, --name <name>Source name — how you refer to it with --source
-t, --type <type>local or gitlab
-p, --path <path>Local directory (required for local)
--url <url>GitLab base URL (required for gitlab)
-g, --group <path>GitLab group path, nesting allowed (required for gitlab)
--env <VAR>Name of the environment variable holding the token

Run it with no flags to be prompted for each field.

Terminal window
# Local
deckctl source add --name local --type local --path ~/templates
# Public GitLab group, no token
deckctl source add --name public --type gitlab \
--url https://gitlab.com --group my-public-group
# Private / self-hosted
deckctl source add --name work --type gitlab \
--url https://gitlab.mycompany.com \
--group platform/templates \
--env DECKCTL_WORK_TOKEN
# Interactive
deckctl source add

deckctl source remove [flags]
FlagDefaultDescription
-n, --name <name>Source to remove
--auto-approvefalseSkip the confirmation prompt
Terminal window
deckctl source remove --name work
deckctl source remove --name work --auto-approve

Removing a source does not delete its cached templates. Clear those separately:

Terminal window
deckctl cache clear --source work --auto-approve