Skip to content

ncasatti/clingy-cli

Repository files navigation

clingy

Python License Code style: black

Context-aware CLI framework for building interactive command-line tools with fuzzy search menus and modular command architecture. Works like Git, Poetry, or Terraform—install once, use everywhere.


The Problem & The Solution

Building CLI tools often feels like choosing between two extremes: a rigid, complex framework that takes days to learn, or a messy collection of scripts that are impossible to maintain.

Clingy was born to bridge that gap. It solves the "CLI fatigue" by providing a framework where automation meets interaction.

Why Clingy?

  • Zero-Boilerplate Discovery: Just drop a file in your commands/ folder, and it's instantly available in your CLI. No manual registration, no complex routing.
  • Interactive by Default: Every command you write automatically gains a, fuzzy-searchable menu (powered by fzf). You build the logic once; the framework provides the interface.
  • Submenu Architecture: Use our intuitive node-based system to build complex, nested menus that feel like professional-grade software.
  • Context-Aware: Like Git, Clingy automatically detects your project root. Run it from any subdirectory, and it knows exactly where it is.

Documentation Hub

See the Interactive Documentation.

Navigate through the project documentation:

Framework Reference

Project Templates


Showcase

Clingy basic starter template

clingy-basic.mp4

Clingy konfigs template

clingy-konfig.mp4

Installation

# Using uv (recommended)
uv pip install clingy-cli

# Using pip
pip install clingy-cli

Required Dependency: fzf (fuzzy finder). Install via your package manager (brew, apt, pacman, etc.).


Quick Start

1. Initialize

mkdir my-tool && cd my-tool
clingy init

2. Run

clingy                # Interactive mode (fzf menu)
clingy greet --name User  # CLI mode

3. Update Framework

If a template update is available, sync your project files while preserving your configuration:

clingy --update-template

Contributing & Testing

# Install in editable mode
pip install -e .

# Run tests
pytest tests/

# Format code
black . --line-length 100
isort . --profile black

License

MIT Maintainer: @ncasatti

About

CLI framework for building interactive command-line tools with fuzzy search menus and modular command architecture.

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors