AI-powered CLI tool that converts natural language into Linux shell commands.
Project description
asksh
AI in your terminal: turn plain English into shell commands.
asksh is an AI-powered command-line tool that lets you describe what you want in plain English and returns the exact POSIX shell command to run.
You don't need to leave your terminal to get things done. Don't you remember the exact command to compress a directory with tar? Just asksh.
$ asksh compress a directory with tar.gz excluding the .cache directory
> tar -czf archive.tar.gz --exclude=<dir>.cache <dir>
Installation
Ollama server
asksh expects an Ollama server. Install Ollama, then pull a model (defaults match config.example.toml):
ollama pull qwen2.5-coder
Install the CLI
From PyPI (once published):
pip install asksh
# or: uv tool install asksh
From a clone (development):
git clone git@github.com:srgsol/asksh.git
cd asksh
uv sync
uv run asksh --help
Requires Python 3.10+.
Configuration (optional defaults)
Defaults can live in a TOML file so you do not repeat --model / --base-url on every run. CLI flags always override the file.
- Default path:
$XDG_CONFIG_HOME/asksh/config.toml, or~/.config/asksh/config.tomlifXDG_CONFIG_HOMEis unset. - Override path: set
ASKSH_CONFIGto another file.
See config.example.toml in this repository for supported keys (model, base_url, system, context, interactive_on_no_args).
Publishing to PyPI (maintainers)
This project uses flit as the build backend. With flit installed and PyPI credentials configured:
uv build
# inspect dist/ then:
flit publish
Use trusted publishing (e.g. GitHub Actions) for releases when possible.
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 asksh-0.2.0.tar.gz.
File metadata
- Download URL: asksh-0.2.0.tar.gz
- Upload date:
- Size: 9.2 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8abe2ffe9b23aa4d282d511c27592a7bc2656f3a0f4462703c68f428dafd5374
|
|
| MD5 |
cba2f3b3b1f9f7ae322b0194abe09e7b
|
|
| BLAKE2b-256 |
05966a68e4b96aec44ead02329478e8f6242891430d634279b6abc31893049fc
|
File details
Details for the file asksh-0.2.0-py3-none-any.whl.
File metadata
- Download URL: asksh-0.2.0-py3-none-any.whl
- Upload date:
- Size: 10.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.9.20 {"installer":{"name":"uv","version":"0.9.20","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"22.04","id":"jammy","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef69eeef0d91a92d3072aa71c966329a22ce2dce56b4882065a4ee4e29518dce
|
|
| MD5 |
81e23836e0ef07c505be23a4cc01989c
|
|
| BLAKE2b-256 |
37b3dff75f9ce162fde27bbb1382f260c5ee9ee2da98ee3ebfcb3a52aeb96562
|