Parsing Helix logs in Nushell

16 December 2025

Updated: 17 June 2026

Getting Helix Logs

Viewing helix logs can be done by reading ~/.cache/helix/helix.log. To increase logging verbosity, you should also start helix with hx -v which will provide more detailed logs which can be handy for debugging language servers

Parsing a Log

A super quick one today - I was doing some debugging on a Language Server for Helix and it was getting really annoying trying to find the data I was looking for so I wrote this quick Nushell command:

Terminal window
1
cat ~/.cache/helix/helix.log
2
| parse "{date} helix_lsp::transport [{type}] {source} <- {data}"

This will parse the Helix logs using the given format.

Parsing inner JSON

The data portion is also JSON, so adding the JSON parsing can be done with:

Terminal window
1
cat ~/.cache/helix/helix.log
2
| parse "{date} helix_lsp::transport [{type}] {source} <- {data}"
3
| update data { |e| $e.data | from json }

Rendering with jq

I also prefer normal JSON to the helix data view for this kind of data, so you can tac on | to json | jq to pipe it to jq for some nice JSON rendering and querying:

Terminal window
1
cat ~/.cache/helix/helix.log
2
| parse "{date} helix_lsp::transport [{type}] {source} <- {data}"
3
| update data { |e| $e.data | from json }
4
| to json | jq

Real-time log rendering

And for real-time rendering/printing, you can use tail + each { print }:

Terminal window
1
tail -f ~/.cache/helix/helix.log
2
| parse "{date} {section} [{type}] {source} <- {data}"
3
| update data {|d| $d.data | from json }
4
| each { to json | jq -C | print }