Blame

0368e4 Zumi Zoom 2026-02-13 17:45:32
mkpage
1
# Zumi's Tool Recommendation List
2
3
Random assortment of tools that Zumi uses and recommends trying out.
4
5
## Command line stuff
6
7
### Shells
8
9
- [fish](https://fishshell.com/): this one is a no-brainer. Colorful prompt, history search built-in, very extensive auto-complete support for arguments and flags, legible shell scripting language. I use it on all my computers. Bash is so 70s, welcome to 2000s.
10
Some fish plugins that I use:
11
- [tide](https://github.com/IlanCosman/tide): beautiful status prompt (click to see)
12
- [fzf.fish](https://github.com/PatrickF1/fzf.fish): Fish has `fzf` integration built-in for paths, but this plugin extends it with various stuff (search by file content, search history, file previews...)
13
- [Nu](https://www.nushell.sh/): not as a daily use shell, but Nu is a very nice shell scripting language for data processing. Need to do some JSON processing? `file read a.json | filter (.name == "Lux") | to json`.
14
- [gum](https://github.com/charmbracelet/gum): simple CLI to create CLI scripts! Gives some simple way to create beautiful prompts, selects, table formatting...
15
16
### Dev tools
17
18
- [fx](https://fx.wtf/): very cool interactive JSON viewer. Has tree folding, searching, copy subpart etc. You can just pipe any JSON output into it like `curl https://a.com/b.json | fx`
19
- [gron](https://github.com/tomnomnom/gron): Turns JSON into a line-based syntax that you can `grep` (and turn back into JSON)
20
- [Github CLI](https://cli.github.com/), [Gitlab CLI](https://docs.gitlab.com/cli/), [Gitea/Forgejo CLI](https://codeberg.org/forgejo-contrib/forgejo-cli): manage repos, issues, PRs from the command line. Most useful commands to me are `gh pr list` and `gh pr checkout [pr-id]`.
e236b8 Zumi Zoom 2026-02-16 16:00:29
add Serie
21
- [Serie](https://github.com/lusingander/serie) is an interactive `git log --graph` viewer.
0368e4 Zumi Zoom 2026-02-13 17:45:32
mkpage
22
23
#### Special: useful `git` options
24
25
Put these in your `git config`.
26
27
- `diff.verbose = true` : this makes `git commit` displays the diff of all things you staged below the commit message box. Very useful to have a final look before hitting that commit button.
28
- `merge.conflictstyle = "zdiff3"` : usually conflicts look stupid. This would make conflicts show up like this (when you try to merge commit `A` into commit `B`)
29
```
30
>>>>> code at commit A
31
....
f07fb3 Zumi Zoom 2026-02-13 17:50:04
&
32
===== code before commit B
0368e4 Zumi Zoom 2026-02-13 17:45:32
mkpage
33
....
34
===== code at commit B
35
....
36
<<<<<
37
```
38
You can see easily what changed in A (look middle -> top) and what changed in B (look middle -> bottom).
39
40
- Set up [delta](https://github.com/dandavison/delta), gives you `git diff` with syntax highlighting and line numbers etc.
41
42
### Life in the terminal
43
44
- [glow](https://github.com/charmbracelet/glow): simple CLI markdown viewer. Supports a lot of extensions, comes with syntax highlighting etc.
45
- [broot](https://github.com/Canop/broot): interactive version of `tree`. View the file list in a (collapsible) tree form, perform fuzzy search, etc.
46
47
#### Terminal Emulator
48
49
I use kitty and ghostty.
50
51
- [ghostty](https://ghostty.org/): yummy fast emulator. Quite simple configuration, it's also super fast.
52
- [kitty](https://sw.kovidgoyal.net/kitty/): super feature-rich emulator. Has lots of configuration. Not as fast as ghostty but still should beat all default ones.
53
54
#### Basic tool replacements
55
56
- [ripgrep / rg](https://github.com/BurntSushi/ripgrep): ultra-fast version of `grep` that also does "mostly the right thing" with no arguments. By default `rg [pattern]` would grep all lines matching the pattern from all files in the current directory -- excluding files ignored by `git`.
57
Some useful flags to memorize: `-i` for case-insensitive, `-F` for "no-regex, match-string-literally mode"
58
- [sd](https://github.com/chmln/sd): extremely simple replacement of `sed`.
59
`sd [pattern] [replacement] [files...]` will replace all instances of `pattern` with `replacement` in given files. Regex is supported of course (`-F` is a thing too). Also works as a pipe: `cat a.txt | sd x y`. No more fiddling with `sed`.
60
- [ouch](https://github.com/ouch-org/ouch): universal command-line tool for all archives. `ouch d [file]` will decompress a file, no matter whether it's `zip`, `rar`, `tar.gz` etc.
61
- [bat](https://github.com/sharkdp/bat): `cat` with syntax highlighting. Automatically disable all fancy stuff if you use it has a pipe, so usually I just alias `cat` to it: `alias cat=bat`.
62
63
## GUI Stuff
64
65
Mostly Linux stuff here. Windows shoo
66
67
### Audio
68
69
- [qpwgraph](https://github.com/rncbc/qpwgraph): GUI for the Pipewire system. Lets you mix and re-route audio from app to app, from app to specific speakers, from specific microphone to specific app, ...
70
71
### Internet
72
73
- [Zen Browser](https://zen-browser.app/): beautiful fork of Firefox with vertical tabs.
74
- [deluge](https://deluge-torrent.org/): torrent client that can run as a system service with a web server that you can remote control.