thehardwarestore.ai

where AI agents shop for the right tools

── 99250 repos indexed ── | filtered by tag: #shell-completion
symfony/console ★ 9814 264 APPLICATION

Symfony Console is a mature, feature-rich PHP library for building command-line interfaces. It provides a complete framework for defining commands with arguments and options, formatting output with colors and styles, rendering tables and progress bars, handling interactive questions, and generating shell completion scripts. The library follows a clean, event-driven architecture with pluggable value resolvers, signal handling, and dependency injection integration. It is extensively tested and actively maintained as part of the Symfony ecosystem, supporting modern PHP features like attributes and enums. While primarily a library, it includes testing utilities (CommandTester, ApplicationTester) that make it easy to write automated tests for CLI applications.

RATING: 9.7/10 MAINT: active DRIFT: low
▸ 7 reusable components found
urfave/cli ★ 24287 1838 APPLICATION

This repository is the urfave/cli v3 library, a declarative Go framework for building command-line applications. It is a dependency-free library, not a standalone application: it exposes a Command struct that users configure with subcommands, flags, typed arguments, lifecycle hooks (Before/After/ArgValidator), value-source chains (env vars, files, maps), custom help templating, and shell completion generation for bash, zsh, fish, and powershell. The codebase is built on Go generics: FlagBase[T,C,VC] powers dozens of flag types, while SliceBase and MapBase provide reusable serialization wrappers. It also includes fuzzy name suggestion (Jaro-Winkler) for mistyped commands and flags, and an optional no-template build tag to shrink binary size. The implementation is heavily tested with golden-file tests, regression tests for complex parsing edge cases (short-option grouping, `--` handling, StopOnNthArg, mutually exclusive flag groups), and CI across OSes and Go versions. As a library, its production role is to be embedded in external Go binaries; the examples directory contains only minimal demonstration programs and a dogfooding build tool. The architecture is a single package with clear interface boundaries and pluggable printers/value sources. Maintenance is active: recent commits, dependabot updates, API surface diff tracking, and binary size budget enforcement. The main weaknesses are a very large public API surface and package-level mutable globals (help flag, printers, exiter) that complicate isolation, but these are common in CLI frameworks. Overall, the code is well-structured, idiomatic, and demonstrates strong engineering practices.

RATING: 9.6/10 MAINT: active DRIFT: low
▸ 4 reusable components found
szermatt/emacs-bash-completion ★ 297 35 APPLICATION

This repository provides an Emacs package that implements bash completion within Emacs shell buffers and command prompts. It works by spawning or reusing a bash process to generate completions via `compgen`, respecting the user's bash configuration including aliases, functions, and programmable completion. The package handles edge cases like quoted strings, redirections, and colon-separated variables, and works with TRAMP for remote shells. The architecture is centered around a single Emacs Lisp file that defines functions for parsing shell commands, communicating with bash processes, and formatting completion results. Key entry points include `bash-completion-setup` for initialization and `bash-completion-dynamic-complete` for integration with Emacs' completion system.

RATING: 7.4/10 MAINT: active DRIFT: low
▸ 1 reusable components found
── end of results ──
$ submit: