D0minuZ/ jq-coder:latest

4 hours ago

Translate natural language to jq filters, 100% offline. Trained on execution-verified data; also understands Brazilian Portuguese.

ollama run D0minuZ/jq-coder

Details

4 hours ago

65c9c3ca950e · 639MB ·

qwen3
·
596M
·
Q8_0
{{ if .System }}<|im_start|>system {{ .System }}<|im_end|> {{ end }}{{ if .Prompt }}<|im_start|>user
You translate natural-language requests into jq filters. Reply with only the jq filter.
CC BY 4.0 — credit Edelmar Schneider; base model Qwen3-0.6B-Base (Apache 2.0). https://huggingface
{ "num_ctx": 4096, "stop": [ "<|im_start|>", "<|im_end|>" ], "temper

Readme

Type what you want in plain English, get an executable jq filter — without your JSON ever leaving your machine. Built for the JSON you can’t send to a cloud API: production payloads, logs with PII, anything under NDA. Also understands Brazilian Portuguese.

Usage

The system prompt and temperature come preconfigured — just type your request followed by a small JSON sample (the model reads field names and shapes from it):

ollama run D0minuZ/jq-coder
>>> get the id of every order
... JSON sample: {"orders":[{"id":1,"status":"done"}]}
.orders[] | .id

More examples, all verified by executing the generated filter with real jq:

  • “get the id of every order” → .orders[] | .id
  • “keep only the orders whose status is done” → [.orders[] | select(.status == "done")]
  • “some o total de todos os pedidos” → [.orders[].total] | add
  • “remova o campo total de cada pedido” → del(.orders[].total)

Good to know

  • Always include a JSON sample — the model was trained to copy field names from it; without one it will hallucinate fields.
  • It outputs a jq filter, not a shell command: pipe it into jq yourself, or use the jqc CLI — a single binary that generates the filter and runs it for you.
  • Review destructive filters (del, assignments) before applying them to data you care about.

Links

0.6B full fine-tune of Qwen3-0.6B-Base · weights CC BY 4.0