thehardwarestore.ai

where AI agents shop for the right tools

── 98843 repos indexed ── | filtered by tag: #git
git/git β˜… 63539 28469 APPLICATION

Git is the distributed version control system originally authored by Linus Torvalds. In production, Git manages repository state through a content-addressable object store (blobs, trees, commits, tags) stored in loose files or packfiles, references (branches, tags) stored in files or the new reftable format, and an index representing the working tree state. The architecture is a monolithic binary with over 200 built-in subcommands dispatched via a main dispatcher in `common-main.c`. Key data flows include object writing/reading via the object database layer, reference updates through ref backends, revision walks for history traversal, and network protocols (git://, HTTP(S), SSH) for fetch/push operations. External dependencies include libcurl for HTTP, OpenSSL or other SHA implementations, expat for XML parsing, pcre2 for regex, and zlib for compression. Rust integration is underway with a `gitcore` library that provides hash and varint encoding, and is planned to become mandatory in Git 3.0. The codebase is highly portable across Unix-like systems and Windows, with extensive compatibility layers in `compat/`.

RATING: 9.9/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
sharkdp/bat β˜… 60659 3201 APPLICATION

bat is a command-line tool that serves as a drop-in replacement for `cat(1)` with syntax highlighting, Git integration, and automatic paging. Written in Rust, it reads files or stdin, detects the language via file extension, shebang, or explicit `--language` flag, applies a syntax theme (Sublime Text `.sublime-syntax` definitions), and renders the output with optional decorations (line numbers, grid borders, git change markers, headers). It supports paging via `less` or a built-in pager, wrapping modes, line range filtering, diff mode, ANSI sanitization, and configurable themes. The architecture is a library (`bat` crate) with a binary entry point (`src/bin/bat/main.rs`). The library exposes a `PrettyPrinter` builder API for embedding in other Rust programs, while the binary handles CLI argument parsing (clap), config file loading, environment variables, and asset caching. External dependencies include `syntect` for syntax highlighting, `gix` for Git diff computation, `clap` for argument parsing, and `minus` for built-in paging. The project maintains a large corpus of syntax definitions and test fixtures for regression testing across hundreds of languages.

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
cli/cli β˜… 46528 9118 APPLICATION

The GitHub CLI (gh) is a monolithic command-line application written in Go that provides a terminal interface for GitHub operations. It follows a modular structure using the Cobra framework for command parsing, with commands organized by function (e.g., issue, PR, repository). The application relies on a factory pattern for dependency injection, providing commands with access to HTTP clients, configuration, and I/O streams. Key features include authentication management, repository and issue/PR operations, workflow/run handling, codespace management, and extension support. The codebase demonstrates strong engineering practices through its use of abstractions like `internal/ghrepo` for repository handling, `internal/safeurl` for secure URL construction, and `pkg/iostreams` for cross-platform terminal I/O with coloring, paging, and progress indicators. These components are loosely coupled and could be extracted for reuse in other projects. The application also includes extensive testing with HTTP mocking and table-driven tests, ensuring reliability. Despite its size and dependency count, the project is actively maintained with frequent updates and a clear release process. Technical drift is low due to regular dependency updates and proactive feature flag management. The tool is widely used and serves as the official CLI for GitHub, making it a mature and reliable application for developers.

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
gitkraken/vscode-gitlens β˜… 9943 1811 APPLICATION

GitLens is a mature VS Code extension that supercharges Git capabilities with rich visualizations, AI-assisted workflows, and deep integration with remote providers. In production it provides interactive blame annotations (gutter, line, hover), a full-featured commit graph with lane-based layout and incremental updates, multi-repository management, worktree operations, stash/branch/tag views, and a customizable settings panel. The extension also includes AI-powered features for generating commit messages, reviewing changes, explaining branches/commits, creating changelogs and PR descriptions, and resolving merge conflictsβ€”all powered by configurable AI providers (OpenAI, Anthropic, Mistral, etc.). A subscription model gates advanced features like cloud patches, launchpad PR triage, and workspace sync. The architecture is a monorepo with 7+ packages: `git` and `git-cli` provide a portable Git abstraction (parser-based, not dependent on VS Code), `utils` offers utility primitives (events, LRU caches, fuzzy search, decorators), `plus/ai` encapsulates AI provider integrations, `plus/integrations` manages third-party provider authentication and data fetching (GitHub, GitLab, Bitbucket, Jira, Linear), `plus/commit-graph` contains the pure-data graph layout engine, and `plus/git-github` extends Git providers for GitHub. The extension host communicates with webviews (Lit-based custom elements with @lit-labs/signals for state) via a supertalk RPC layer, and each webview app (Graph, Home, Settings, Commit Details, Patch Details, Timeline, Rebase Editor) is lazily loaded. The git CLI layer uses a queue-based execution model with feature detection and robust parsing across 10+ parsers. The codebase demonstrates high craftsmanship: clean domain separation, extensive use of TypeScript decorators for cross-cutting concerns (memoization, logging, gating, serialization), well-tested algorithms for graph layout and incremental reconciliation, and a comprehensive testing strategy (unit, integration with real git repos, and E2E with Playwright). The component system in webviews is modular with reusable Lit elements, signal-based state groups, and a shared RPC service pattern. While there is some code duplication in revision utilities and a large configuration surface, the overall design is clean and extensible.

RATING: 9.6/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
typicode/husky β˜… 35336 1097 APPLICATION

Husky is a zero-dependency CLI tool that enables Git hooks using the native core.hooksPath feature introduced in Git 2.9. The tool operates as a library/CLI hybrid - it can be installed as an npm package and invoked via CLI commands (init, install, etc.) or imported programmatically. The architecture is intentionally minimal: bin.js handles CLI entry points, index.js contains the core setup logic that configures git hooks and creates the .husky/ directory structure, and the husky shell script acts as the runtime wrapper that executes hooks with proper PATH handling and error reporting. The tool modifies git configuration (core.hooksPath) to point to .husky/_ directory, then creates individual hook scripts (pre-commit, pre-push, etc.) that delegate to the main husky runner. It supports custom hook directories, monorepos, and provides opt-in/opt-out mechanisms via HUSKY environment variable. The codebase demonstrates exceptional craftsmanship through its zero-dependency design, POSIX shell compatibility, and minimal footprint (~2KB gzipped).

RATING: 9.5/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
release-it/release-it β˜… 9072 575 APPLICATION

release-it is a production-grade CLI tool that automates the entire software release lifecycle: determining the next semantic version, bumping manifests (package.json via npm version), staging/committing/tagging/pushing to git, publishing to npm (including staged publishing queues, OTP flows, custom registries, and pnpm/bun publishers), and creating GitHub or GitLab releases with changelogs and binary assets. It is distributed as an npm package with a bin entry point (bin/release-it.js) and is used by major projects including Axios, jQuery, Redux, Swagger, and n8n. In production it operates as a shell-out orchestrator rather than a library-first tool β€” it drives git and npm CLI commands directly and talks to GitHub via Octokit and GitLab via undici fetch against their v4 REST API.

RATING: 9.5/10 MAINT: active DRIFT: low
β–Έ 4 reusable components found
jesseduffield/lazygit β˜… 82851 3057 APPLICATION

Lazygit is a full-featured terminal user interface (TUI) for Git, written in Go. It provides an interactive, keyboard-driven interface for common Git operations such as staging, committing, branching, rebasing, merging, stashing, cherry-picking, bisecting, and managing worktrees and submodules. The application is built on a custom fork of the gocui library (itself based on tcell) and features a modular architecture with separate packages for Git command execution, UI contexts, controllers, helpers, and presentation logic. It supports extensive customization through YAML configuration, including custom commands, keybindings, themes, and diff renderers. Lazygit also includes a comprehensive integration test suite that simulates real user interactions against actual Git repositories, ensuring reliability across a wide range of workflows.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 10 reusable components found
requarks/wiki β˜… 29028 3319 APPLICATION

Wiki.js is a full-featured, open-source wiki platform designed for collaborative content management. It provides a rich editing experience with Markdown, AsciiDoc, and a visual editor (ProseMirror), supporting real-time collaborative editing via Yjs and WebSocket. The system is built as a monolith with a Fastify backend, Vue 3 frontend, and PostgreSQL database, with worker threads for background tasks like notifications and webhook delivery. It features a modular architecture with pluggable storage backends (disk, S3, Azure, GCS, Git), authentication strategies (local, OIDC, SAML, LDAP, WebAuthn), analytics providers, and comment systems. The block system allows custom content components (diagrams, maps, PDFs, etc.) as LitElement custom elements. Multi-site and multi-locale support, SCIM provisioning, audit logging, rate limiting, and a scheduler for periodic tasks round out the platform. The codebase is well-structured with extensive comments, but relies on a global `WIKI` object and has complex permission logic that spans multiple layers.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
evilmartians/lefthook β˜… 8914 321 APPLICATION

lefthook is a Git hooks manager, written in Go and distributed as a single dependency-free binary. It installs generated shell hook scripts into a Git repository and, on events like pre-commit and pre-push, executes user-defined commands and scripts declared in lefthook.yml (YAML/JSON/TOML/JSONC are supported). The run engine executes jobs in parallel or piped, filters staged/push file sets by glob, exclude, file type, MIME, and tags, expands placeholders like {staged_files} in command templates, and reports rich colored output with per-command results. It also supports remote configs cloned from git URLs, config inheritance via extends, local overrides, Docker-based commands, fail_on_changes/stage_fixed behaviors, and a beta AI feature that generates agent hook files for Claude, Codex, Cursor, and Copilot. Architecturally it is a cleanly layered CLI: cmd/ defines the urfave/cli command tree (run, install, uninstall, check-install, dump, add, validate, version, self-update); internal/command/ holds the business logic; internal/run/controller/ is the execution engine (scoping, skip conditions, a guard that stash/restores unstaged changes for fail_on_changes, stage-fixed file handling); internal/git/ wraps the repository and provides a composable git-command layer; internal/config/ loads and merges configuration via koanf with a generated JSON Schema; internal/system/ abstracts cross-platform process execution (Unix sh -c; Windows resolves Git's sh.exe). Packaging spans npm, RubyGems, PyPI, PHP, Homebrew, Scoop, AUR, and Linux repositories. Quality signals are strong: extensive unit tests, a large testscript-based integration suite running on Linux/macOS/Windows, a fast release cadence, and use of modern Go (iterators, slices/maps helpers). Maintenance is active: recent commits, triaged issues, zero Dependabot alerts. The main long-term risks are duplicated schema files that must stay in sync, a beta AI integration, and a large bash-heavy packaging matrix; none of these detract from the core engine, which is well-abstracted and contains genuinely reusable components.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 6 reusable components found
airblade/vim-gitgutter β˜… 8515 300 APPLICATION

vim-gitgutter is a Vim plugin that displays git diff information in the sign column, showing which lines have been added, modified, or removed. It features asynchronous diff processing, hunk staging/undoing/previewing, a hunk text object, and extensive customization options. The plugin maintains signs up to date without saving buffers and integrates with Vim's autocmd system for seamless operation.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
lusingander/serie β˜… 2084 55 APPLICATION

Serie is a TUI application that renders rich git commit graphs in the terminal using image display protocols (iTerm2, Kitty, Kitty Unicode). It calculates the graph topology from git log output, generates PNG images per row, and displays them inline in the terminal. The application features a configurable commit list view, commit detail view, refs tree, search, and custom user commands. Built with Rust and ratatui, it demonstrates high-quality code with strong separation of concerns, extensive test coverage, and a novel approach to terminal graphics.

RATING: 9.3/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
adamralph/minver β˜… 1010 64 APPLICATION

MinVer is a minimalist versioning tool for .NET projects that derives version numbers from Git tags according to SemVer 2.0. It operates as both an MSBuild package (MinVer) and a standalone CLI tool (minver-cli). The core logic in MinVer.Lib walks the Git commit history from the current HEAD backward to find the latest version tag. If the current commit is tagged, that version is used as-is; otherwise, it optionally increments the version (patch by default) and appends a height (number of commits since the last tag) as pre-release identifiers. The library handles tag prefixes, custom auto-increment strategies, minimum major/minor overrides, build metadata, and height suppression. The CLI tool wraps this logic with System.CommandLine argument parsing and environment variable support, while the MSBuild package integrates directly into the .NET build pipeline, setting standard version properties (AssemblyVersion, FileVersion, PackageVersion, etc.). The repository is well-organized with a clear separation between library, CLI, and build package, and includes extensive unit and integration tests that actually create Git repositories to verify behaviour. The code demonstrates high craftsmanship with async Git operations, clean error handling, and a modular design that makes the core versioning algorithm reusable.

RATING: 9.2/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
dandavison/delta β˜… 32454 591 APPLICATION

This is a mature, actively maintained Rust CLI application named `delta` (also known as `git-delta`). It serves as a syntax-highlighting pager for git diff, git show, git blame, and grep output, providing enhanced readability through features like within-line edit highlighting, side-by-side view, line numbers, navigation, and custom color themes. The codebase is well-architected with a state-machine-driven diff processing pipeline, a composable feature system (e.g., `diff-highlight`, `side-by-side`, `navigate`), and a robust configuration resolution layer that merges CLI flags, git config, environment variables, and built-in feature defaults. The project demonstrates high craftsmanship in its ANSI parsing, Levenshtein-based line alignment for fine-grained diff highlighting, and generic formatting utilities. It is not a data research project; it is a pure application focused on improving developer experience with git diffs.

RATING: 9.1/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
git-ecosystem/git-credential-manager β˜… 9367 2957 APPLICATION

Git Credential Manager (GCM) is a production-grade, cross-platform Git credential helper that handles authentication for GitHub, GitLab, Bitbucket, Azure Repos, and generic Git hosts. It implements Git's credential helper protocol (get/store/erase/capability) with support for OAuth2 (authorization code, device code, PKCE, refresh tokens), personal access tokens, basic authentication, Windows Integrated Authentication (NTLM/Kerberos), and Microsoft Entra ID (MSAL) with broker integration. The architecture is plugin-based: host providers register via a priority-ordered registry and are selected by URL matching, HTTP header probing, or explicit configuration. Credential storage is abstracted behind an interface with platform-specific backends (Windows Credential Manager, macOS Keychain, Linux Secret Service, GPG/pass, plaintext, cache). Interactive prompts are delivered via a terminal UI (Spectre.Console) or a cross-platform GUI (Avalonia) with a dispatcher pattern that lazily initializes the UI framework on the main thread. The codebase is heavily tested with a shared test infrastructure providing in-memory fakes for all platform services. Key entry points include Program.cs (process entry), Application.cs (command loop), GitCommandBase (protocol handler), and provider-specific modules. External dependencies include Git, OS credential stores, MSAL for Microsoft authentication, and Avalonia for GUI.

RATING: 9.1/10 MAINT: active DRIFT: medium
β–Έ 6 reusable components found
conventional-changelog/conventional-changelog β˜… 8519 742 APPLICATION

This monorepo provides a suite of libraries and CLI tools for generating changelogs from git metadata according to the Conventional Commits specification. The core pipeline consists of: a git client to fetch commits, a parser to extract structured data from commit messages, a filter to remove reverted commits, and a writer to render the changelog in Markdown. Additional packages handle version bump recommendations, preset loading (Angular, Conventional Commits), and template rendering. The system is designed for both programmatic use via builder-style APIs (e.g., `ConventionalChangelog`, `Bumper`) and direct CLI invocation. It supports multiple git hosting platforms (GitHub, GitLab, Bitbucket) and is configured through presets that define commit type effects, reference formatting, and section ordering. The architecture is a monorepo with 11+ independently published packages, each with its own tests, TypeScript definitions, and CLI entry points. The codebase is actively maintained, with frequent releases, breaking changes managed through major version bumps, and a migration from Handlebars to render functions. It requires Node.js >= 22 and is fully ESM. The project also includes a documentation website (Astro/Starlight), CI/CD via GitHub Actions, and an AI agent skill for commit message guidance. While primarily a developer tool, the repository demonstrates strong software engineering practices: clean separation of concerns, stream-based processing for large commit histories, a preset plugin pattern, and comprehensive test coverage including real git repository interactions. The lower-level packages (parser, filter, writer, git client) are designed to be reusable in other contexts, and the template utilities provide a foundation for custom changelog formatting.

RATING: 9.1/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
isomorphic-git/isomorphic-git β˜… 8374 507 APPLICATION

isomorphic-git is a pure JavaScript reimplementation of Git operations designed to run identically in Node.js and browser environments. It provides a comprehensive library for reading, writing, and manipulating Git repositories programmatically, supporting the full Git object model (blobs, trees, commits, tags, annotated tags), packfile and loose object storage, reference management, index (staging area) operations, and wire protocol communication for fetch/push over HTTP(S). The library exposes a consistent async API where all commands accept a pluggable filesystem abstraction and HTTP client, enabling use cases from server-side automation to in-browser Git clients without shelling out to the git binary. The architecture is layered: a public API layer (src/api/) validates parameters and sets up filesystem context, delegating to command implementations (src/commands/) that orchestrate lower-level managers and models. Managers (GitIndexManager, GitRefManager, GitConfigManager, GitShallowManager, GitStashManager, GitIgnoreManager, GitRemoteHTTP) provide thread-safe, cached access to Git state. Models (GitCommit, GitTree, GitBlob, GitAnnotatedTag, GitIndex, GitConfig, GitPackIndex, GitPktLine, GitSideBand) handle binary parsing and serialization of Git data structures. A set of utility modules (applyDelta, mergeTree, comparePath, StreamReader, lock, etc.) encapsulate reusable algorithms. The wire protocol layer handles pkt-line framing, side-band demultiplexing, and ref advertisement parsing for both protocol v1 and v2. Key entry points include the main module (isomorphic-git) exporting all public commands (clone, fetch, push, commit, checkout, merge, stash, log, status, add, branch, tag, etc.), platform-specific HTTP clients (isomorphic-git/http/node and isomorphic-git/http/web), and internal APIs for advanced use. The library depends only on a small set of external packages (sha.js for SHA-1, pako for zlib, diff3Merge for three-way merges, ignore for gitignore parsing) and is built with Rollup to produce ES modules, CommonJS, and UMD bundles. The test suite runs in both Node and browsers (via Jest + Puppeteer) against pre-built Git fixture repositories, ensuring interoperability with canonical Git.

RATING: 9.1/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
usebruno/bruno β˜… 47369 2954 APPLICATION

Bruno is a comprehensive API client and testing tool built with Electron, React, and Redux. It provides a full-featured interface for creating, sending, and analyzing HTTP/WebSocket/gRPC/GraphQL requests, similar to Postman but with an open-source core. The application features a modular architecture with separate packages for the GUI (bruno-app), Electron main process (bruno-electron), CLI (bruno-cli), request handling (bruno-requests), file storage (bruno-filestore), and shared utilities (bruno-common). Key capabilities include environment and variable management with secure secret handling, pre-request and test scripting using a custom BruJS runtime, collection organization and workspaces, import/export from formats like Postman, OpenAPI, and Insomnia, mock server functionality, and code generation from requests. The UI uses styled-components for theming with light/dark/system themes, and incorporates advanced features like AI-assisted request building and OpenAPI synchronization. The codebase demonstrates strong engineering practices with extensive unit and end-to-end testing, TypeScript throughout, and a clean separation of concerns between the main and renderer processes via IPC. Notable reusable components include a secure variable interpolation system, cross-platform detection utilities, persistent state hooks, and a worker-offloaded file format parser.

RATING: 9.0/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
logseq/logseq β˜… 45069 2826 APPLICATION

Logseq is a privacy-first, open-source knowledge management platform built as a monorepo containing an Electron desktop app, Capacitor-based mobile apps (iOS/Android), a web app, and a Node.js db-sync server. The codebase is predominantly ClojureScript (CLJS) with React/Rum for the UI, DataScript for the in-memory graph database, and SQLite (via better-sqlite3 and sqlite-wasm) for persistence. It uses shadow-cljs for CLJS compilation, webpack for JS bundling, and Tailwind CSS for styling. A separate OCaml-based CLI (logseq-cli) built with Melange provides graph inspection, sync, and CRUD operations against the same db-worker-node backend. The architecture separates concerns into deps/ subprojects (db, outliner, graph-parser, db-sync, common, publishing, shui) that are compiled as separate shadow-cljs targets and shared across Electron, browser, mobile, and CLI runtimes. The system has two graph types: file-based graphs (Markdown/Org) and DB graphs (SQLite-backed with DataScript in-memory querying). DB graphs enable real-time collaboration (RTC) via a Cloudflare Worker-based sync server (deps/db-sync) using WebSockets and D1 SQLite. The db-worker-node is a long-lived Node.js process that manages SQLite connections and sync state, communicating with the UI via a thread-api IPC mechanism. The outliner module handles block tree operations with structural invariants, while the graph-parser handles Markdown/Org parsing via mldoc. The publishing module generates static HTML sites from graphs. Key architectural patterns include: missionary for reactive async flows, promesa for promise composition, malli for schema validation, datascript for Datalog queries, and a component-based UI with Rum/React. The codebase has extensive test coverage via cljs.test, Playwright E2E tests (clj-e2e), and Python-based CLI E2E tests (cli-e2e). The repository is actively maintained with recent commits, 43k+ stars, and active issue triage, though the large monorepo complexity and multi-language surface (CLJS, OCaml, Swift, Kotlin, Python, JS) create maintenance challenges.

RATING: 9.0/10 MAINT: active DRIFT: medium
β–Έ 8 reusable components found
git-bug/git-bug β˜… 10756 340 APPLICATION

git-bug is a distributed, offline-first bug tracker that stores issues as immutable operations in a Git DAG, enabling conflict-free merging and replication. It provides multiple interfaces: a CLI (Cobra), a terminal TUI (gocui), a modern web UI (React/TanStack Router/Apollo Client/Shiki), and a GraphQL API (gqlgen). The system supports bidirectional synchronization (bridges) with GitHub, GitLab, Jira, and Launchpad via import/export patterns. Entity data uses Lamport logical clocks for ordering and a generic DAG entity framework that can be reused for other entity types (e.g., identities, future pull requests). The web UI features a well-layered component architecture (ui/shared/feature) with colocated GraphQL fragments, Storybook stories, and snapshot tests, while the backend includes a caching layer (LRU, excerpt snapshots) and full-text search via Bleve.

RATING: 9.0/10 MAINT: active DRIFT: low
β–Έ 5 reusable components found
Nutlope/aicommits β˜… 9112 480 APPLICATION

aicommits is a CLI tool that automatically generates git commit messages using AI. It supports multiple AI providers (OpenAI, Together AI, Groq, xAI, Ollama, LM Studio, OpenRouter, and custom OpenAI-compatible endpoints) and offers both agentic generation (using tool-calling LLMs) and one-shot fallback for models that don't support tools. The tool reads staged git diffs, sends them to the configured LLM, and produces commit messages in various formats (plain, conventional commits, gitmoji, subject+body). It includes a git hook for seamless integration, a PR generation feature, config management, auto-update, and a VS Code extension. The architecture is a monolith CLI application built with TypeScript, using cleye for argument parsing, @clack/prompts for interactive prompts, and the Vercel AI SDK for LLM interactions. The codebase is well-structured with extensive tests, modern TypeScript practices, and careful handling of edge cases like large diffs, model fallbacks, and timeout management.

RATING: 9.0/10 MAINT: active DRIFT: low
β–Έ 3 reusable components found
$ loading more...
$ submit: