Library¶
In your Taskfile source commands from the taskfile.build library by adding:
if [[ -d "$HOME/taskfile.build/bin" ]]; then
for file in "$HOME/taskfile.build/bin/"*; do
if [[ -f "$file" ]]; then
source "$file"
fi
done
fi
With these instructions you have access to all commands documented on this page.
Aliases¶
Every command in the library also set an alias derived from the first letters of each word. For example, commit-with-llm can also be invoked as cwl.
Aliases are appended to each script and pass through arguments:
If two commands would map to the same alias, the alias is extended with additional letters from the first conflicting word until it is unique. Aliases that would shadow standard shell commands (e.g. cd, ls, cp) are also extended to avoid collisions.
Run task list-aliases to list all aliases.
av='activate-venv'
agf='add-git-folder'
agm='add-git-merge'
agr='add-git-remote'
aggf='aggregate-git-folders'
Task¶
Most commands can be configured by setting enviroment vars.
OPEN_BROWSER=False # Default: True
TASK_DOTENV_DIR="$HOME/Odoo-Build/config" # Default: "$HOME/.config/taskfile.build"
clone-taskfile¶
init-project¶
init-dotenv-dir¶
template-dotenv¶
open-with-os¶
open-url¶
setup-completion¶
list-aliases¶
check-help-width¶
update-project¶
Files¶
Managing files and directories.
ensure-directory¶
create-symlink¶
create-symlink-files¶
copy-to-clipboard¶
Python¶
Setup Python virtual enviroment.
activate-venv¶
remove-venv¶
Jupyter¶
Setup and run Jupyter notebooks.
start-jupyter-lab¶
install-jupyter-lab¶
run-jupyter-notebook¶
Environment¶
Manage .env files in the task dotenv dir and the current project.
Dotenv files with sops markers are encrypted with sops and age.
create-dotenv¶
Available templates are defined in templates/:
By default the .env file is created in the current directory.
Use the -g / --global flag to store it in TASK_DOTENV_DIR instead.
Use the -s / --secret flag to encrypt the file with sops after creation.
This requires .sops.yaml to be configured (see init-dotenv-sops).
list-dotenv¶
Lists *.env and legacy .env.* files from TASK_DOTENV_DIR and the current directory.
show-dotenv¶
Accepts a single env name or a comma-separated list of env names.
Files with sops markers are decrypted with sops before printing.
copy-dotenv¶
edit-dotenv¶
Files with sops markers are opened with sops for decrypted editing.
load-dotenv¶
Accepts a single env name or a comma-separated list of env names.
All variables from each file are exported using set -a / set +a.
Files with sops markers are decrypted with sops before sourcing.
init-dotenv-sops¶
Generates an age key for the project based on the git URL and creates .sops.yaml.
The private key is appended to the sops default location ~/.config/sops/age/keys.txt.
A custom key name can be given as the first argument; the default is the project name.
init-agekey-sops¶
Generates an age key for the project based on the git URL, but unlike init-dotenv-sops
it does not create .sops.yaml or configure a file encryption rule.
The private key is appended to ~/.config/sops/age/keys.txt.
A custom key name can be given as the first argument; the default is the project name.
list-agekeys¶
Lists the public keys, names and creation dates from ~/.config/sops/age/keys.txt.
show-project-setup¶
Displays the project name, dotenv, KeePass / Pass entries, age key file, age public key,
.sops.yaml config and SOPS_AGE_KEY status.
rename-dotenv¶
remove-dotenv¶
backup-dotenv-files¶
restore-dotenv-files¶
LLM¶
Commands that integrate the llm cli.
commit-with-llm¶
update-with-llm¶
The last parameter can be either a direct prompt string or a path to a text file containing the prompt.
update-changelog-with-llm¶
Prompt¶
Create and track prompt.md files.
init-prompt-log¶
pull-prompt-log¶
create-prompt¶
prompt-with-pi¶
Use the -l / --load flag to run load-prompt before starting pi.
When -l is given without -f, prompts with state: completed are filtered out.
Use the -m / --model flag to select a model from an fzf dialog.
The available models are read from ~/.pi/agent/models.json and pi is started with the selected model.
commit-prompt¶
list-prompts¶
reset-prompt¶
Copies the ## Task section, runs git checkout . and git clean -df,
then re-applies the task section.
load-prompt¶
Use -f / --filter with a frontmatter expression like state != completed.
Supported operators: ==, !=, =~ (regex).
edit-prompt¶
show-prompt¶
delete-prompt¶
cancel-prompt¶
Shows an fzf dialog with all non-completed prompts and sets the selected prompt's state to cancelled.
convert-prompts-folder-to-prompt-log¶
rows+=("convert-prompts-folder-to-prompt-log|[repo-path]|Convert prompts folder to prompt-log branch.")
Logging¶
Colorful logging in task commands.
log-error¶
log-success¶
log-warning¶
Git¶
These commands replace the git submodule command. The commands store and retrieve additional information from the .gitmodules file.
add-git-folder¶
add-git-merge¶
add-git-remote¶
merge-git-remote¶
aggregate-git-folders¶
commit-git-folder¶
clean-git-folder¶
checkout-git-folder¶
clone-git-folder¶
download-git-folder¶
find-git-folder¶
generate-ssh-key¶
list-git-folder¶
ls-git-folder¶
pull-git-folder¶
pull-all-repos¶
switch-git-folder¶
push-git-folder¶
remove-git-folder¶
reset-git-folder¶
run-pre-commit¶
stage-git-folder¶
status-git-folder¶
status-all-repos¶
save-git-folder¶
update-submodule¶
unshallow-git-folder¶
KeePass¶
Load and store secrets from KeePassXC. Set path to KeePassXC database and entry:
The name of the entry will resolve dynamically depending on the current directory / project. Use show-dotenv to show info about the dotenv setup.
save-pass-to-keepass¶
get-pass-from-keepass¶
If a database password is provided as the second argument, it is piped to keepassxc-cli.
save-dotenv-to-keepass¶
load-dotenv-from-keepass¶
store-agekey-to-keepass¶
Reads the key block matching the public key from .sops.yaml, stores the secret key
in the entry's password field and attaches the key block as keys.txt. Defaults to
the project name.
load-agekey-from-keepass¶
Restores the age key attachment from the age/<name> KeePass entry and merges it into
~/.config/sops/age/keys.txt. Defaults to the project name.
Kubernetes¶
Manage kube config files.
save-kubeconfig-to-keepass¶
load-kubeconfig-from-keepass¶
Docker¶
Build and push Docker images. Set Docker env vars.
BUILDX_PLATFORM="linux/amd64"
CONTAINER_REGISTRY="mintsystem"
CONTAINER_TAG="taskfile.build:latest"
DOCKERFILE="image/Dockerfile"
DOCKER_CONFIG="$HOME/.docker/$CONTAINER_REGISTRY/"
login-docker¶
build-image¶
Ansible¶
Install scripts from the Ansible Build project.
The available roles with scripts are listed here: https://ansible.build/scripts.html
install-ansible-build-scripts¶
11ty¶
Build static sites with 11ty.
init-11ty-docs¶
dev-11ty-docs¶
build-11ty-docs¶
serve-11ty-docs¶
Zensical¶
Build static sites with Zensical.
init-zensical-docs¶
dev-zensical-docs¶
build-zensical-docs¶
serve-zensical-docs¶
Vitepress¶
Build static sites with Vitepress.
init-vitepress-docs¶
dev-vitepress-docs¶
build-vitepress-docs¶
serve-vitepress-docs¶
Vuepress¶
Build static sites with Vuepress.
init-vuepress-docs¶
dev-vuepress-docs¶
build-vuepress-docs¶
serve-vuepress-docs¶
Hugo¶
Build static sites with Hugo.
Set Hugo env vars:
HUGO_VERSION="0.153.5" # Default: 0.153.5
BASE_URL="http://localhost:1313" # Default: http://localhost:1313