Thetaterm
Supercharge your terminal with AI: describe what you want, get a shell command that is correct for your system, confirm, run.
Why
Small local models know what find or sed does, but not which options your
copy has. GNU, BSD and BusyBox tools differ, so a command that's right on Linux
can fail on a Mac. Thetaterm detects your OS and whether your tools are GNU,
BSD or BusyBox, and gives the model the installed tool's man page. Every
command is checked before you're asked to run it. It works with any model
served over an OpenAI-compatible API, including ones on your own machine.
Requirements
- macOS or Linux
- uv. It installs Python 3.13 or later for you if needed.
- A model served over an OpenAI-compatible API. The default is
gemma4:e4bon Ollama:ollama pull gemma4:e4b
Install
uv tool install thetaterm
Quickstart
tterm -q "list files in this directory, largest first"
$ ls -lS .
Run it? [Y/n]:
New to it? Follow the tutorial.
Usage
tterm # interactive
tterm -q "find files modified in the last 2 days"
tterm -m qwen2.5-coder:3b -q "replace foo with bar in notes.txt in place" # another model
tterm -y -q "show git status" # run without confirming
tterm --think -q "show the date 30 days from now" # model reasons first, about 2x slower
Warning:
-yruns whatever the model writes, unreviewed. In interactive mode that applies to every line you type. Commands pass a syntax check, not a safety check.
Commands that look like they reach outside the current directory (absolute,
~ or .. paths, variables such as $HOME, cd home or back, or sudo) are shown in red and always ask first,
defaulting to no, even with -y. This is a pattern match, not a sandbox. See
the safety model.
Settings (THETATERM_MODEL, THETATERM_BASE_URL, THETATERM_API_KEY) are
read from the environment or ~/.config/thetaterm/.env, never from a .env
in the current directory. See the
command-line reference and
how to use another model server.
Documentation
- Documentation index: tutorial, how-to guides, reference, explanation and design decisions
- Contributing: development setup, needs just
- Security policy
- Changelog
License
Metadata
Release files for thetaterm 0.1.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| thetaterm-0.1.1.tar.gz | 13.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| thetaterm-0.1.1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 28.5 kB
Release files / thetaterm-0.1.1.tar.gz
| Download URL | thetaterm-0.1.1.tar.gz |
|---|---|
| Size | 13.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5ac9c08de2aae7210930623220bee76d82bfbf33045572c29e685acf2a64f4e1
|
|
BLAKE2b-256 checksum How to use checksums |
8612647afdcf3971ad8a288235c4a6421b0a40278fae0c3c5124d06756a2f31d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / thetaterm-0.1.1-py3-none-any.whl
| Download URL | thetaterm-0.1.1-py3-none-any.whl |
|---|---|
| Size | 15.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
589406a9782d5199a9bcdea745ce456d13c18171a75131d4a9d0eadddfa52891
|
|
BLAKE2b-256 checksum How to use checksums |
248b8b5c3e7161e6802d631f7c6f4887869164fb9891a4b6f6abdb5aeb342ad3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.12.21 {"installer":{"name":"uv","version":"0.12.21","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|