Metadata-Version: 2.4
Name: astexlabs-ask
Version: 0.2.1
Summary: Lookup CLI commands easily
Project-URL: Repository, https://github.com/astexlabs/ask
Requires-Python: >=3.9
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: openai>=1.72.0
Requires-Dist: pydantic>=2.10.6
Requires-Dist: pyperclip>=1.9.0
Requires-Dist: python-dotenv>=1.0.1
Requires-Dist: questionary>=2.1.0
Requires-Dist: rich>=13.9.4
Provides-Extra: dev
Requires-Dist: ruff>=0.11.2; extra == "dev"
Requires-Dist: isort>=5.13.2; extra == "dev"
Requires-Dist: pytest>=7.0.0; extra == "dev"
Provides-Extra: azure
Requires-Dist: azure-identity>=1.20.0; extra == "azure"
Dynamic: license-file

# Ask

[![PyPI](https://badge.fury.io/py/astexlabs-ask.svg)](https://pypi.org/project/astexlabs-ask/) [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)

Terminal commands from natural language.

---

## Demo

![Demo](./.github/demo.gif)

---

## Install

```bash
pip install astexlabs-ask
```

Configure (optional): `ask --setup`. Works offline in **local mode** with no API key.

---

## Use cases

| Use case | Example |
|----------|---------|
| Find files | `ask 'find .py files modified in the last 24 hours'` |
| Search in files | `ask 'search for TODO in js files'` |
| Processes | `ask 'show running python processes'` |
| Disk & system | `ask 'show disk usage'` / `ask 'show memory usage'` |
| Git | `ask 'show uncommitted changes'` |
| Network | `ask 'check if google.com is reachable'` |

Interactive: run `ask` with no arguments.

---

## Safety

Commands are suggested by an LLM or a local parser; dangerous ones are flagged. Always review before running.

| |
|:--:|
| ![Dangerous command warning](./.github/dangerous_example.png) |
| ![Dangerous command warning](./.github/dangerous_example_2.png) |

---

## Providers

OpenAI · Google Gemini · [Ollama](https://ollama.com/) (local) · Azure OpenAI — set via `ask --config`.

---

[Contributing](CONTRIBUTING.md) · [MIT License](LICENSE)
