Interactive mode

Running ggc with no arguments drops you into the interactive prompt. There are two modes:

  • Search mode (default) — fuzzy-search over all ggc commands and run one.
  • Workflow mode — build a queue of commands, then execute them in sequence with one keystroke.

Search mode

From the prompt:

  • type a few letters → the command list narrows via fuzzy match
  • Enter — execute the highlighted command
  • Tab — add the highlighted command to the workflow queue and stay in search
  • / or Ctrl+P/Ctrl+N — move selection
  • Ctrl+C — cancel the current input
  • Ctrl+D — exit

Fuzzy pickers

Commands that take a branch, file, or stash entry open a nested picker using the same keys (/, Enter to accept, Esc to cancel).

History recall

The interactive prompt remembers previously executed commands (see Configuration & aliases → History).

  • type history + Enter — open a numbered picker of the most recent commands (deduplicated by display string, newest first); type a number + Enter to re-run, Ctrl+C (or Ctrl+G / Esc) cancels
  • Ctrl+P / Ctrl+N on an empty input — walk backwards/forwards through recent commands (when the input is non-empty these keys still move the selection, matching readline conventions)
  • Ctrl+R — enter reverse-i-search; the prompt turns yellow and shows a (reverse-i-search) label so the mode is unmistakable. Type to fuzzy filter, / or Ctrl+P/Ctrl+N to move, Enter runs the selection, Ctrl+C exits (the global "quit ggc" meaning of Ctrl+C is suspended inside the overlay). Ctrl+G / Esc also exit.

The history command itself is never recorded, so navigating history (including history clear, history search ..., history last ...) never pollutes future searches.

Set GGC_NO_HISTORY=1 (or history.enabled: false in the config) to disable history writes without affecting reads.

Workflow mode

Workflow mode turns the interactive prompt into a command pipeline builder. Typical use: stage → commit → push in one go without re-typing anything.

  1. In search mode, highlight a command and press Tab. The command is appended to the workflow queue and the prompt stays in search mode so you can add the next one.
  2. Press Ctrl+T to switch to workflow view. You see the queued commands in order.
  3. In workflow view: x runs the queue (execution stops on the first failure), n creates a new workflow, d / Ctrl+D deletes the active workflow, Ctrl+N/Ctrl+P cycles between workflows.
  4. Ctrl+T again returns to search mode without clearing the queue; c clears the active workflow.

Commands with placeholders (e.g. aliases like commit-msg: "commit -m '{0}'") will prompt for the placeholder value when they run, not when they're queued.

Keybinding profiles

The interactive prompt ships with four profiles:

  • default — curated ggc defaults
  • emacs — GNU readline-style
  • vi — modal, hjkl navigation
  • readline — strict readline compatibility

Pick one in ~/.config/ggc/config.yaml:

interactive:
  profile: emacs

Fine-grained overrides (per-OS, per-context, per-terminal, custom key combos) are documented in Configuration & aliases → Keybindings.

Exiting

From search mode: Ctrl+D or type quit + Enter. quit only works inside interactive mode; invoking ggc quit from a shell is a no-op.