Skip to content

Git signing request

A Git signing request asks the phone to sign content with an SSH-key secret. It is associated with a previously approved secret-use request, but has its own approval decision. The private key stays on the phone; the client receives a signature.

The request identifies the client and signing key, the client’s reason when supplied, and the command that triggered signing. It also shows how much earlier the original command request was received.

For recognized Git objects, the title distinguishes Git commit signature from Git tag signature. The main card shows the commit or tag message and the identities in the content: author and committer for a commit, or tagger for a tag. These fields are read from the content the key will sign.

Expand Exact content to sign to inspect the complete Git object, including headers and message. If Agentknock cannot produce a recognized message summary, Content to sign starts expanded. Readable text is displayed as text; binary or unsuitable text is displayed as hexadecimal bytes. The content is selectable.

When the client supplies repository information, a separate Repository card shows the remote or local worktree, branch and optional upstream, or Detached HEAD. It can also show the number of changed files and a list of paths with these markers:

Marker Change
A Added
D Deleted
M Modified
T File type changed

Repository information is reported by the client and is not part of the signed content. A listed path identifies a change; it does not display the file’s contents or a diff. Use the exact signing content to understand what the signature itself covers.

When present, Script contents expands to show source captured for the original command. The triggering command, reason, and script source are client reports. They explain the context of the request, while the displayed Git object is the actual content being signed.

Allow once creates a signature for this request. Deny once refuses it. Applicable approval settings, AI review, or an existing temporary Git-signing grant can decide the request automatically.

Allow for 4 hours…, when available, approves the current signature and lets this client request further Git signatures with the named key for four hours. The grant covers any repository and signing content, not just the displayed commit, tag, branch, or command. It does not grant SSH authentication or environment-variable delivery access. See temporary access for eligibility and how to end it.

The app verifies that the request belongs to the approved command and uses its SSH key. If that key was changed or renamed after the command began, start the command again. If the key’s approval settings change while the request is open, the app checks them again before signing.

AI review receives the exact signing text, the available repository information, and the original command context, together with applicable instructions. The private key is excluded. The page records the review’s explanation and whether it led to an automatic decision or asked you to decide.

Signing content larger than 128 KiB (131,072 bytes), or content that is not valid UTF-8, requires a human decision. Missing original command context or timing information also sends the request to you. Other review failures follow the shared AI-review behavior.

Signature sent means the phone approved the request and is waiting for the client to confirm receipt. Content signed means that confirmation arrived. It confirms delivery of the signature, not that Git created a commit or tag successfully.

Signature denied means the phone refused to create a signature. Invalid requests, client cancellation, expired exchanges, and invalid confirmations show the corresponding explanation. Signature could not be confirmed means the client’s confirmation could not be verified; it does not establish whether the client received a signature.

Technical details includes the request, decision, and completion times when available; client software and library information; the reported worktree; and the client, original invocation, and signing request IDs.