Glossary

Dotfiles vs workspace sync

Definition

Dotfiles sync your personal shell, editor, and tool configuration across machines; workspace sync moves the project itself: source, environment variables, Git state, and uncommitted work. Dotfiles managers like chezmoi or GNU Stow set up your account. Workspace sync makes a specific project ready to run, which dotfiles never touch.

Dotfiles are your personal layer: the .zshrc, editor config, aliases, and tool preferences that make a machine feel like yours. A dotfiles manager such as chezmoi or GNU Stow, often paired with a secret manager, replicates that account-level setup onto any machine you log into. It answers 'make this machine feel like mine'.

Workspace sync answers a different question: 'make this project ready to run here'. That means the source tree, the project's .env and secrets, the Git working state, and the uncommitted edits, none of which live in your dotfiles. The two are complementary. Dotfiles set up the user; workspace sync sets up the work. Neither replaces the other, and a machine usually needs both.

Why it matters

People reach for dotfiles when what they actually need is the project, then wonder why the code still is not there after their setup script runs. Naming the boundary prevents that mismatch: dotfiles will never carry a repository, its env, or its in-progress edits, no matter how complete the dotfiles repo is.

In practice

You restore your dotfiles on a new laptop and your shell and editor feel like home instantly. But ~/Code is empty: every project still needs cloning, its .env copying, and its branch checking out. Dotfiles rebuilt the account, not the work.

How Bowline relates

Bowline is the workspace-sync half of that pair. It leaves your dotfiles setup alone and focuses on the project: one real ~/Code with source, env, opaque Git state, and uncommitted work already present on every machine and agent host you trust.

Read the docs on dotfiles vs workspace sync

ready when you are

Your ~/Code, on every machine and every agent.

Install bowline and your projects follow you. It just works.

Get started
curl -fsSL https://install.bowline.sh | sh

macOS app · Linux CLI. Then run bowline login.