| Crates.io | awful_aj |
| lib.rs | awful_aj |
| version | 0.3.6 |
| created_at | 2023-10-12 23:38:48.645569+00 |
| updated_at | 2025-08-30 07:30:20.834588+00 |
| description | A CLI for interacting with OpenAI compatible APIs |
| homepage | https://github.com/graves/awful_aj |
| repository | https://github.com/graves/awful_aj.git |
| max_upload_size | |
| id | 1001760 |
| size | 497,969 |
Awful Jade (aka aj) is your command-line sidekick for working with Large Language Models (LLMs).
Think of it as an LLM Swiss Army knife with the best intentions š.
Ask questions, run interactive sessions, sanitize messy OCR book dumps, synthesize exam questionsā¦
all without leaving your terminal.
Itās built in Rust for speed, safety, and peace of mind. š¦

aj ask "question" and get answers powered by your configured model.all-mini-lm-l12-v2 model isnāt around, aj will politely fetch and unzip it into your config dir.From crates.io:
cargo install awful_aj
This gives you the aj binary.
Requirements:
The BERT embeddings model (all-mini-lm-l12-v2) will be downloaded automatically into your platformās config directory:
~/Library/Application Support/com.awful-sec.aj/~/.config/aj/C:\Users\YOU\AppData\Roaming\awful-sec\aj/brew install miniconda
conda create -n aj python=3.11
conda activate aj
pip install torch==2.4.0 --index-url https://download.pytorch.org/whl/cp
export LIBTORCH_USE_PYTORCH=1
export LIBTORCH='/opt/homebrew/Caskroom/miniconda/base/pkgs/pytorch-2.4.0-py3.11_0/lib/python3.11/site-packages/torch' # Or wherever Conda installed libtorch on your OS
export DYLD_LIBRARY_PATH="$LIBTORCH/lib"
conda activate aj
Create default configs and templates:
aj init
This will generate:
config.yaml with sensible defaultstemplates/default.yaml and templates/simple_question.yamlaj.db) for sessionsaj ask "Is Bibi really from Philly?"
Youāll get a colorful, model-dependent answer.
Talk with the AI like itās your therapist, mentor, or rubber duck:
aj interactive
Supports memory via the vector store, so it wonāt immediately forget your name. (Unlike your barista.)
Edit your config at:
~/.config/aj/config.yaml # Linux
~/Library/Application Support/com.awful-sec.aj/config.yaml # macOS
Example:
api_base: "http://localhost:1234/v1"
api_key: "CHANGEME"
model: "jade_qwen3_4b_mlx"
context_max_tokens: 8192
assistant_minimum_context_tokens: 2048
stop_words:
- "<|im_end|>\\n<|im_start|>"
- "<|im_start|>\n"
session_db_url: "/Users/you/Library/Application Support/com.awful-sec.aj/aj.db"
Templates are YAML files in your config directory. Hereās a baby template:
system_prompt: "You are Awful Jade, a helpful AI assistant programmed by Awful Security."
messages: []
Add more, swap them in with --template
Clone, hack, repeat:
git clone https://github.com/graves/awful_aj.git
cd awful_aj
cargo build
Run tests:
cargo test
PRs welcome! Bugs, docs, new templates, vector hacksābring it on. But remember: with great power comes great YAML.
--
MIT. Do whatever you want, just donāt blame us when your AI remembers your browser history.
š” Awful Jade: bad name, good brain.