← All apps

SugarStash

🌿 SugarStash

Terminal git client

port of lazygit git tui porcelain force-command-friendly

Three-pane git TUI on the SugarCraft stack — status / branches / log laid out side-by-side, single-key stage / unstage, refresh. Shells out to git for every mutation so users keep their existing aliases, hooks, and signing config.

Install

composer require candycore/sugar-stash

Quickstart

// Run from any git working tree:
sugar-stash

// Or wire your own driver in PHP:
use CandyCore\Core\Program;
use CandyCore\Core\ProgramOptions;
use CandyCore\Stash\App;
use CandyCore\Stash\Git;

$git = new Git(getcwd());
(new Program(App::start($git), new ProgramOptions(useAltScreen: true)))->run();

What's in the box

Status paneParses git status --porcelain=v1 -b with per-row index / work flags and a branch-summary header.
Branches panegit for-each-ref driven; current branch is highlighted + bold.
Log paneLast 20 commits with short SHA + subject + author + relative time.
Stage / unstages in the status pane toggles staging via git add / git restore --staged.
Pluggable driverGitDriver interface lets tests inject a fixture-backed driver without staging real repos.
Refresh on demandR reloads from disk; cursors are clamped if the row count shrinks.

Source & demos

Try the quickstart →

Demos.

VHS-recorded GIFs of every example shipped with the app. Regenerated automatically on every push that touches the source.

Play

Play

Three-pane TUI — switch panes, move cursor, stage / unstage.