Skip to main content

Manages useful commands in one place using fzf

Project description

Publish Python Package to PyPI

Script-Command-Manager (SCM)

🚀 SCM Tool Guide

A streamlined command manager for your terminal workflows.

Overview

SCM is a high-performance CLI tool designed to catalog, manage, and execute complex shell commands through an intuitive fuzzy-finding interface. Built with Python and powered by fzf, it eliminates the need to remember arcane syntax or sift through endless history files.

Features

  • Fuzzy Search Navigation: Instant filtering of categories and commands using fzf.
  • Hierarchical Management: Organize commands into custom categories (e.g., Work, Dev, Personal).
  • In-App Administration: Add or delete commands and entire categories directly from the interface.
  • Shell History Integration: Commands executed via SCM can be injected into your shell history for easy access later.
  • Mac-Optimized Core: Robust file I/O designed to handle macOS-specific shell environments and sed/grep variations.

Installation

Prerequisites

  1. Python: 3.6 or higher.
  2. fzf: Must be installed on your system.
    brew install fzf
    

Local Setup

  1. Clone the repository:
    git clone [https://github.com/Sahaj001/Script-Manager.git](https://github.com/Sahaj001/Script-Manager.git)
    cd Script-Manager
    
  2. Install in editable mode:
    pip install -e .
    

Configuration

To enable command execution and history injection, add the following wrapper to your ~/.zshrc or ~/.bashrc:

### SCM START ###
rscm() {
    local result=$(scm)
    if [[ -n "$result" ]]; then
        eval " $result"
    fi
}
alias s='rscm'
### SCM END ###

🚀 Usage

Note Simply type s or run_scm in your terminal to launch the interactive menu.


🛠 Features & Navigation

  • Select a Category: Use the arrow keys to navigate or start typing to filter through your existing groups.
  • Execute: Choose a specific command and hit Enter to run it directly in your current shell.
  • Management:
    • [+ Add New Category] — Create a new group for your commands.
    • [+ Add Command to...] — Expand your library within a specific category.
    • [-] Delete — Prune old or unused commands and groups.

🤝 Contributing

Contributions make the terminal better for everyone!

  1. Fork the repository.
  2. Submit a pull request with your improvements.
  3. For major changes: Please open an issue first to discuss your ideas so we can stay aligned on the project goals.

License Apache License 2.0

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

command_manager_util-1.1.0.tar.gz (8.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

command_manager_util-1.1.0-py3-none-any.whl (8.9 kB view details)

Uploaded Python 3

File details

Details for the file command_manager_util-1.1.0.tar.gz.

File metadata

  • Download URL: command_manager_util-1.1.0.tar.gz
  • Upload date:
  • Size: 8.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.25

File hashes

Hashes for command_manager_util-1.1.0.tar.gz
Algorithm Hash digest
SHA256 67abe2c6939622ee6c053de7354a6d17c8e9a826e78704a7057b2bd4de630c3d
MD5 a7e4d714c3b0be2563871e11d8023def
BLAKE2b-256 5c73c8c526a950533f417910ea1463b31c2a588b180f9bebd92605378bb28cc5

See more details on using hashes here.

File details

Details for the file command_manager_util-1.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for command_manager_util-1.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 aea0c95b0ff465a18fc32332aab648b7cd17b72094b27f8e9c8f5d6c9f2bc8c9
MD5 2444759c6b171f8fe76908f72dfb5a19
BLAKE2b-256 cc9ae7d0185c720457d17cf6a6d92f096e7b89492e404b8160f2269c6f308672

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page