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.

Read the docs on env 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 setup --root ~/Code.