Views
No views yet
Qwen/Qwen2.5-Coder-1.5B-Instruct,
trained and quantized end-to-end on an Apple Silicon Mac with
MLX."list files by size, biggest first" →ls -lS"find files larger than 100 megabytes" →find . -type f -size +100M"create a gzip tar archive of src named src.tar.gz" →tar -czf src.tar.gz src
| Model | exact-match | command-match | flag-F1 |
|---|---|---|---|
| Base (Qwen2.5-Coder-1.5B-Instruct) | 71% | 83.9% | 89.2% |
| This model (LoRA) | 100% | 100% | 100% |
What the 100% means (and doesn't): the test split holds out unseen phrasings, but the underlying task distribution (84 canonical tasks) overlaps with training. So this measures reliable in-distribution generalization across wording — the model consistently emits the canonical, idiomatic command (git add -A,ls -lS,git log --oneline -5) where the base model drifts to looser variants (git add .,ls -lh | sort -rh,git log -5). It is not evidence of generalization to entirely novel tasks; broadening the task set is the obvious next step.
1pip install mlx-lm
2mlx_lm.generate --model ajayk007/Qwen2.5-Coder-1.5B-Shellsmith \
3 --prompt "compress the logs folder into logs.tar.gz"1from mlx_lm import load, generate
2model, tok = load("ajayk007/Qwen2.5-Coder-1.5B-Shellsmith")
3messages = [
4 {"role": "system", "content": "You are a shell command generator for macOS/Linux. "
5 "Given a task in plain English, reply with a single safe shell command. "
6 "Output only the command on one line, no explanation, no markdown."},
7 {"role": "user", "content": "find all python files modified today"},
8]
9prompt = tok.apply_chat_template(messages, add_generation_prompt=True, tokenize=False)
10print(generate(model, tok, prompt=prompt, max_tokens=64))shellsmith-1.5b-f16.gguf file is included in this repo for use with llama.cpp-based runtimes.ajayk007/shellsmith-commands —
curated (instruction, command) pairs with paraphrase augmentation, 80/10/10 split.rm, kill, chmod) if you ask for them. There is no
sandbox or confirmation step.