2026-04-23 08:35:52 +02:00
2026-04-23 08:35:52 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00
2026-04-16 11:36:48 +02:00

CLI Tools

Scripts and tools to set up and manage the terminal environment across systems.

Entry point: cli-tools


Install

Run this tool from the checked-out repo. Do not install it with uv tool install, because cli-tools install helpers symlinks shell files from scripts/.

cd /path/to/cli-tools
uv run cli-tools --help
cli-tools install bootstrap        # install everything (first-time setup)
cli-tools install apt-packages     # git, curl, ripgrep, fd, btop, tldr, ...
cli-tools install uv               # uv package manager
cli-tools install fzf              # fzf + bat
cli-tools install zoxide           # zoxide (z navigation)
cli-tools install eza              # modern ls replacement
cli-tools install lazygit          # terminal UI for git
cli-tools install docker           # Docker + add user to group
cli-tools install claude           # Claude Code
cli-tools install helpers          # symlink bash_helpers.sh + aliases.sh into ~

Docker

cli-tools docker build             # build python-dev image
cli-tools docker build --tag v1.2 --push  # build and push with tag

Credentials

cli-tools credentials encrypt-env  # .env → .env.gpg
cli-tools credentials decrypt-env  # .env.gpg → .env

Installed Tools

eza — modern ls replacement

Fast, colorized file listing with Git integration and icons.

Command Description
ls list files (aliased to eza)
ll long list with git status (eza -la --git)
eza --tree tree view of directory
eza -la --sort=modified sort by modification time

fzf — fuzzy finder

Interactive fuzzy search for files, history, and more. Integrates with shell key bindings.

Shortcut / Command Description
Ctrl+R fuzzy search shell history
Ctrl+T fuzzy find file and insert path
Alt+C fuzzy cd into a directory
fzf pipe any list into interactive selector
vim $(fzf) open fuzzy-selected file in editor

lazygit — terminal UI for Git

Full-featured Git UI in the terminal. Run lazygit in any repo.

Key (inside lazygit) Description
space stage / unstage file
c commit
P (cap) push
P pull
? help / key bindings
q quit

zoxide — smarter cd

Tracks your most-visited directories and lets you jump to them with partial names.

Command Description
z foo jump to the most frecent dir matching foo
z foo bar match multiple terms
zi interactive selection with fzf
z - jump to previous directory

Shell aliases (aliases.sh)

Alias Expands to
reload source ~/.bashrc
venv source .venv/bin/activate
uvs uv sync --all-extras
cat batcat (syntax-highlighted cat)
bat batcat
ls eza
ll eza -la --git
fd fdfind
clip xclip -selection clipboard
open_ports sudo ss -tulwn | grep LISTEN
docker_stop_all stop all running containers
claude-allow claude --dangerously-skip-permissions

Shell functions (bash_helpers.sh)

Function Usage
attach <name> exec into a running Docker container
python-dev start/attach python-dev container (-p pull, -n fresh)
mount_ssh <host> mount remote dir via SSHFS
canview launch CAN bus viewer (uses $CAN_CHANNEL)
repl connect to serial device via picocom (uses $AMPY_PORT)
find_and_cat <file> find file by name and print contents
record_window record a window to mp4 via ffmpeg
S
Description
scripts and cli tools
Readme 192 KiB
Languages
Python 44.8%
Shell 37.7%
Dockerfile 17.5%