halp
halp turns a natural-language task into a shell command grounded in the selected tool's help or man page. It talks to an OpenAI-compatible LLM endpoint and does not execute suggestions unless -a is enabled and the user confirms.
Install
Install the published package with:
python -m pip install halp-cli
To install the current checkout instead:
python -m pip install .
For local development, use python -m pip install -e .. The install provides the halp command.
Usage
halp [OPTIONS] <tool> "<prompt>"
Example for a local Gemma server:
halp -l gemma4:e4b -ip 127.0.0.1:8001 nmap "Scan the top 10 TCP ports on 8.8.8.8"
By default, halp prints the suggested command and exits. It checks that the requested tool is installed, gathers -h and --help output, then tries no-argument usage and a man page. Help collection is time-limited and capped; the captured context is trimmed to fit -c with room reserved for the prompt and model response.
Options
| Option | Purpose |
|---|---|
-l, --llm MODEL |
Model/backend name passed as the request's model (default gemma4:e4b) |
-ip, --server HOST:PORT |
Server address or base URL (default 127.0.0.1:8001; can also use HALP_SERVER) |
-api, --api-key KEY |
Optional Bearer token (can also use HALP_API_KEY) |
-c, --context-size TOKENS |
Context budget (default 4000) |
-extra-args ARGS |
Extra request fields as JSON or comma-separated key=value pairs |
--request-timeout SECONDS |
Per-request HTTP timeout (default 120) |
-p, --persist |
Open the interactive terminal workbench |
-a, --allow-execution |
Enable command execution actions; each run always requires y/n confirmation |
--no-color |
Disable terminal colors |
-v, --verbose |
Print the exact final LLM prompt to stderr |
--version |
Print the halp version |
Extra parameter examples:
halp -extra-args 'temperature=0.2,top_p=0.9' nmap "Scan localhost"
halp -extra-args '{"temperature":0.2,"top_p":0.9}' nmap "Scan localhost"
halp manages the model, messages, prompt, max_tokens, and stream fields, so extra arguments cannot override them. The default endpoint probe tries standard /v1/chat/completions first, then common chat and completions route variants.
Interactive workbench
Start with -p. Enter a refinement directly or use an action:
/refine TEXT— refine the current command/task TEXT— start a new task/retry— request another suggestion for the same task/historyand/use N— review suggestions and select a prior candidate/copy— copy the current command usingwl-copy,xclip,xsel, orpbcopywhen available/run— run the current candidate (available only with-a, always asks for confirmation)/clear,/help,/quit
When -a is active, halp asks whether to execute every newly generated command. In the workbench, /run can also execute the current candidate after another confirmation. Output from accepted commands streams directly to the terminal.
Metadata
Release files for halp-cli 0.2.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | Provenance | Actions |
|---|---|---|---|---|
| halp_cli-0.2.0.tar.gz | 12.3 kB | Without provenance | Details for halp_cli-0.2.0.tar.gz |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Actions Reset |
|---|---|---|---|---|
| halp_cli-0.2.0-py3-none-any.whl | Python 3 | none | any | Details for halp_cli-0.2.0-py3-none-any.whl |
Total release size: 24.0 kB
Release files / halp_cli-0.2.0.tar.gz
| Download URL | halp_cli-0.2.0.tar.gz |
|---|---|
| Size | 12.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1508944f80d0d6752d1fae07dc533096832a23c9b8718f17a9208bd46e02e194
|
|
BLAKE2b-256 checksum How to use checksums |
652e3786fae33f79b549dfcd582d9145f83b907221c782804da7977e70e60aa7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Release files / halp_cli-0.2.0-py3-none-any.whl
| Download URL | halp_cli-0.2.0-py3-none-any.whl |
|---|---|
| Size | 11.7 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
649158c1d8213f7e97f74d270e4382f2b9cb2e51f38045cfe846bdfa5c765948
|
|
BLAKE2b-256 checksum How to use checksums |
cb00a0d2cdb5ba5cda8a3eb1edb26b7106648afb089e4952aa81db679b8ac4e9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/7.0.0 CPython/3.11.9
|
Security for halp-cli 0.2.0
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
No provenance found
None of the files in this release were uploaded with provenance metadata.
A note on package security
PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.
To learn more about protecting yourself from malicious actors, visit our package security documentation.