You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
This commit was created on GitHub.com and signed with GitHub’s verified signature.
capy 0.9.7
Improved
capy agents works without a terminal.
--yes writes or removes the Capy section in AGENTS.md / CLAUDE.md with no prompt.
--non-tty never prompts.
Without --yes and no terminal, it refuses with AGENTS_SETUP_NEEDS_TTY (exit 3). Under --json, the refusal names the flag to pass: unanswered: [{ id: "confirm", flag: "--yes" }].
capy agents --dry-run shows which files would be created, updated or removed, and changes nothing. It never prompts, so it works without a terminal and without --yes.
capy --dry-run agents works too.
Combine with --remove to preview a removal, and with --json for { ok, dry_run: true, files }.
Set a secret from a pipe: <cmd> | capy edit NAME and <cmd> | capy add NAME. The value goes straight from the producing command into Capy and never shows up in your shell history or an agent's context.
One trailing line ending is stripped; everything else (spaces, inner newlines) is kept. Empty input, input over 1 MiB, and NUL bytes are refused.
--json returns { ok, name, branch, action, pushed } with action = created | updated | unchanged. The value never appears in any output.
capy edit NAME in a terminal opens the editor on that variable.
capy edit with no name and no terminal now refuses with EDIT_NEEDS_TTY (exit 3) instead of hanging.
The capy agents section now tells agents to pipe values this way.
capy transport fits on screen.
The link now carries only a short ID and a one-time key (~100 characters), so the QR code is much smaller. The encrypted key waits on Capy's server, which can't read it without the key in your link.
In a terminal, the QR opens full screen, centered, with the masked link and c copy / r reveal / q done underneath.
A short note before the link explains how transport and capy pair work together.
capy deploy commits .capy/deploy.json with keep.lock. The target settings (names only, no values) now travel with the deploy commit, so teammates and CI get them too.
capy pair confirms the account first. After you approve in the browser, it asks "Enable this location as [email]?" before it installs the session or keys. Enter defaults to No.
QR codes are never silently skipped. If one is too big for the window, Capy still shows it and tells you to zoom out. This also applies to capy pair.