Skip to main content

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.toml if XDG_CONFIG_HOME is unset.
  • Override path: set ASKSH_CONFIG to 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

asksh-0.2.0.tar.gz (9.2 kB view details)

Uploaded Source

Built Distribution

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

asksh-0.2.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

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

Hashes for asksh-0.2.0.tar.gz
Algorithm Hash digest
SHA256 8abe2ffe9b23aa4d282d511c27592a7bc2656f3a0f4462703c68f428dafd5374
MD5 cba2f3b3b1f9f7ae322b0194abe09e7b
BLAKE2b-256 05966a68e4b96aec44ead02329478e8f6242891430d634279b6abc31893049fc

See more details on using hashes here.

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

Hashes for asksh-0.2.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ef69eeef0d91a92d3072aa71c966329a22ce2dce56b4882065a4ee4e29518dce
MD5 81e23836e0ef07c505be23a4cc01989c
BLAKE2b-256 37b3dff75f9ce162fde27bbb1382f260c5ee9ee2da98ee3ebfcb3a52aeb96562

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