dodot-templates

Manage dodot template sources for host-specific dotfiles with secret injection and encryption.

Updated Apr 14, 2026
One-click install
npx skills add https://github.com/arthur-debert/dodot --skill dodot-templates
Or copy as Structured Prompt for Agent
Please help me install this Agent Skill.
Skill: dodot-templates
Source: https://github.com/arthur-debert/dodot/tree/main/skills/dodot-templates
Command: npx skills add https://github.com/arthur-debert/dodot --skill dodot-templates

SYSTEM DOCUMENTATION & REQUIREMENTS

💡 This Skill includes references (resource) components.

What problem does it solve?

This Skill helps you author, render, and keep in sync dodot-managed dotfiles that vary by host, operating system, or environment, while also handling secrets and encrypted files without accidentally committing plaintext to git.

Core Features & Use Cases

  • Template authoring: Create .tmpl or .template files that render with Jinja2-style variables at deploy time.
  • Secret injection: Pull single-line secrets from providers like pass, 1Password, Bitwarden, SOPS, macOS Keychain, or secret service and substitute them into rendered config.
  • Whole-file encryption: Manage .age and .gpg files as encrypted-at-rest sources that decrypt into the datastore on deploy.
  • Reverse sync: Recover edits made directly to deployed files back into the source template when the live file has drifted from git.
  • Use case: A user wants one .gitconfig template that changes by machine, injects a token securely, and can be reconciled if they edited the deployed file by hand.

Quick Start

Ask the assistant to update the dodot template source for a pack, render it with the right host-specific values, and verify the deployed output.

Frequently Asked Questions about dodot-templates

High-intent search queries and answers about installing and using this skill.

FAQPage Schema
How do I inject secrets into dotfile templates without committing plaintext to git?

To inject secrets into dotfile templates safely, you use Jinja2-style variables that pull single-line values from providers like pass, 1Password, Bitwarden, or SOPS at deploy time. This ensures plaintext secrets never get committed to git.

How do I manage host-specific dotfiles that vary by operating system?

You manage host-specific dotfiles by authoring Jinja2-based template files that render with the correct variables for each machine at deploy time. This allows one source file to conditionally deploy different configurations across operating systems.

Can I decrypt whole-file encrypted assets like age or gpg files during dotfile deployment?

Yes, you can manage whole-file encrypted assets by keeping age and gpg files as encrypted-at-rest sources. These files decrypt directly into the datastore upon deployment, keeping your repository secure while providing live plaintext configurations.

What is the best way to sync edits made directly to deployed dotfiles back into the source template?

The best way to recover direct edits is through a reverse-sync process that reconciles drifted live files back into the source template. This captures manual changes made to deployed configurations and updates the original git-tracked template.

Does this template rendering approach work with macOS Keychain and secret service providers?

Yes, this template rendering approach works with macOS Keychain and secret service providers to substitute single-line secrets into rendered configurations. It supports multiple backend providers to retrieve values during the Jinja2 rendering process.