Skip to content

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).

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.