Skip to main content
The git channel powers the workspace diff and checkpoint UI: it returns structured diffs, lists the checkpoints the agent creates as it works, and rolls files (and the conversation) back to a checkpoint or reverts a single file. Both the web app and the aether CLI use it. See the WebSocket overview for connecting. Requests carry a requestId; responses echo it. Responses are discriminated by success, with an error string on failure.

diff

Get a structured diff of the workspace.
Request
mode is optional: "main" (default) diffs against the base branch, "lastCommit" diffs against the last commit. Untracked files appear as added.
Response
Each file has status (added, modified, deleted, renamed) and kind (text, binary, too_large). Text and binary results have additions/deletions and hunks; a binary type change can include text hunks. Each line has kind (add, del, context), text, and oldLine/newLine, with null on a side where the line does not exist. Untracked text larger than 262,144 bytes stays in the change list as too_large. It has a maxBytes limit and no counts or hunks. Other files remain available, and the whole-file revert operation still works. Genuine Git and file-read errors fail the request.
Oversized file

snapshots

List the agent’s checkpoints — points in the conversation you can restore to.
Request
limit is optional, up to 200.
Response

restore

Roll the workspace files and the conversation back to a checkpoint, identified by its messageId. History after that point is truncated.
Request
Response
Restore is destructive: it discards file changes and conversation history made after the checkpoint. After a restore the server also pushes a files refresh and a conversation.truncated agent event.

revertFile

Revert a single file to its base state. The required fields depend on fileStatus.
Modified deleted
Renamed
The response is { requestId, success }, and the server pushes a files refresh afterward.

showFile

Read a file’s contents at a specific git ref.
Request
Response

checkpoint (server push)

When the agent creates a checkpoint, the server pushes a notification with its messageId. There is no request for this.