Skip to content

Integrations

Dotkit is flexible in both directions: your scripts can use dotkit functions, and dotkit can orchestrate any external tool that runs from a shell command.

Get dotkit map, dotkit install, and dotkit ask as shell functions inside any script:

#!/bin/sh
set -eu
dotkit map 'brew install {{item}}' <<BODY
gh
ripgrep
neovim
BODY

Make sure that dotkit is installed on your PATH (the installer puts it at ~/.local/bin/), otherwise the shell functions won’t be found.

Dotkit doesn’t care what your scripts do. Anything that runs from a shell command can be orchestrated:

Ansible:

try command -v ansible
brew install ansible
---
ansible-playbook ~/dotkit/playbooks/site.yml

Homebrew Bundle:

configs/brew-bundle.sh
brew bundle --file=~/dotkit/Brewfile

Nix:

tools/nix.sh
try command -v nix
dotkit install https://nixos.org/nix/install -- --daemon
nix-env -iA nixpkgs.git

Stow:

dotfiles/link.sh
cd ~/dotkit/dotfiles
stow -t ~ .

dotkit parse FILE emits shell to stdout without executing. Pipe it into any executor:

Terminal window
dotkit parse setup.txt | sh
dotkit parse setup.txt | bash --login

Use this to integrate dotkit parsing into existing provisioning pipelines that already control execution.

Install dotkit CLI via Homebrew:

Terminal window
brew tap dotkit-run/cli
brew install dotkit

This makes dotkit available system-wide, so scripts can reference it without knowing the install path.