Glossary
Env sync
Definition
Env sync carries a project's environment variables, .env files, API keys, and secrets to every trusted machine and agent host alongside its code. Instead of copying .env files by hand or re-entering keys, the same environment rematerializes wherever you open the project.
A project's environment is rarely committed. The .env, .env.local, and per-profile files hold the database URLs, API keys, and feature flags that its commands read, and they are exactly the files a repository leaves out. Moving to a new machine or agent host therefore means finding, copying, and re-entering those values before anything runs, which is both tedious and a common way to leak secrets.
Env sync makes the environment part of the project instead. Secret values sync end-to-end to trusted devices and agent hosts; the hosted service carries ciphertext and cannot read them. Your existing tools keep reading local env files unchanged.
Why it matters
Missing env is one of the most common reasons a task fails on a fresh host, and the failure rarely names itself: a command errors as if the code is broken when a single key is absent. Carrying env with the project removes that setup gap instead of scattering it across notes and plain files.
In practice
An agent host spins up to run your test suite. Without env sync the suite fails immediately: STRIPE_SECRET_KEY is unset. With env sync the key rematerializes on the trusted host before the run starts.
How Bowline relates
Bowline makes env sync part of the default workspace contract: project env requirements and secret values move with the workspace to trusted devices and agent hosts, while the hosted service cannot read those secret values.
Your ~/Code, on every machine and every agent.
Install bowline and your projects follow you. It just works.
curl -fsSL https://install.bowline.sh | shmacOS app · Linux CLI. Then run bowline setup --root ~/Code.