d

d CLI

A small, fast command-line toolkit for everyday developer tasks on macOS — git workflow helpers, GitHub repo setup, local networking, secret generation, educational YouTube download, and self-updates.

Why d?

Instead of juggling several one-off scripts and long git/gh invocations, d wraps the most common actions into short, memorable commands:

Built in Rust with a size-optimized release profile.

Install

curl -fsSL https://dcli.dezso.hu/install.sh | bash

Verify:

d version
# or
d --help

You can also download binaries from the GitHub Releases page (d binary or d-installer.pkg).

Features

Quick git push

Stages everything, commits, and pushes the current branch in one step:

d push add login screen

Git helpers

Command What it does
d git setup Interactive setup: ensures gh is installed/authenticated, configures user.name / user.email, creates a public or private GitHub repo (optional org), or overwrites an existing one after moving old remote code to a backup/pre-setup-* branch
d git fix Untracks files that are listed in .gitignore but still tracked in the index
d git update git pull origin <current-branch>

Self-update

Checks GitHub Releases, downloads only if a newer version exists, verifies the SHA-256 checksum, and replaces the running binary (with sudo if needed):

d update

Local IP

Prints your machine’s LAN IP (useful for local servers / device testing):

d ip

Secret / token generators

Thin wrappers around OpenSSL (plus UUID v4):

d gen hex        # 32 bytes → hex
d gen hex 64
d gen base64     # 32 bytes → base64
d gen base64 64
d gen uuid
d gen password      # 24 characters
d gen password 32

macOS defaults

Apply a small set of sensible Finder / Dock / menu bar defaults:

d macos start      # battery %, Finder path/status bar, hidden files
d macos dock       # auto-hide Dock
d macos flushdns   # flush DNS cache (sudo)
d macos reset      # undo `d macos start`

YouTube download

For educational purposes only.

Downloads a YouTube video with yt-dlp. After the URL you pick quality (270p, 480p, 720p, 1080p, 1440p; default 1080p), then a native macOS folder picker. The filename comes from the video title.

Install yt-dlp and ffmpeg in one step (Homebrew, no prompt):

d install yt-dlp

d download youtube installs them the same way if they are missing.

d download youtube
d download youtube --quality 720p
d download youtube https://www.youtube.com/watch?v=...

Music download

For educational purposes only.

Downloads audio as MP3 from YouTube, YouTube Music, or Spotify links. After the URL you pick bitrate (128k, 192k, 256k, 320k; default 320k), then the folder picker.

Spotify cannot be ripped from Spotify’s own files; spotdl matches the track and downloads it from YouTube (installed automatically with pipx if needed). d download music also installs yt-dlp / ffmpeg via Homebrew when missing.

d download music
d download music --quality 320k
d download music https://music.youtube.com/watch?v=...
d download music https://open.spotify.com/track/...

Multilingual UI

Supported languages: en (default), hu, de, es, it, zh, ru, uk.

Detection order:

  1. --lang / -L
  2. D_LANG environment variable
  3. LC_ALLLC_MESSAGESLANG
  4. macOS AppleLocale
  5. Fallback: English
d --lang hu
d -L de ip
D_LANG=zh d git --help

Help text, prompts, and command messages are all localized.

Command reference

Command Description
d / d help Show help (same as d --help)
d version Print CLI version
d ip Print local (LAN) IP address
d push <message…> git add -A + commit + push current branch
d update Install latest version from GitHub Releases (checksum-verified)
d git setup Interactive git + GitHub repo setup via gh
d git fix Remove ignore-but-tracked files from the index
d git update Pull latest changes for the current branch
d gen hex [n] Random hex (openssl rand -hex, default n=32)
d gen base64 [n] Random base64 (openssl rand -base64, default n=32)
d gen uuid Random UUID v4
d gen password [n] Random password (default n=24)
d macos start Apply initial macOS Finder / menu bar tweaks
d macos dock Auto-hide the Dock
d macos flushdns Flush the DNS cache
d macos reset Undo d macos start
d install yt-dlp Install yt-dlp and ffmpeg via Homebrew
d download youtube [url] Download a YouTube video (270p–1440p). For educational purposes only.
d download music [url] Download audio from YouTube / YouTube Music / Spotify (128k–320k). For educational purposes only.
--lang / -L Force UI language
--authors Print author name
--doc Print documentation URL

Examples

# Everyday workflow
d push fix typo in readme
d git update
d update

# New project → GitHub
cd my-app
d git setup

# Cleanup after editing .gitignore
d git fix
d push untrack ignored files

# Utilities
d ip
d gen hex 64
d gen uuid
d gen password 32
d macos start
d install yt-dlp
d download youtube
d download music

Development

Requires Rust 1.85+ (edition 2024). A rust-toolchain.toml pins stable via rustup.

cargo test
cargo fmt --check
cargo clippy --all-targets -- -D warnings
cargo build --release
cargo run -- --help
./build-pkg.sh          # builds d-installer.pkg for macOS (not committed)

Tagged releases (v*) are built by GitHub Actions and published with a d.sha256 checksum.

CLI parsing uses clap.

Info