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.0.0.tar.gz (8.3 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.0.0-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: command_manager_util-1.0.0.tar.gz
  • Upload date:
  • Size: 8.3 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.0.0.tar.gz
Algorithm Hash digest
SHA256 8cfc00c0f12e730953b46603093c4a587d30bf1e1b936fb00fb06d16231712f8
MD5 e0f85d4ce82ccd7633b7c163ecd9c69b
BLAKE2b-256 1b2cf90ccea06267364b3891f31b9721c17f8a0a95617fc6f1425356e484a99c

See more details on using hashes here.

File details

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

File metadata

File hashes

Hashes for command_manager_util-1.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 a27e1014d40cc69af63e856dec9b40d9242ce679430a65523d36d349fa2b5a54
MD5 16b673a3b711bf88a5e5ec2bc4016c3c
BLAKE2b-256 0de398b5b9a9d4b00f6a93200e880a31d2f9824a632f6f557cef7c3a918e36c1

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