JHA - Just Hack Away. LLM-powered CLI command discovery without ever leaving your shell.
Project description
JHA - Just Hack Away. LLM-powered CLI command discovery without ever leaving your shell.
If you prefer working in the terminal but sometimes fall short on remembering commands, this CLI tool can help. It’s also useful for anyone still getting comfortable with the command line.
It uses OpenAI models to interpret natural-language queries and suggest relevant shell commands.
Features
- Query for suitable commands using natural language
- Support for multiple shells (bash, zsh, cmd, PowerShell)
- Get explanations for commands
- Command history tracking for quick re-execution and recall
- Option to jump to the last command from history
- Simple config commands to set OPENAI_KEY, MODEL, and SHELL
- Persistent configuration storage
- Searched command stored in clipboard for quick execution
Installation
Prerequisites
- Python 3.8 or higher
- pip package manager
Install from PyPI
pip install jha-cli
Alternative Installation (Windows)
pip install pipx
python -m pipx ensurepath
# Restart command prompt
pipx install jha-cli
Usage
Check Installation
jha
jha version
jha --help
Initial Setup
# Set your OpenAI API key
jha config set OPENAI_KEY=sk-your-api-key-here
# Set preferred model (optional)
jha config set MODEL=gpt-4o-mini
# Set your shell (optional)
jha config set SHELL=bash
Basic Commands
# Generate a command from natural language
jha "Move a folder with all its children to another location"
# Explain what a command does
jha explain "mv source_folder/ destination_folder/"
# Get explanation for the last generated command
jhax
# View command history
jha history
# Show the last query and command
jha last
# Check version
jha version
Configuration
The configuration file is stored at ~/.jha/config.json and all historical command stored at ~/.jha/history.json
Development Setup
-
Clone/Download the project: https://github.com/jhaspider/jha-cli
-
Create virtual environment:
python -m venv venv
source venv/bin/activate # On Windows: venv\Scripts\activate
- Install dependencies:
pip install -r requirements.txt
- Install as CLI command:
pip install -e .
Architecture
The project uses the following key dependencies:
- Typer: CLI framework for command parsing and routing
- OpenAI Python SDK: Integration with OpenAI's API
- Click & Rich: Terminal formatting and enhanced output
- Pydantic: Data validation and settings management
Project Structure
jha-cli/
├── src/
│ ├── __init__.py
│ ├── __main__.py # Entry point
│ ├── cli.py # Main CLI commands
│ ├── config.py # Configuration management
│ ├── llm.py # LLM integration
│ ├── history.py # Command history tracking
│ └── utils.py # Utility functions
├── pyproject.toml # Project configuration
├── requirements.txt # Dependencies
└── README.md
Contributing
Contributions are welcome! Please feel free to submit issues and pull requests on the GitHub repository.
License
MIT
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file jha_cli-1.0.7.tar.gz.
File metadata
- Download URL: jha_cli-1.0.7.tar.gz
- Upload date:
- Size: 9.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c92b39ad1a463130810802b0f1099bccd7fe606ea703760c6dbaec3d86cb5f59
|
|
| MD5 |
b9510eaf1464bae2ff3ace2e01aac7e7
|
|
| BLAKE2b-256 |
a1e8bf17d91f26be581580504c7d62c886360aff7b085938f03ca554f7cfc820
|
File details
Details for the file jha_cli-1.0.7-py3-none-any.whl.
File metadata
- Download URL: jha_cli-1.0.7-py3-none-any.whl
- Upload date:
- Size: 10.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f443e58b77edb47e3c456013d553ef2fb0967e672079feeede238c171d08a4c
|
|
| MD5 |
341661ca2b42f4eed6c32283a31f5cbc
|
|
| BLAKE2b-256 |
06e1b45983299c0cf21b137f174e6cd5e9c30c72188a6fd5fc25f0a9ac689f28
|