
Company News
Free Business Plan Upgrades for Open Source Maintainers
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.
A modern, sleek terminal git client built with Ink 4 (React 18 + ESM). Fuzzy-filterable lists, inline diff previews, hunk-level staging, an interactive-rebase helper, a reflog safety net, and a built-in changelog viewer — all keyboard-first, all in your terminal.
█▀▀ █ ▀█▀ ▄▄ █▀▀ █ █ █▄ █ ▀█▀ █▄█
█▄█ █ █ █▄▄ ▀▄▀ █ ▀█ █ █
⎇ main ↑1 · Stage Changes
↑↓ navigate / filter Space stage/unstage h hunks x discard Esc back
git log --all --graph visualization↑2 ↓1), detached-HEAD badge, MERGING / REBASING indicators, conflict countP), pull (p), fetch (f) run async with toast feedback; push auto-offers --set-upstream when missingSpace/Enter, stage/unstage all with a, discard with x (confirmed), live diff preview of the highlighted fileh on a file for a git add -p equivalent: step through hunks, stage or unstage eachTab), warns when nothing is stagedEnter), create (n), delete (d, confirmed + force-delete flow for unmerged), merge (M), rename (R)+adds -dels → full file diff, drill-down with Enter, back with Escpick/squash/fixup/drop per commit, execute without ever opening $EDITORCHANGELOG.md or fetch one for any npm package / GitHub repo (lazy-loaded, keeps startup fast)Enter confirms, Esc goes back, / filters, everywhere/ in any list and type; matches are ranked and highlightedcvnty status # colored working-tree summary (alias: st)
cvnty branch # branches with tracking info (alias: br)
cvnty log -n 5 --all # recent commits
cvnty commit -m "fix: message"
cvnty push · pull · stash · tag · remote
Subcommands never load React/Ink, print plain text (respects NO_COLOR), and exit non-zero on failure — safe for scripts and CI.
git restore, porcelain v2)npm install --global git-cvnty
This exposes the cvnty command (with a git-cvnty alias). Also published under the @bunsdev scope: @bunsdev/cvnty, @bunsdev/cvnt.
Or run without installing:
npx git-cvnty
cvnty # interactive TUI (run inside a git repo)
cvnty --no-logo # hide the ASCII logo
cvnty <command> # non-interactive subcommand (see above)
cvnty --help
| Key | Action |
|---|---|
↑ ↓ / PgUp PgDn | Navigate lists, scroll diffs |
/ | Fuzzy-filter the focused list (Esc clears) |
Enter | Select / confirm |
Esc | Back / cancel |
? | Help screen (full reference) |
q / Ctrl+C | Quit |
Dashboard shortcuts: s stage · c commit · b branches · l history · t stashes · m remotes · g tags · u reflog · i rebase · v changelog · P push · p pull · f fetch · r refresh.
Each screen shows its own hint bar — you never have to memorize these.
git-cvnty reads ~/.config/cvnty/config.json (honours $XDG_CONFIG_HOME). Everything is optional:
{
"theme": "solar",
"themeOverrides": { "accent": "#ff8800" },
"settings": {
"showLogo": false,
"graphLines": 30,
"logLines": 100,
"includeUntrackedInStash": true
},
"keybinds": { "quit": "x", "filter": "f" }
}
theme — preset name: cyan (default), magenta, mono, solarthemeOverrides — override any color (Ink color names or hex): accent, highlight, success, error, warning, added, removed, modified, untracked, conflicted, tree, border, …settings — showLogo, graphLines, logLines, includeUntrackedInStashkeybinds — remap the single-char dashboard shortcuts (quit, help, filter, refresh, stage, commit, branches, history, stashes, remotes, tags, reflog, push, pull, fetch)Invalid config files are ignored safely (defaults apply).
Two sources:
CHANGELOG.md / HISTORY.md / CHANGES.md / … in your repo root and parses Keep a Changelog sections into a per-version sidebar.react, react@18.0.0, facebook/react, or owner/repo@1.2.3; resolves installed packages via node_modules, then fetches CHANGELOG.md or GitHub Releases.git clone https://github.com/BunsDev/git-cvnty
cd git-cvnty
npm install
npm run build # esbuild → dist/cli.js
npm test # jest (unit + ink-testing-library interaction tests)
npm run dev # rebuild on change
git-cvnty/
├── cli.js # Entry: subcommand routing + lazy TUI bootstrap
├── build.js # esbuild config (ESM, JSX-in-.js, node18)
├── jest.config.js # ESM-native jest via esbuild transformer
├── src/
│ ├── app.js # Screen registry + router + store provider
│ ├── config.js # ~/.config/cvnty/config.json loader, theme presets
│ ├── cli-run.js # Non-interactive subcommands (no React/Ink)
│ ├── changelog.js # Changelog parsing + GitHub/npm fetching
│ ├── commands/ # Async git ops (execFile, no shell) with typed GitError
│ │ ├── exec.js # runGit + GitError kinds (NO_REMOTE, MERGE_CONFLICT, …)
│ │ ├── repo.js status.js branches.js commits.js diff.js
│ │ ├── remote.js stash.js tags.js rebase.js
│ │ └── index.js # barrel
│ ├── utils/
│ │ ├── parsers.js # Pure parsers: porcelain v2, refs, diffs/hunks, reflog …
│ │ └── fuzzy.js # Scored fuzzy matching for lists
│ ├── state/store.js # Reducer store: screen · modals · toasts · refresh tick
│ ├── hooks/
│ │ ├── useKeymap.js # Declarative bindings → input handling + hint bar
│ │ ├── useGitData.js # Event-driven queries (useGitStatus, useBranches, …)
│ │ ├── useAsyncTask.js # Async op lifecycle for the UI
│ │ └── useTerminalSize.js
│ ├── components/ # Pure presentational: FilterList, DiffView, Modals,
│ │ └── … # Toasts, HintBar, Frame, Panel, ChangelogDialog
│ └── screens/ # Composed views: Dashboard, Stage, Commit, Branches,
│ └── … # Stash, History, Remotes, Tags, Reflog, Rebase, Help
├── test/ # 100+ tests: parsers, commands (real temp repos),
│ └── … # config, CLI e2e, full-screen interaction tests
└── dist/cli.js # Bundled output (npm run build)
Design principles
src/commands/ are pure async utilities — every failure is a GitError with a machine-readable kind, so screens can offer the right fix (e.g. push with no upstream → auto --set-upstream retry).useKeymap; the same declaration renders the hint bar, so docs and behavior can't drift.setInterval polling.confirm() modal.MIT © BunsDev
FAQs
A modern and sleek CLI git management tool
The npm package git-cvnty receives a total of 6 weekly downloads. As such, git-cvnty popularity was classified as not popular.
We found that git-cvnty demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Company News
Open source maintainers are under more pressure than ever. We're raising our open source program from the Team plan to the Business plan, free.

Security News
The supply chain control that delays freshly published gems now covers lockfile generation and gem vendoring in Ruby projects.

Security News
During a UK cyber test, a Mythos 5 agent used sockpuppets, social engineering, and prompt injection to try to get a maintainer to merge malware.