catladder CLI command reference
All commands run non-interactively as yarn catladder <command> ...
(pnpm catladder ... in pnpm projects); see SKILL.md for how to
pass inputs.
catladder cloudsql restore-db
restore a db from one source to another target
--source <value>: Source instance (connection string or 'local')?--source-local-port <value>: Local Port for source? (default: 5432)--source-username <value>: Source Username? (default: "postgres")--source-password <value>: Source Password?--source-db-name <value>: Source DB name?--target <value>: Target INSTANCE (connection string or 'local')?--target-local-port <value>: Local Port for target? (default: 5432)--target-username <value>: Target Username? (default: "postgres")--target-password <value>: Target Password?--target-db-name <value>: Target DB name?
catladder fun dadjoke
something for jonas.
catladder fun starwars
Long time ago... in a galaxy far far away...
catladder k8s current-context
show current kubernetes context
catladder k8s get-shell [namespace]
get a shell to a pod in the environment
namespace(positional): kubernetes namespace--pod-name <value>: Which pod?
catladder k8s list-namespaces
list all namespaces
catladder k8s list-pods [namespace]
list all pods of namespace
namespace(positional): kubernetes namespace
catladder k8s list-secrets [namespace]
show secrets
namespace(positional): kubernetes namespace
catladder k8s port-forward [namespace]
start port-forwarding
namespace(positional): kubernetes namespace--pod-name <value>: Which pod?--local-port <value>: Local port:--remote-port <value>: Remote port:
catladder k8s stop-portforward [name]
stop a running port forward
name(positional): port forward name
catladder k8s trigger-cronjob [namespace]
trigger cronjob
namespace(positional): kubernetes namespace--job-name <value>: Which cronjob?
catladder mr pin [mr]
pin the review apps of a merge request (disable their auto-stop) by adding the pin label; merging or closing the MR still stops them
mr(positional): merge request IID (defaults to the open MR of the current branch)--pipeline: trigger a merge-request pipeline so the pin takes effect immediately
catladder mr review-app-off [mr]
stop deploying the review apps of a merge request: switches the reviewApps label off (opt-in: removes it, opt-out: adds the skip label). Running review apps stay until the MR closes or they auto-stop
mr(positional): merge request IID (defaults to the open MR of the current branch)
catladder mr review-app-on [mr]
deploy the review apps of a merge request: switches the reviewApps label on (opt-in: adds it, opt-out: removes the skip label) and triggers a pipeline, since gitlab doesn't start one for label changes
mr(positional): merge request IID (defaults to the open MR of the current branch)--pipeline: trigger a merge-request pipeline so the review apps deploy now
catladder mr unpin [mr]
unpin the review apps of a merge request — the auto-stop timer re-arms with the next deploy
mr(positional): merge request IID (defaults to the open MR of the current branch)
catladder project ci job-log
Show a job's log
--job-name <value>: Which job?
catladder project ci job-open
Open a Job
--job-name <value>: Which job?
catladder project cloudsql proxy [envComponent]
proxy to cloud sql db
envComponent(positional): environment:component--local-port <value>: Local port: (default: 54320)
catladder project cloudsql restore-db
restores a project db from one source to another target
--source <value>: Source instance?--target <value>: target env?--confirm-instance <value>: confirm:
catladder project config-secrets [envComponent]
setup/update secrets in the vault via your editor
envComponent(positional): scope: env:component, env:, :component or empty for everything--key <value>: only edit these secrets (comma-separated keys)
catladder project doctor [component]
Checks for drift between the config and the provisioned infrastructure (read-only): service accounts, IAM roles, gitlab tokens, github secrets, store entries.
component(positional): component name
catladder project env-vars [envComponent]
list env vars
envComponent(positional): environment:component
catladder project k8s delete [envComponent]
deletes a environment of a project (it deletes the namespace)
envComponent(positional): environment:component
catladder project k8s delete-pods [envComponent]
delete / restart pods
envComponent(positional): environment:component--selected-pod-names <value>: Which pods to delete / restart ?
catladder project k8s get-shell [envComponent]
get a shell to a pod in the environment
envComponent(positional): environment:component--pod-name <value>: Which pod?
catladder project k8s list-pods [envComponent]
list pods of local project
envComponent(positional): environment:component
catladder project k8s namespace [envComponent]
show namespace of local project
envComponent(positional): environment:component
catladder project k8s pause [envComponent]
halts all running pods (scales to 0)
envComponent(positional): environment:component
catladder project k8s trigger-cronjob [envComponent]
trigger cronjob
envComponent(positional): environment:component--job-name <value>: Which cronjob?
catladder project logs open [envComponent]
open logs for a component (Google Cloud Logging)
envComponent(positional): environment:component
catladder project mongo destroy-member [envComponent]
DESTROY a member of a replicaset in order to reinitialize it
envComponent(positional): environment:component--pod-name <value>: Which pod?
catladder project mongo get-shell [envComponent]
get a shell to a mongodb in the environment
envComponent(positional): environment:component--pod-name <value>: Which pod?
catladder project mongo port-forward [envComponent]
port forward to a mongodb
envComponent(positional): environment:component--pod-name <value>: Which pod?--local-port <value>: Local port: (default: 30000)
catladder project open env [envComponent]
open the live environment
envComponent(positional): environment:component
catladder project open git
open the repo on gitlab / github in your browser
catladder project port-forward [envComponent]
start port-forwarding
envComponent(positional): environment:component--pod-name <value>: Which pod?--local-port <value>: Local port:--remote-port <value>: Remote port:--mr <value>: Which mr
catladder project renew-token
Configures the project access token for semantic release.
catladder project secrets-clear-backups
clears all backups
--keep <value>: How many backups should we keep? (default: 1)
catladder project secrets-list [envComponent]
lists the declared secrets of a scope with their set/unset status (values only with --reveal)
envComponent(positional): scope: env:component, env:, :component or empty for everything--key <value>: only these secrets (comma-separated keys)--reveal: also print the secret values (default: false)--check: exit with an error when any secret is unset (for CI/agents) (default: false)
catladder project secrets-pull [envComponent]
prints the current secrets of a scope as yaml (unset ones as a placeholder) — edit and feed to secrets-push
envComponent(positional): scope: env:component, env:, :component or empty for everything--key <value>: only these secrets (comma-separated keys)--out <value>: write the yaml to this file instead of stdout
catladder project secrets-push [envComponent]
writes secrets from a yaml document (secrets-pull format, --file or stdin) to the vault; may be partial
envComponent(positional): scope: env:component, env:, :component or empty for everything--key <value>: only write these secrets (comma-separated keys)--file <value>: yaml file to push (component → env → key: value); stdin when omitted
catladder project secrets-set [envComponent] [key]
sets one secret — in one env (dev:web), one env everywhere (dev:), or all envs of a component (:web); value via --value, --value-file or stdin
envComponent(positional): scope: env:component, env:, or :componentkey(positional): which secret?--value <value>: the secret value (prefer --value-file or stdin over shell history)--value-file <value>: read the secret value from this file
catladder project secrets-sync-github [repo] [env]
copies all secrets from the vault to github repo secrets (same names), for the github pipeline
repo(positional): github repository (owner/name)env(positional): only sync these environments (comma-separated, e.g. review,dev) — github allows at most 100 repo secrets
catladder project security-evaluate
evaluate project's security audit document
catladder project setup [component]
Initializes all environments and creates required resources, service accounts, etc.
component(positional): component name
catladder project worktime
show the total worktime that you spent on a project
catladder security audit ci-job [path] [token] [mainBranch] [projectId] [userId]
Evaluates security audit document. Creates MR with template if missing.
path(positional): path to project roottoken(positional): GitLab token (api scope)mainBranch(positional): main branch nameprojectId(positional): GitLab project IDuserId(positional): GitLab user ID (assignee)
catladder security audit create [token] [mainBranch] [projectId] [userId]
Creates a MR with the latest security audit template document
token(positional): GitLab token (api scope)mainBranch(positional): main branch nameprojectId(positional): GitLab project IDuserId(positional): GitLab user ID (assignee)
catladder security audit evaluate [path]
Evaluates security audit document in given path
path(positional): path to project root