Skip to main content

whatisit

Natural language to shell command. Fully local, no API key, no network call.

$ whatisit show which processes are using the most memory
ps aux --sort=-%mem | head -n 11

$ whatisit find files bigger than 100MB in this folder
find . -size +100M -exec ls -lh {} \;

$ whatisit delete everything in the root directory
  !! DANGER  recursive force-delete of a critical path
rm -rf /

Install

# not on PyPI yet -- install from source
git clone https://github.com/ThorOdinson246/nl2sh
cd nl2sh && pip install ./whatisit_pkg

# the model (941 MB)
hf download ThorOdinson246/nl2sh-1.5b-Q4_K_M nl2sh-1.5b-Q4_K_M.gguf --local-dir .

# a llama.cpp runtime: prebuilt binaries from
# https://github.com/ggml-org/llama.cpp/releases

whatisit setup --model ./nl2sh-1.5b-Q4_K_M.gguf --bin-dir /path/to/llama.cpp/bin
whatisit doctor

setup does not fetch anything itself yet; point it at the files above. whatisit doctor reports exactly what is missing.

Use

whatisit <your request>              # unquoted is fine
whatisit -n 3 compress this folder   # show 3 alternatives
whatisit -e count lines in every py file   # run it, after confirming
eval "$(whatisit -q show disk usage)"      # bare output, for scripting
command what it does
whatisit setup --model <gguf> register a local model file
whatisit doctor check the install and report what's missing
whatisit stop unload the model from memory
whatisit config --set threads=3 change settings

Security notes

Never run whatisit through sudo. Three environment variables (WHATISIT_LLAMA_SERVER, WHATISIT_LLAMA_CLI, WHATISIT_RUNTIME_LIB) point at the binaries and shared libraries it executes. That is harmless when it is your own environment running as you, but across a privilege boundary -- sudo -E, a cron or setuid wrapper -- they become a way to run an arbitrary binary as root.

The model server listens on a UNIX socket inside a 0700 directory, not a TCP port, and requires a per-run bearer token. On a shared machine loopback is reachable by every other user, so a TCP port would let a co-tenant use your model or -- worse -- claim the port first and answer in place of the real server with a command of their choosing. Config, query log, pid, token and server log are all 0600.

The safety check is a seatbelt, not a sandbox. It is a denylist over a Turing-complete language: eval, base64 indirection and aliasing defeat any static check. The real protection is that nothing runs unless you ask it to.

Design notes

It never runs anything on its own. The default prints the command and stops. -e runs it, but only after an interactive confirmation, and it refuses on anything flagged DANGER — you have to copy those yourself. Compound commands are split on ;, &&, || and | and every segment is checked independently, because a plausible first clause followed by a destructive one is a real observed failure mode.

The model stays resident. The first query starts a small local server that holds the model in RAM; later queries reuse it. Reloading a ~1 GB model per invocation costs several seconds and is most of what makes local tools feel slow. whatisit stop unloads it.

Threads default to half your cores, capped at 4. Decoding is limited by memory bandwidth, not compute — measured at ~31 GB/s saturated by both a 1.5B and a 4B model — so throughput stops improving well before your core count, and spending every core only spins the fans.

Zero Python dependencies. pip install whatisit cannot disturb anything else in your environment.

Model

A 1.5B-parameter model fine-tuned for this one job and quantised to Q4_K_M (941 MB): ThorOdinson246/nl2sh-1.5b-Q4_K_M.

On InterCode-ALFA — 300 tasks scored by executing each command in a container and comparing filesystem state, file contents and stdout against a reference — it scores 0.620, against 0.540 for the untuned base it was fine-tuned from (+0.080, p = 0.004). That puts it level with an untuned Qwen2.5-Coder-7B at 0.613: a difference of 0.007, p = 0.91, statistically indistinguishable at roughly a fifth the size.

It is not as good as a frontier model — GPT-4o is about 11 points ahead on the same benchmark — and it is weakest on multi-stage pipelines. It is meant for the one-liner you'd otherwise go and look up.

Licence

Apache-2.0, as is the Qwen2.5-Coder base model it derives from.

Release files for whatisit 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for whatisit 0.1.0
File Size Uploaded
whatisit-0.1.0.tar.gz 65.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for whatisit 0.1.0
File Interpreter ABI Platform
whatisit-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 115.5 kB

Release files / whatisit-0.1.0.tar.gz

Download URL whatisit-0.1.0.tar.gz
Size 65.1 kB
Tags Source
SHA-256 checksum
How to use checksums
2a96741875a709362b9ef86327763c7ab04f2e7f61c4b7fe22266f3ec9cc22a0
BLAKE2b-256 checksum
How to use checksums
5d56b1cced0cdb8e4492ca3701ad4080038c305b5b1520c6136ef95da28a8f36
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release files / whatisit-0.1.0-py3-none-any.whl

Download URL whatisit-0.1.0-py3-none-any.whl
Size 50.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
34c1d4a1c333bc57e872d68071991480c1c5953bc02b1aa1858a07e187474697
BLAKE2b-256 checksum
How to use checksums
f1c5c124a0e6d9a8e7bf78d5099fb350074c169aa7aebf7e8848c95741633e2a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

0.5.0

2 release files

0.4.0

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page