Hacker Workshop: Assembling Utilities to Make Life and Work Easier
Welcome to a curated collection of handy utilities that can simplify your workflow, boost productivity, and make your daily tasks as a hacker or power user much more efficient. Below, you’ll find tools for file management, networking, scripting, system monitoring, and even a few for fun. Let’s dive in!
File Management
Goful
Goful is a brand-new dual-pane file manager written in Go. It supports useful features like batch renaming with regex and file search. There’s a built-in terminal and many other handy options.
Goful’s controls are a bit unusual but convenient: instead of multi-key shortcuts, you just press a single key. For example:
- Spacebar: Select one or more files (like Ctrl+click in GUIs)
- \ : Jump to the root directory (note: it’s a backslash, not a forward slash)
- i: View file in a pager
- b: Add a bookmark to a file
- f /: Open file search in the current folder
- K: Create a folder
- d: Go to a path
This is just a small sample of commands. The full list is in the repository’s README.
To install Goful, you can either download and run the binary release from GitHub, or, if you have Go installed:
go install github.com/anmitsu/goful@latest
Goful looks good out of the box, but you can customize controls, colors, the built-in command line interpreter, editors, and viewers. There’s no config file; instead, you edit main.go
and reinstall with go install
.
Nnn
Nnn is one of the most minimalist console file managers. Its main advantage is simplicity and low resource usage (though that’s less of a concern on modern machines).
On Ubuntu, install it with:
sudo apt install nnn
Now just type nnn
anytime to quickly browse directories. Open the built-in help by pressing ?
.
Ncdu
Ncdu (NCurses Disk Usage) is a souped-up version of du
that shows disk usage in a nice pseudo-graphical interface. You can easily navigate directories and delete unnecessary files with d
(with confirmation to prevent accidents).
Install with:
sudo apt install ncdu
Run ncdu
to scan the current folder, or specify a path:
ncdu /
Diffoscope
When regular diff
isn’t enough, try diffoscope. It can compare not just text files, but also folders, archives, binaries, ISOs, PDFs, and about 70 other file types.
Install on Debian/Ubuntu with:
sudo apt install diffoscope
Note: This may pull in a lot of dependencies (Python, Java, X server). There’s also a Docker version:
docker run --rm -t -w $(pwd) -v $(pwd):$(pwd):ro registry.salsa.debian.org/reproducible-builds/diffoscope
Or use the browser version at try.diffoscope.org.
Eget
Eget is a cool utility for installing software from GitHub repositories that provide binary releases. If eget could install itself, you’d just run:
eget zyedidia/eget
But to get eget, use the ready-made release or installer script:
curl https://zyedidia.github.io/eget.sh | sh
Networking
Wireproxy
If you need to use Wireguard but don’t want a full client, check out wireproxy. It connects to a Wireguard peer but instead of creating a new network interface, it sets up a SOCKS5 proxy you can use in your apps.
Install with:
git clone https://github.com/octeep/wireproxy
cd wireproxy
go build ./cmd/wireproxy
If you don’t have Go, just download the prebuilt release.
Run with:
./wireproxy -c <config file>
The config is standard Wireguard, but you need to add two sections for TCPServerTunnel and Socks5. See the project repository for details.
Ssh-tools
Ssh-tools is a small set of utilities for those who work a lot with SSH. The most useful include:
- ssh-ping: Ping the SSH service (not just the machine)
- ssh-diff: Compare files on different machines
- ssh-facts: Get info about the remote system
- ssh-force-password: Skip key auth and log in with a password (if allowed)
- ssh-keyinfo: Info about keys
All tools parse ~/.ssh/config
, so you can use your configured hostnames. The package is available in most popular distros as ssh-tools
.
Nala
Nala is a great interface for APT. It does everything standard apt
does, plus supports history and parallel downloads.
To install (not in default repos yet):
echo "deb http://deb.volian.org/volian/ scar main" | sudo tee /etc/apt/sources.list.d/volian-archive-scar-unstable.list
wget -qO - https://deb.volian.org/volian/scar.key | sudo tee /etc/apt/trusted.gpg.d/volian-archive-scar-unstable.gpg > /dev/null
sudo apt install nala
After that, just use nala
instead of apt
(e.g., nala install nmap
).
Iptables-tracer
iptables-tracer lets you see if traffic passes through the desired iptables chains by inserting special marker rules (-j NFLOG
).
Install with:
git clone https://github.com/x-way/iptables-tracer
cd ./iptables-tracer/
go build
Run with:
./iptables-tracer -f "-s 1.3.5.7 -p tcp --dport 22" -t 90s
After stopping, remove the marker rules with:
./iptables-tracer -c
Graphics & System Monitoring
Picocrypt
Picocrypt is a simple yet powerful tool for file encryption. It also generates strong passwords and can edit or remove file metadata. Open source, small, and modern, it even protects against data corruption.
On Windows, download the binary from the releases page. On Linux, install via Snap:
snap install picocrypt
If you don’t have Snap, install it first (sudo apt install snapd
).
Dockeye
If you need a UI for Docker, try dockeye. It’s a graphical client for managing Docker containers, available for Linux and macOS. Download from the releases page.
Sysmontask
If you miss the Windows Task Manager, sysmontask brings a similar experience to Linux.
sudo add-apt-repository ppa:camel-neeraj/sysmontask
sudo apt install sysmontask
# For Ubuntu <=20.04 only:
sudo pip3 install -U psutil
First launch is recommended from the console with sysmontask
.
Neofetch
Neofetch displays system info in a visually appealing way, including your distro (with logo!), kernel version, memory, CPU, shell, desktop environment, window manager, theme, and more.
sudo apt install neofetch
If you use WSL, try wslfetch (included in Microsoft-provided distros), though it’s slower and looks a bit different.
TTYgames
No hacker toolkit is complete without some console games! Check out Petris (Tetris for the terminal) and other classics to pass the time.
For Scripting
HttpX
HttpX is a multipurpose tool for automating HTTP tasks. It’s great for finding HTTP servers in scan results, collecting service fingerprints, and exploring subnets during pentests. Especially powerful when combined with other tools:
subfinder -d hackerone.com -silent | httpx -title -tech-detect -status-code
HttpX has many flagsβcheck the help for details.
Xj
If you’ve ever tried parsing HTML in shell scripts with regex, you’ll appreciate xj, which converts HTML pages to JSON for easy processing (e.g., with jq
):
wget -qO- https://stedolan.github.io/jq/ | xj | jq '..|select(.title?)[][]'
Topalias
Topalias generates aliases for your most-used commands, shows stats, suggests shortcuts, and tells you how to register them. Note: It may suggest aliases that conflict with system commands (e.g., cp
), so review before applying.
Install with:
pip3 install -U --user topalias
If you get errors, install an older version of click
:
pip3 install -U --user click==7.1.2
Other Handy Tools
Jrnl
jrnl is a console utility for note-taking. Install via pipx:
pipx install jrnl
To use, either pass your note as a command-line argument or just run jrnl
and type your entry. You can add titles, tags, timestamps, and even encrypt your journal. Notes are stored as plain text, and you can view them in various ways. Use --short
to show only titles or --export text
to output the whole journal.
Android2Linux Notifications
Android2Linux Notifications lets you display Android notifications on your Linux desktop using libnotify
. Both your computer and phone must be on the same network (or connected via VPN like Wireguard).
First, install the server on your computer:
git clone https://github.com/patri9ck/a2ln-server.git
cd a2ln-server
sudo make install
If you have issues, install dependencies from requirements.txt
using pip.
Start the server with a2ln 50505
(or another port). Add the server to autostart if you want notifications after reboot.
On your phone, install the client app from F-Droid and enter the server’s IP and port. If you have a phone with aggressive battery saving (Huawei, Samsung, Xiaomi, etc.), whitelist the app so it isn’t killed. See dontkillmyapp.com for instructions.