Crates.io | tailtales |
lib.rs | tailtales |
version | 0.1.28 |
created_at | 2025-01-06 18:05:31.312389+00 |
updated_at | 2025-09-24 18:06:39.806539+00 |
description | Flexible log viewer for logfmt and other formats with filtering, filtering expressions, and real-time pipe following. |
homepage | https://github.com/davidmoreno/tailtales |
repository | https://github.com/davidmoreno/tailtales |
max_upload_size | |
id | 1505952 |
size | 701,299 |
A TUI log viewer written in Rust
To easy inspect existing logs or streaming logs, with some filters, marking of messages and easy finding information in the logs.
tt
tt /var/log/messages
journalctl -f | tt
tt !journalctl -f
-- AS bash does not like use of !
in commands there is an alternative format: tt -- journalctl -f
. Another option is tt \!journalctl -f
.All keybindings are transalted to internal commands. It's possible to execute commands directly entering command mode (: by default).
Command | Description |
---|---|
quit | Exit the application |
clear | Refresh the screen, usefull when its damaged because of non controlled ANSI characters |
command | Opens command mode with a new command (not enough with mode command as that woudl not clear the current command) |
exec | Executes a command, as wl-copy, xdg-open.. or any helper. With placeholders you can pass the original line or urlencoded |
search_next | Search for the next occurrence |
search_prev | Search for the previous occurrence |
vmove |
Move vertically, positive down, negative up |
hmove |
Move horizontally, positive right, negative left |
vgoto |
Goto to specific line number |
clear_records | Clear all records |
warning <msg...> | Display a warning message |
toggle_mark |
Toggle a mark on the current line. Its a data for the record with that color as mark, and will be used at render. |
move_to_next_mark | Move to the next marked line |
move_to_prev_mark | Move to the previous marked line |
settings | Open the xdg program with the local settings file. If the file does not exist yet it is created with the default settings. |
mode |
Switch between different modes: normal, command, search or filter |
toggle_details | Toggle the display of details |
Key | Command |
---|---|
: | command |
| | mode filter |
f | mode filter |
/ | mode search |
n | search_next |
shift-n | search_prev |
control-del | clear_records |
control-l | refresh_screen |
F1 | exec xdg-open https://github.com/davidmoreno/tailtales/#use |
F2 | exec xdg-open https://www.perplexity.ai/search/new?q={{lineqs}} |
F3 | exec xdg-open https://www.duckduckgo.com/?q={{lineqs}} |
F4 | exec xdg-open https://google.com/search?q={{lineqs}} |
q | quit |
control-c | -- copy to clipboard -- |
up | vmove -1 |
k | vmove -1 |
page up | vmove -10 |
down | vmove 1 |
j | vmove 1 |
page down | vmove 10 |
left | hmove -1 |
control-left | hmove -10 |
right | hmove 1 |
control-right | hmove 10 |
home | vgoto 0 |
end | vgoto 2000000000 |
G | goto_line |
space | toggle_mark yellow |
1 | toggle_mark red |
2 | toggle_mark green |
3 | toggle_mark blue |
4 | toggle_mark magenta |
5 | toggle_mark cyan |
tab | move_to_next_mark |
shift-back tab | move_to_prev_mark |
esc | mode normal |
v | toggle_details |
It comes with some sensible default settings from the settings.yaml file. It can overwriten, by section at
~/.config/tailtales/settings.yaml
or the appropiate XDG config directory. See the file for further information.
The settings file have several default rules, and more may be added (send your pull request with new file formats!).
It has a basic pattern on the file name to discover which rules to use and acording to the matrched rule it can set:
Its possible to search and filter based on both the line and the structured parsed contents.
text
will look for text"text"
, but if just a simple text is given its understood as text (converts the variable name to a string)~ regex
or better ~ "regex"
can also be used to search / filter by regexMore will be added.
INFO
"^INFO
-- The closing " is assumedtimestamp <= "2025-01-01"
-- The comparison is string based, so timestamps better in ISO formatline_number > 1000 && line_number < 2000
-- TODO, no priority, no parenteheiss, will not work