Skip to content
yaggui docsNext (unreleased)

Command log

yaggui runs your own git for every change it makes, and records each command in the command log. Use it to see exactly what an action did, to read Git’s full answer when something fails, or to repeat a command in a terminal.

Every Git process yaggui starts is recorded, including the ones you did not ask for directly:

  • commands you trigger (commit, checkout, fetch, push…);
  • background commands, such as automatic fetches and the git commit-graph write --reachable --changed-paths --no-progress that speeds up the graph of large repositories (see Slow first open);
  • checks such as git --version when you set the Git path.

Most reads (the graph, the status, diffs) do not run Git at all: yaggui reads the repository directly, so they do not appear here.

Each entry holds:

Field Shown as
Command git …, with arguments quoted for a POSIX shell such as bash or zsh
Status an icon: Succeeded, Failed, Cancelled, or Could not start (the git program itself could not run)
Exit code “exit {code}” when it is not 0
Duration and time how long it ran, and when it started
Folder the folder it ran in (“in …”), when expanded
Output Git’s standard output and standard error, when expanded
Repository the repository name, when the filter is All
  • Press ⌘J (Ctrl+J on Windows and Linux). Press it again to close the log. The shortcut can be rebound.
  • Click Command log at the right of the status bar. Once commands have run it reads Log ({count}).
  • In the command palette, run Toggle the command log.
  • On macOS, choose View → Command Log or Help → Command Log.
  • From an error, click Open command log (see below).

The log opens as a panel at the bottom of the window, above the status bar. Drag its top edge to resize it. Its size and filter are not kept after you restart yaggui.

The Commands to show switch in the panel header has two choices:

  • This repository (default): only the commands of the repository in the active tab.
  • All: the commands of every repository, plus commands not tied to one (such as git --version). Each entry then shows its repository name.

On the welcome tab, the log always shows All. The header also shows the number of commands listed.

The newest commands are at the top. Click an entry to expand it. An expanded entry shows the folder it ran in, then two buttons:

  • Copy command copies the full command line, ready to paste into a terminal.
  • Copy output copies what Git printed.

Then come the standard output and the standard error. An entry with no output shows “No output.”.

Each of the standard output and standard error is kept up to 64 KiB. Beyond that, the beginning is kept and the entry shows “Output truncated.”. To see a very long output in full, run the command yourself.

When an error toast or panel has an Open command log button, clicking it opens the log on the last failed command: the filter switches to All if needed, and the entry is expanded and highlighted. This is the fastest way to read Git’s complete answer, for example a server’s refusal message or a hook’s output. See Error messages.

Click Clear the log (the trash icon in the panel header). It empties the log for every repository at once, without confirmation. It has no effect on your repositories.

  • The log lives in memory only. It is never written to disk and is empty each time yaggui starts.
  • yaggui keeps the last 500 commands. Older ones are dropped. During a long session, the panel can show more (up to 2000) until you close yaggui.

The log shows commands as they ran, except for credentials inside URLs. If you typed a URL with a password or token in it (for example https://user:[email protected]/repo.git) when cloning or adding a remote, the secret is replaced by *** in the command, in the output and in the error details: https://user:***@example.com/repo.git, or https://***@example.com/repo.git when the URL holds only a token. SSH addresses (git@host:owner/repo.git) hold no secret and are shown as they are. Git itself still receives the real URL.

As a result, Copy command and Copy output copy the masked form: a command copied from the log does not authenticate when you run it in a terminal. Secrets that are not part of a URL, such as a token passed in an http.extraHeader setting, are not masked. Prefer a credential helper to tokens in URLs.

yaggui never adds credentials to the log itself: it never asks for or stores passwords. See Data and privacy.