Synopsis
Description
Opens a single-column TUI for the current project and branch:- Variables list — one row per variable Capy knows about on this branch (pinned in
keep.lock∪ your local.env∪ the remote copy), with a KEY, VALUE, STATUS, and UPDATED column. VALUE is a masked snippet — the first three and last three characters — or—when there is no value. Values of six characters or fewer are shown in full, because there is nothing left to mask. - Inspector — press
Enter(orSpace) to open a detail panel inline, directly beneath the selected row. It shows the key, its status, when the value last changed, and the value itself (masked until you pressr). The value always renders on one line, so pan a long revealed value with←/→rather than wrapping it. - Top status row — the active branch, total tracked variables, drift count, and conflict count.
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: it re-encrypts the merged local state, uploads the ciphertext to the service, updates the keep.lock pins, rewrites .env, and bumps sync state. When the TUI exits, Capy commits the rewritten keep.lock to git for you (chore(capy): pin <branch> secrets) unless you set CAPY_NO_AUTOCOMMIT=1.
Example
r to reveal the value:
Keys
In the variables list:
With the inspector open:
While editing a value (after
e):
When quitting with uncommitted edits:
Statuses
In local-only mode there is no remote, so rows compare your working
.env against the last commit: you only see in sync and local, the UPDATED column reads committed or uncommitted, and c commits without pushing.
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. Committing sends every buffered edit — encrypt, push, rewrite.envandkeep.lock— in one step.- Edit
.envdirectly — when you’re already in your editor adding a brand-new variable as plaintext, or rotating multiple values alongside code changes. Runcapyafterward 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.enveditcapy push— push local changes without pulling