Skip to content

Releases

dale 1.1.0

Choose a tag to compare

@manuelgscom manuelgscom released this 29 Oct 19:04

dale 1.1.0

Natural language to Linux commands. 100% offline. One native binary, now for CPU and GPU.

dale 1.1.0 runs on the GPU through Vulkan (NVIDIA, AMD or Intel), with larger and more accurate models, and keeps the same single binary: on a machine without a GPU it works exactly as 1.0.0.

What's new

  • GPU support with Vulkan, in the same binary. The binary does not link the Vulkan library: it starts on any machine and opens the loader only when it is going to use the GPU.

  • First-run setup. dale looks for a dedicated GPU and picks a model by its free VRAM:

    first run ─► dedicated GPU, free VRAM?
                   ├─ 8 GiB or more ─► choose: 1) dale-4b (Enter, faster)  2) dale-9b (more accurate)  n) CPU
                   ├─ 4 GiB or more ─► offer dale-4b                [Y/n]
                   └─ less, or no GPU ─► dale-0.8b on the CPU, as in 1.0.0
    

    It always asks before downloading, saves the choice and warns that the first answers on the GPU take a few seconds longer (once, while the driver compiles the shaders, and on the first request after boot).

  • Safe fallback. If the GPU fails to load the model or to answer, dale answers that request on the CPU and, with device = auto, uses the CPU from then on. If the GPU disappears, it uses the CPU that time.

  • Two new models, the same contract as dale-0.8b:

    Model Download VRAM in use Test v2 Warm request (reference desktop)
    dale-0.8b, CPU 529 MB — 79.4 % (374/471) 1.7 s on a mid-range 2020 laptop CPU (0.9 s on the reference desktop)
    dale-4b, GPU 2.7 GB ≈ 3.2 GiB 87.0 % (410/471) 1.2 s
    dale-9b, GPU 5.6 GB ≈ 5.4 GiB 89.2 % (420/471) 1.7 s

    Test set: manuelgscom/dale-bash-test-v2 (471 cases), all measured with llama-server, like the comparison on the model cards; through dale with Vulkan, dale-4b and dale-9b score the same within two cases. GPU times on a desktop with a 16 GB GPU; they depend on the machine.

  • dale --setup detects the GPU and asks again.

  • device = auto|cpu|gpu in ~/.config/dale/config: cpu keeps every request on the CPU; gpu forces the GPU (integrated GPUs included, which auto never picks).

  • --json reports device and gpu; --version shows the saved choice.

  • No change on the CPU: same model, same answers and the same speed as 1.0.0.

Install or update

curl -LO https://github.com/manuelgscom/dale/releases/download/v1.1.0/dale-linux-x86_64
curl -LO https://github.com/manuelgscom/dale/releases/download/v1.1.0/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS     # must print: dale-linux-x86_64: OK
chmod +x dale-linux-x86_64 && mkdir -p ~/.local/bin && mv dale-linux-x86_64 ~/.local/bin/dale
dale "list the files bigger than 200 MB"

From 1.0.0: replace the binary as above. The dale-0.8b model you already downloaded is kept; on the next run, dale looks for a GPU and, if it finds a suitable one, asks whether to download a GPU model.

If you get dale: command not found, open a new terminal, or add ~/.local/bin to your PATH. The README has step-by-step instructions, including how to build from source.

Requirements

  • Linux on x86_64 with AVX2.
  • glibc 2.29 or later.
  • curl or wget for the first model download.
  • On Windows, use it through WSL 2.
  • For the GPU (optional): a dedicated GPU with at least 4 GiB of free VRAM, its driver and the Vulkan loader libvulkan.so.1 (libvulkan1 on Debian and Ubuntu, vulkan-loader on Fedora, vulkan-icd-loader on Arch). Almost every desktop already has it. If it is missing, dale uses the CPU and tells you what to install.

The models

All three are fine-tunes of Qwen3.5 (0.8B, 4B and 9B), quantized to Q4_K_M and published on Hugging Face in the dale collection, together with dale-2b for use with llama.cpp directly.

  • dale asks before downloading a model, verifies its SHA-256 and stores it in ~/.local/share/dale/models/ (or $XDG_DATA_HOME/dale/models/).
  • The download URLs are pinned to a fixed revision and compiled into the binary, with the sizes and SHA-256 of the files:
    • dale-0.8b-1.0.0-Q4_K_M.gguf: 8738d2535680cf7b8227001013a0ba6e6b2a4c8e8f3d149fd181c17cb96e2d3d
    • dale-4b-1.0.0-Q4_K_M.gguf: a1a5d5185d34dea237616d7a498aa5d9c854316d0af3c87094b73678944e862b
    • dale-9b-1.0.0-Q4_K_M.gguf: 475e4f8ecf69dcc2a1a14f21a9c6756508748e452a3358945c1f7b1616bd9ba5
  • After the download, dale makes no network requests at all.
  • To use a local GGUF file instead: dale --model PATH <request…>.

The model cards describe the evaluation, the prompt contract and how to use each model with llama-server.

Release assets

