A privacy-first terminal assistant that respects your data.
howto is a lightweight CLI tool designed to generate terminal commands using your preferred LLM. Unlike other tools that may send your entire shell context to cloud servers, howto is designed to be minimal and private, sending only what you explicitly ask for.
- Privacy-Centric › Your terminal environment stays local. Only your specific queries are sent to the LLM.
- Backend Agnostic › Works with Google's Gemini CLI, OpenAI-compatible APIs, or local models via LM Studio/Ollama.
- Interactive Editing › Refine generated commands with a feedback loop before execution.
- Safe Execution › Inspect privacy details and generated commands before running them.
To get started, clone the repository and install using pipx for an isolated environment.
- Clone the repository
git clone https://github.com/M7Saad/howto cd howto
Note:
pipxis recommended for CLI tools because it installs them in an isolated environment, preventing dependency conflicts with your system Python while keeping the command globally accessible.
- Install with pipx
pipx install .
howto supports multiple backends. Choose the one that fits your needs.
Leverage Google's Gemini models via their CLI tool. This is a great option for free, high-quality generation.
- Ensure you have the
geminiCLI installed and authenticated. - Run configuration:
howto --configure
- Select Gemini CLI.
Connect to any OpenAI-compatible endpoint. This is perfect for using local models with LM Studio, Ollama, or connecting to OpenAI.
- Run configuration:
howto --configure
- Select Custom.
- Enter your Base URL and API Key:
- OpenAI:
https://api.openai.com/v1(requires key) - LM Studio:
http://localhost:1234/v1(key usually ignored)
- OpenAI:
Simply type howto followed by your request.
howto list all docker containersIf the generated command isn't quite right, you can choose to Edit it directly in the tool.
- The tool presents a command.
- Select Edit.
- Provide feedback (e.g., "show hidden files too").
- The tool regenerates the command based on your valid feedback.
[ Note ]
You may need sudo privileges for this command.
$ sudo ls -la
[ Execute ] [ Edit ] [ Cancel ]
Quickly navigate the interactive menu using these keys:
- Navigation:
Left/Rightarrows - Select:
Enter - Shortcuts:
y› Executee› Editn/c› Cancel