Skip to main content

A secure, zero-bloat CLI companion that turns natural language and error logs into executable commands.

Project description

hey-cli 🤖

A zero-bloat, privacy-first, locally-hosted CLI agent powered by Ollama.

Python Version License Ollama Local

hey isn't just an LLM wrapper. It's a context-aware system agent designed to bridge the gap between human language and POSIX shell utilities natively on your host machine.

Ask it to parse your error logs, debug Docker, clear DNS caches, or execute complex file maneuvers—all while executing safely behind a dynamic zero-trust governance matrix.

🚀 Why hey-cli over Copilot/ChatGPT?

  1. Total Privacy: Your code and system logs never leave your physical CPU. All context gathering and reasoning is done locally via Ollama.
  2. True Cross-Platform Skills: Under the hood, hey-cli's "Skills Engine" detects if you're on macOS (BSD), Ubuntu (GNU), Windows (PowerShell), or Arch Linux, and actively refuses to generate incompatible flags like xargs -d on Mac.
  3. Agentic Execution: Ask "is docker running?" and hey will silently execute docker info in the background, read the stdout, analyze it, and return a plain English answer.
  4. Security Governance: Built-in AST-level parsing. Safe commands (like git status) auto-run. Destructive commands (rm -rf, -exec delete) require explicit typed confirmation.

📦 Installation

Prerequisite: You must have Python 3.9+ installed.

macOS & Linux

Paste this snippet into your terminal to auto-install pipx, ollama, pull the required language model, and build hey-cli natively.

curl -sL https://raw.githubusercontent.com/sinsniwal/hey-cli/main/install.sh | bash

Windows (PowerShell)

Paste this into your PowerShell terminal:

Invoke-WebRequest -Uri "https://raw.githubusercontent.com/sinsniwal/hey-cli/main/install.ps1" -OutFile "$env:TEMP\hey_install.ps1"; & "$env:TEMP\hey_install.ps1"

🛠️ Usage

Simply type hey followed by your objective.

Context-Gathering (Zero-Trust)

hey is my docker hub running?

hey will silently run systemctl is-active docker or docker info, see that it failed to connect to the socket, and explain the situation.

Execution (Governance Protected)

hey forcefully delete all .pyc files

hey parses the generated find . -name "*.pyc" -exec rm -f {} + command, detects rm and -exec triggers, and pauses execution until you explicitly type rm to authorize.

Debugging Logs

npm run build 2>&1 | hey what is causing this webpack error?

🛡️ Governance Matrix

Safety is a first-class citizen. hey-cli maintains a local governance database (~/.hey-rules.json):

  • Never List: Things like rm -rf / and mkfs are permanently blocked at the compiler level.
  • Explicit Confirm: High-risk ops (truncate, drop, rm) require typing exact keyword verification.
  • Y/N Confirm: Moderate risk ops requiring a quick y.
  • Allowed List: Safe diagnostics like cat, ls, grep auto-run natively.

🤝 Adding OS Skills

Is hey generating incorrect shell semantics for your niche operating system?

You can make it permanently smarter without touching code! Simply open hey_cli/skills/ and create a markdown file for your OS containing explicit English instructions (e.g. "Do not use apt on Alpine, use apk add"). The engine dynamically parses .md rulesites at runtime. Pull requests are heavily welcomed!

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

hey_cli_python-1.0.1.tar.gz (14.9 kB view details)

Uploaded Source

Built Distribution

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

hey_cli_python-1.0.1-py3-none-any.whl (14.5 kB view details)

Uploaded Python 3

File details

Details for the file hey_cli_python-1.0.1.tar.gz.

File metadata

  • Download URL: hey_cli_python-1.0.1.tar.gz
  • Upload date:
  • Size: 14.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for hey_cli_python-1.0.1.tar.gz
Algorithm Hash digest
SHA256 1f37745fc31573425f9559724037b383c97774f8200faf0971d121e8fa1d5f42
MD5 67e22051fc42861ad67f38c40d6318bc
BLAKE2b-256 d8a74232cdd475d15865f611b8337dfb94c4bc360c39b5ce430e31ef40943eaf

See more details on using hashes here.

File details

Details for the file hey_cli_python-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: hey_cli_python-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 14.5 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for hey_cli_python-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 cd0c30a8ae4529dad78948fdd7d03ca0774bfa0960c45c18ce34c5a75f485d88
MD5 7beeade350bb3889dbcaa6bc8d9a75f9
BLAKE2b-256 6ffcc0177b0d155a23c4be819580d37cfbe9b8296ff8ab8d422c5676a066736e

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