GitNifty is a robust and promise-based Git utility for Node.js, offering developers smart, automation-ready commands for common Git operations. Ideal for building CLI tools, automation scripts, or custom Git workflows, GitNifty streamlines your Git interaction without complex shell scripting.
Elevate your Git game with tools that are as delightful as they are effective.
Built with TypeScript and powered by child_process.exec
, GitNifty offers clean abstractions for Git commands while maintaining full control and flexibility.
yarn add gitnifty
# or
npm install gitnifty
GitNifty exposes a Git
class that can be used to interact with a Git repository via common commands like user
, currentBranch
, checkWorkingDirClean
, and more.
import { Git } from "gitnifty";
const git = new Git({ cwd: "/path/to/your/repo" });
const username = await git.getUserName(); // e.g., 'John Doe'
const branch = await git.getCurrentBranchName(); // e.g., 'main'
const isClean = await git.isWorkingDirClean(); // true or false
async function main() {
const git = new Git();
const userName = await git.getUserName();
console.log("Git User:", userName);
}
main();
- Smart Commands - Get common Git info without writing raw shell logic.
- Promise-based - Easy async integration with modern toolchains.
- Error-resilient - Graceful handling for missing remotes or configs.
- Automation-ready - Perfect for CLI tools, devops, and build scripts.
- Zero dependencies - Lightweight and focused.
- TypeScript Support - Fully typed API for better DX.
You can view the complete API reference here.
- Node.js v18+
- Git installed and available in PATH
- TypeScript (optional but supported)
Does it work outside of Git repositories?
Some commands require a valid Git repository (.git folder). Others like git config may still work.Can I use this in a CLI tool?
Yes! GitNifty is designed for CLI automation. You can use it in commander, yargs, or any script-based tool.Does it support Git hooks or events?
Coming soon! GitNifty will support basic hook helpers and lifecycle execution.Released under the Apache License