File Description
dale-linux-x86_64 The binary, for CPU and GPU (about 51 MB, with the Vulkan shaders inside). Static C++ runtime, depends only on glibc. SHA-256 aa497c2e70c5ea20e29bf74b8fbad0935fc4d2399d5bcc8ddd286a69be801314
SHA256SUMS Checksums of the binary and of dale-0.8b
THIRD_PARTY_NOTICES Licenses of the code built into the binary

Limitations

  • bash on Linux only. No zsh, fish or macOS for now.
  • The models can be wrong, in about 1 of 5 cases on the test set with dale-0.8b and 1 of 10 with dale-9b, and a wrong command can look plausible. Always read the command before running it.
  • dale is not a security tool. Its safety comes from the deterministic verifier and the confirmations, not from the model.
  • The GPU is used only through Vulkan, one GPU at a time. Each request is a new process that loads the model into VRAM, which is most of the time on the GPU.

License

  • Code: MIT.
  • Models: Apache-2.0, the same license as their base models.
  • llama.cpp/ggml (with its Vulkan backend), nlohmann/json, the Khronos Vulkan and SPIR-V headers and the GCC runtime (under the GCC Runtime Library Exception) are built into the binary; see THIRD_PARTY_NOTICES.

Author: Manuel García Sanz

dale 1.0.0

Choose a tag to compare

@manuelgscom manuelgscom released this 24 Oct 13:08

dale 1.0.0

Natural language to Linux commands. 100% offline. One native binary.

This is the first public release of dale.

$ dale "find the files over 200 MB in this folder"

  ❯ find . -type f -size +200M -exec ls -lh {} +
    Recursively finds files larger than 200 MB in the current
    directory and lists them with human-readable sizes.

  ● safe  ·  Run it? [Y/n/e(dit)/c(opy)]

dale turns a request in English or Spanish into one bash command and explains it. A deterministic risk verifier written in C++ rates every command as safe, caution or danger, and the command runs only if you confirm. Dangerous commands run only after you type run (ejecutar in Spanish). Three modes: suggest (never runs), confirm (the default) and auto (runs safe commands directly, asks for everything else).

Everything happens on your machine: after the model download there are no network requests, no accounts and no telemetry.

Install

curl -LO https://github.com/manuelgscom/dale/releases/download/v1.0.0/dale-linux-x86_64
curl -LO https://github.com/manuelgscom/dale/releases/download/v1.0.0/SHA256SUMS
sha256sum -c --ignore-missing SHA256SUMS     # must print: dale-linux-x86_64: OK
chmod +x dale-linux-x86_64 && mkdir -p ~/.local/bin && mv dale-linux-x86_64 ~/.local/bin/dale
dale "list the files bigger than 200 MB"

If you get dale: command not found, open a new terminal, or add ~/.local/bin to your PATH. The README has step-by-step instructions, including how to build from source.

Requirements

  • Linux on x86_64 with AVX2.
  • glibc 2.29 or later.
  • curl or wget for the first model download.
  • No GPU needed. On Windows, use it through WSL 2.

The model

manuelgscom/dale-0.8b-GGUF is a full fine-tune of Qwen3.5-0.8B, quantized to Q4_K_M (529 MB).

  • On first use, dale asks before downloading it.
  • It verifies its SHA-256 (8738d2535680cf7b8227001013a0ba6e6b2a4c8e8f3d149fd181c17cb96e2d3d) and stores it in ~/.local/share/dale/models/ (or $XDG_DATA_HOME/dale/models/).
  • The download URL is pinned to a fixed revision and compiled into the binary.
  • After that, dale makes no network requests at all.
  • To use a local GGUF file instead: dale --model PATH <request…>.

Accuracy and speed

  • 79.4 % (374/471) on the public test set manuelgscom/dale-bash-test-v2, versus 62.8 % for Qwen3.5-9B and Gemma 4 E4B-it without fine-tuning.
  • 0 invalid JSON answers, and all 101 out-of-scope requests correctly refused.
  • About 1.7 s median per request on a mid-range 2020 laptop CPU (4 cores / 8 threads), with no GPU.

The model card describes the methodology in detail.

Release assets

File Description
dale-linux-x86_64 The binary. Static C++ runtime, depends only on glibc. SHA-256 3885ca552b2a3947af3c30cc95392c94d2064bce22cf01661994587dffa5a056
SHA256SUMS Checksums of the binary and the model
THIRD_PARTY_NOTICES Licenses of the code built into the binary

Limitations

  • bash on Linux only. No zsh, fish or macOS for now.
  • The model is wrong in about 1 of 5 cases on the test set, and a wrong command can look plausible. Always read the command before running it.
  • dale is not a security tool. Its safety comes from the deterministic verifier and the confirmations, not from the model.
  • Requests are capped in length: very long requests are rejected.

License

  • Code: MIT.
  • Model: Apache-2.0, the same license as its base model.
  • llama.cpp/ggml, nlohmann/json and the GCC runtime (under the GCC Runtime Library Exception) are built into the binary; see THIRD_PARTY_NOTICES.

Author: Manuel García Sanz