Skip to main content

Synopsis

Description

Opens a two-pane TUI for the current project and branch:
  • Left pane lists every variable known to the project (pinned ∪ local ∪ remote) with its key, an abc…xyz value snippet, drift status, and an updated label.
  • Right pane is an inspector for the selected row — the value (shown as a snippet by default; r reveals the full value; long values wrap), the row’s status, and which side last moved.
  • Top status row summarizes the active branch, total tracked variables, drift count, and conflict count.
Edits buffer in memory. Pressing Enter after typing a new value updates the in-memory buffer; nothing lands on disk until you commit. Choosing commit & push runs the same pipeline as the conflict-resolver’s “commit and push all local values” action: re-encrypts the merged local state, updates keep.lock pins, uploads ciphertext to the service, and bumps sync state.

Example

Keys

In the variables list: While editing a value (after e): When quitting with uncommitted edits:

Statuses

When to use capy edit vs editing .env directly

Both flows work. Pick whichever fits the moment:
  • capy edit — when you want to see what’s set, mask/reveal values without exposing them to your editor’s buffer, or change a single variable without thinking about encryption. Always commits and pushes in one step.
  • Edit .env directly — when you’re already in your editor adding a brand-new variable as plaintext, or rotating multiple values alongside code changes. Run capy afterward to encrypt and reconcile. See Editing secrets.

See also

  • Editing secrets — the two ways to change values, side by side
  • capy — full sync loop, reconciles drift after a direct .env edit
  • capy push — push local changes without pulling
Last modified on May 20, 2026