CLIActivePublished: January 8, 2026

dotfarm

A tiny CLI for managing your dotfiles across machines with symlinks and profiles.

Tech stack

Go

What it does

dotfarm keeps your shell and editor configuration in one repo and links it into place on any machine, with per-machine profiles for the little differences.

Why

I bounce between a few machines (including Windows via WSL) and wanted one command to get a fresh box configured the way I like it.

Quick start

Terminal window
dotfarm init
dotfarm link --profile work

Features

  • Symlink management with dry-run previews.
  • Profiles for machine-specific overrides.
  • A single static binary — no runtime dependencies.

Status

Stable and in daily use across my machines.

Knowledge base

Guides and notes related to this entry.

3 articles
  • Knowledge base

    Profiles and overrides

    Base + profile

    Keep shared shell config in the base tree. Machine-specific paths live under profiles/work or profiles/home.

    dotfarm link --profile work applies both layers. Stub article for the modal.

  • Knowledge base

    Dry-run before linking

    Preview first

    dotfarm link --profile work --dry-run

    Review the planned symlinks, then drop --dry-run when it looks right.

  • Knowledge base

    Migrating from a manual dotfiles repo

    Map, then link

    1. Point dotfarm at your existing repo.
    2. Declare targets in dotfarm.toml.
    3. Dry-run, then link once.

    Your old setup can stay put until you trust the new layout. Stub migration notes.

Tags:clidotfilesproductivity