Skip to content

Releases: DazzleTools/dazzlecmd

v0.6.0 - dz github: Quick GitHub Navigation from Any Repo

03 Apr 03:15

Choose a tag to compare

DazzleCMD v0.6.0

Unified CLI for the DazzleTools collection -- many tools, one command. dz <tool> [args] gives you a single entry point for all your utilities.

What's New in v0.6.0

dz github -- Quick GitHub Navigation from Any Repo

New dazzletools tool that opens GitHub project pages, issues, PRs, and releases directly from the terminal. Wraps gh CLI with ergonomic shortcuts and automatic remote detection.

Auto-detects your repo -- no gh repo set-default needed. Parses OWNER/REPO from your git remote and passes -R to gh transparently.

dz github                        # Open repo home page
dz github 3                      # Open issue or PR #3
dz github pr                     # Pull requests tab
dz github release                # Releases page
dz github issues                 # Issues tab
dz github forks                  # Forks page
dz github actions                # Actions / CI tab
dz github projects               # GitHub Projects (kanban)

Semantic issue lookup -- find issues by label or title, not just number:

dz github isu roadmap            # Find issue with 'roadmap' label (or title match)
dz github isu notes              # Tries 'notes' label, then 'ideas', then title search
dz github isu epics              # Opens label-filtered browser view for all epics

Resolution order: label match first, title search fallback. Reports other matches when multiple issues are found.

Repo finder -- search across all your GitHub orgs by name:

dz github repo preserve          # Find and open a repo by name
dz github repo repokit           # Substring match -- prompts if multiple results
dz github preserve               # Same thing -- implicit when not in a git repo

Uses a local cache (~/.cache/dz-github/repos.json, 24h TTL) for instant lookups after first use. Refresh with dz github --refresh.

Subdirectory scanning -- when not in a git repo, scans child directories:

cd C:\code\dazzlecmd             # Parent dir with github/ and local/ subdirs
dz github                        # Detects both point to same repo, auto-opens

Other features:

  • -n / --no-browser: print URL without opening browser (for scripting)
  • --remote NAME: use a specific git remote instead of origin
  • Safe ASCII output on Windows (no mojibake from Unicode em dashes in issue titles)
  • Page keyword aliases: prs, pulls, ci, kanban, fork, network

Installation

pip install dazzlecmd

Or install from source:

git clone https://github.com/DazzleTools/dazzlecmd.git
cd dazzlecmd && pip install -e .

Version History (0.x)

Version Key Change
v0.6.0 Current -- dz github tool for quick GitHub navigation
v0.5.1 fixpath search fallback for all non-existent paths
v0.5.0 dz git-snapshot named working state checkpoints
v0.4.1 fixpath result ranking, --fast, --all
v0.4.0 dz find tool, fixpath search fallback
v0.3.1 Depth control, --kit scaffolding, terminal-width help
v0.3.0 dz fixpath tool, documentation suite
v0.2.1-alpha First PyPI release, dz links, traffic tracking

Platform Support

Platform Status
Windows Tested (primary development platform)
Linux Expected to work
macOS Expected to work

Requirements

  • Python 3.8+
  • gh (GitHub CLI) -- install
  • git

v0.5.1 - fixpath Search Fallback, git-snapshot Docs

28 Mar 09:24

Choose a tag to compare

DazzleCMD v0.5.1

Patch release fixing fixpath search behavior and adding git-snapshot documentation.

What's New in v0.5.1

fixpath: Search Fallback for All Paths

Previously, fixpath's search fallback only triggered for bare filenames (no path separators). Now it triggers for any non-existent path, using progressive resolution to extract the filename and search from the deepest valid directory.

# Before: failed with "not found"
dz fixpath some/path/file.md
# -> Warning: Cannot open, path not found

# After: searches for file.md from the deepest valid directory
dz fixpath some/path/file.md
# -> C:\code\project\docs\file.md  (found via search)

This makes fixpath more useful when copy-pasting paths from other projects or sessions where the directory structure differs.

git-snapshot README

Added documentation covering:

  • How snapshots work (stash create + custom refs)
  • Storage model (refs/snapshots/ -- local only, gc-safe)
  • Apply vs restore modes
  • Cleanup strategies
  • FAQ (remote push, garbage collection, stash interaction)

Installation

pip install dazzlecmd

Version History (0.5.x)

Version Key Change
v0.5.1 Current -- fixpath search for all paths, git-snapshot docs
v0.5.0 dz git-snapshot named checkpoints

v0.5.0 - dz git-snapshot: Named Working State Checkpoints

27 Mar 21:29

Choose a tag to compare

DazzleCMD v0.5.0

New tool: dz git-snapshot -- lightweight named checkpoints for git working state.

Why git-snapshot?

Sometimes you want a save point without a full commit. git stash is close, but stash entries are a fragile stack -- indices shift, names are hard to find, and cross-session recovery is awkward. dz git-snapshot gives you named, stable checkpoints that survive stash manipulation and are easy to diff against.

How it works

Snapshots use git stash create to build a stash-format commit (without touching the stash stack), then store it as a custom ref under refs/snapshots/. This means:

  • Stable names -- refs/snapshots/20260327-161332_pre-refactor won't shift
  • Native git diff -- git diff refs/snapshots/foo just works
  • No stash pollution -- your manual stashes stay untouched
  • Two restore modes -- merge (preserve local changes) or hard replace

Subcommands

dz git-snapshot save "before refactor"       # Save working state
dz git-snapshot list                         # List all snapshots
dz git-snapshot show 1                       # Details + file summary
dz git-snapshot diff 1                       # Diff against current state
dz git-snapshot diff 1 --stat                # Diffstat summary
dz git-snapshot apply 1                      # Merge-reapply (keeps local changes)
dz git-snapshot restore 1 --force            # Hard replace working tree
dz git-snapshot drop 1                       # Delete a snapshot
dz git-snapshot clean --older 30 --dry-run   # Prune old snapshots

Features

  • Captures tracked + untracked files, preserves index state
  • Reference by index (newest = 1) or name prefix
  • restore requires --force when uncommitted changes exist (safety)
  • clean supports --older DAYS, --keep N, and --dry-run
  • list --json for scripting
  • 22 tests with isolated temp repos

Installation

pip install dazzlecmd

11 Tools Included

Core kit (5): find, fixpath, links, listall, rn
DazzleTools kit (6): claude-cleanup, dos2unix, delete-nul, git-snapshot, srch-path, split

Version History

Version Key Change
v0.5.0 Current -- dz git-snapshot named checkpoints
v0.4.1 fixpath result ranking, --fast, --all
v0.4.0 dz find, fixpath search fallback
v0.3.1 --depth, --kit scaffolding
v0.3.0 dz fixpath, documentation suite

v0.4.1 - fixpath Result Ranking, --fast, --all, claude-cleanup --user

26 Mar 23:39
v0.4.1
67b9a32

Choose a tag to compare

DazzleCMD v0.4.1

Patch release with fixpath search improvements and claude-cleanup enhancements.

What's New in v0.4.1

fixpath: Smarter Search Results

When fixpath searches for a file, it now ranks results by similarity to your original input. The closest match is used, not just whatever fd finds first.

# Before: picked whichever fd found first (non-deterministic)
# Now: picks the result whose path most closely matches your input
dz fixpath -d c:\code "../../ComfyUI_experiment/custom_nodes/comfyui-dazzlenodes/scripts/dev_mode_local.yaml"
# -> C:\code\ComfyUI_experiment\custom_nodes\comfyui-dazzlenodes\scripts\dev_mode_local.yaml

--fast: Instant First Match

For large directory trees where waiting for all results is too slow, --fast tells fd to stop after the first match:

dz fixpath --fast -d c:\code "dev_mode_local.yaml"
# fd stops immediately after finding one match -- no ranking, no waiting

--all: See Every Match

dz fixpath --all -d c:\code "dev_mode_local.yaml"
# Lists all matches, best match first
# Actions (-o, -l) apply to first result only; -c copies all paths

-d Shorthand

-d is now a shorthand for --dir (and implies --find):

dz fixpath -d c:\code "config.yaml"     # search c:\code for config.yaml

claude-cleanup v0.2.0

  • New --user mode to stage user artifacts (configs, skills, session logs) separately from noise
  • Updated directory/file lists: added image-cache, private, settings.json
  • Refactored commit logic

Installation

pip install dazzlecmd

Version History (0.4.x)

Version Key Change
v0.4.1 Current -- fixpath ranking, --fast, --all, claude-cleanup --user
v0.4.0 dz find, fixpath search fallback, progressive path resolution

v0.4.0 - dz find, fixpath Search Fallback, Progressive Path Resolution

23 Mar 10:14
v0.4.0
3aedbf6

Choose a tag to compare

DazzleCMD v0.4.0

Unified CLI for the DazzleTools collection -- many tools, one command.

What's New in v0.4.0

dz find -- Cross-Platform File Search

New core tool that wraps fd with dazzlecmd's action layer. Find files and immediately open, browse, or copy them -- no piping or xargs needed.

dz find README.md                     # Find a specific file
dz find "*.md" --dir docs             # Search in a specific directory
dz find "*postmortem*" -o             # Find and open in default app
dz find -e py --count                 # Count all Python files
dz find "*.log" -d 2 --older 7d       # Depth-limited, date-filtered
dz find -e json --dir kits -c         # Find and copy path to clipboard
dz find --regex "test_.*\.py$"        # Regex mode

Why dz find instead of fd directly? fd is excellent for search, but dz find adds the action layer: -o opens the result, -l reveals it in your file manager (Directory Opus, Explorer, Finder), and -c copies the path to clipboard. Same flags, any OS.

Requires fd: winget install sharkdp.fd / brew install fd / apt install fd-find

fixpath --find -- Progressive Path Resolution

When fixpath can't resolve a path, it now intelligently searches for the file. The key feature: progressive path resolution -- it walks the path left-to-right, finds the deepest directory that actually exists, and searches from there.

# Path has a bad subdirectory -- fixpath finds the valid prefix and searches
dz fixpath -s "private/claude/badsubdir/*postmortem*"
#   Resolves: private/claude/ exists, searches there for *postmortem*
#   -> private/claude/2026-02-13__full-postmortem_dazzlecmd-initial-implementation.md

# Bare filename -- searches CWD recursively
dz fixpath "creating-tools.md" -o
#   -> docs/guides/creating-tools.md (found and opened)

# Glob pattern -- auto-detects as search
dz fixpath "*workflow*.md"
#   -> finds all matching files

# Skip path fixing entirely
dz fixpath --skip "kits.md"

New flags:

  • -f / --find: explicit search mode
  • -s / --skip: bypass fix_path(), go straight to search
  • -p / --print: print only, override config default (no open/copy/lister)
  • --dir: specify search directories (repeatable)

dz list Word-Wrapping

dz list now wraps long descriptions at word boundaries with aligned continuation lines, adapting to terminal width.

Installation

pip install dazzlecmd

Also available as pip install dazzle-dz (alias package).

10 Tools Included

Core kit (5): find, fixpath, links, listall, rn
DazzleTools kit (5): claude-cleanup, dos2unix, delete-nul, srch-path, split

Version History

Version Key Change
v0.4.0 Current -- dz find, fixpath search fallback, progressive path resolution
v0.3.1 --depth, --kit scaffolding, terminal-width help
v0.3.0 dz fixpath, documentation suite, UNC support
v0.2.2-alpha dazzle-dz alias package on PyPI
v0.2.1-alpha First PyPI release, traffic tracking, dz links

Platform Support

Platform Status
Windows 10/11 Tested (primary development platform)
Linux Expected to work (CI tested on Ubuntu)
macOS Expected to work

Requirements

  • Python 3.8+
  • fd for dz find and fixpath --find
  • Optional: dazzle-filekit, unctools, teeclip, dazzletreelib

v0.3.1 - Depth Control, Kit Scaffolding, Terminal-Width Help

18 Mar 17:45
v0.3.1
5431151

Choose a tag to compare

DazzleCMD v0.3.1

Patch release with depth-limited scanning, scaffolding improvements, and terminal-aware help.

What's New in v0.3.1

dz links --depth N

Limit how deep recursive scanning goes, powered by dazzle-tree-lib when available:

dz links -d 1 "C:\ProgramData\Microsoft\Windows\Start Menu\Programs"
# 37 shortcuts (top level only)

dz links -d 2 "C:\ProgramData\Microsoft\Windows\Start Menu\Programs"
# 161 shortcuts (one level of subdirectories)

dz links -r "C:\ProgramData\Microsoft\Windows\Start Menu\Programs"
# 219 shortcuts (full recursive)

--depth implies --recursive. Falls back to os.walk with manual depth tracking when dazzle-tree-lib isn't installed.

dz new --kit

Auto-register new tools in a kit during scaffolding -- no more manual kit JSON editing:

# Before: two steps
dz new my-tool --namespace core
# then manually edit kits/core.kit.json

# Now: one step
dz new my-tool --namespace core --kit core

Also: dz new now generates platforms and lifecycle fields in manifests automatically.

Terminal-Width-Aware Help

dz --help now detects terminal width via shutil.get_terminal_size() and truncates descriptions to fit. Falls back to 80 columns for piped output.

Installation

pip install dazzlecmd

Version History (0.3.x)

Version Key Change
v0.3.1 Current -- --depth, --kit scaffolding, terminal-width help
v0.3.0 dz fixpath, documentation suite, UNC support

v0.3.0 - dz fixpath, Documentation Suite, UNC Path Support

18 Mar 15:40
v0.3.0
5fcfa0f

Choose a tag to compare

DazzleCMD v0.3.0

Unified CLI for the DazzleTools collection -- many tools, one command.

What's New in v0.3.0

dz fixpath -- Fix Mangled Paths

New core tool that takes broken paths from terminals, copy-paste, and mixed-OS environments and makes them work.

# Fix mixed slashes
dz fixpath "C:\code\project/private/file.md"

# Fix cmd.exe prompt artifacts
dz fixpath "C:\code\project>private/file.md"

# WSL and MSYS paths
dz fixpath "/mnt/c/Users/foo/file.md"
dz fixpath "/c/code/project/file.md"

# UNC network paths (use // in any shell)
dz fixpath "//server/share/docs/file.txt"

# Open in default app (-o), file manager (-l), or copy to clipboard (-c)
dz fixpath -o "private/claude/notes/idea.md"
dz fixpath -l "README.md"
dz fixpath -c "C:/code/project/file.md"

Handles: mixed slashes, cmd.exe > artifacts, MSYS/WSL/UNC paths, URL encoding, surrounding quotes, PowerShell prefix, tilde/env expansion, shell-mangled UNC reconstruction.

Configurable defaults:

dz fixpath config default copy        # Always copy to clipboard
dz fixpath config lister dopus        # Use Directory Opus as file manager
dz fixpath config show                # View current settings

File manager presets: Directory Opus, Total Commander, Windows Explorer. Or set any custom executable.

Documentation Suite

Every core tool now has its own documentation page, plus guides for developers:

Categorized Help

dz --help now groups commands by category:

commands:
  list              List available tools
  info <tool>       Show detailed info about a tool
  kit               Manage kits
  ...

core tools:
  fixpath           Fix mangled paths and optionally open, copy, or browse files
  links             Detect and display filesystem links
  listall           Flexible directory structure listing
  rn                Rename files using regular expressions

dazzletools tools:
  dos2unix          Pure-Python cross-platform line ending converter
  ...

Installation

pip install dazzlecmd

9 Tools Included

Core kit (4): fixpath, links, listall, rn
DazzleTools kit (5): claude-cleanup, dos2unix, delete-nul, srch-path, split

Version History

Version Key Change
v0.3.0 Current -- dz fixpath, documentation suite, UNC support
v0.2.2-alpha dazzle-dz alias package on PyPI
v0.2.1-alpha First PyPI release, traffic tracking, dz links

Platform Support

Platform Status
Windows 10/11 Tested (primary development platform)
Linux Expected to work (CI tested on Ubuntu)
macOS Expected to work

Requirements

  • Python 3.8+
  • No required dependencies
  • Optional: dazzle-filekit (path normalization), unctools (UNC conversion), teeclip (clipboard)

v0.2.1-alpha - First PyPI Release, dz links, Traffic Tracking

17 Mar 01:13
v0.2.1-alpha
2b09f46

Choose a tag to compare

DazzleCMD v0.2.1-alpha

Unified CLI for the DazzleTools collection -- many tools, one command. Run any tool with dz <tool> [args].

First PyPI release! Install with pip install dazzlecmd.

What's New in v0.2.1-alpha

dz links -- Filesystem Link Detection Tool

New core tool that scans directories for all types of filesystem links and shortcuts, displaying targets, status, and metadata.

dz links                              # Scan current directory
dz links -r --type symlink,junction   # Recursive, filter by type
dz links --broken                     # Find broken links
dz links -v ~/Desktop                 # Verbose with full paths
dz links --json                       # Machine-readable output

Detects 6 link types:

Type Description
symlink Symbolic links (file or directory)
junction Windows junctions (directory reparse points)
hardlink Hard links with target resolution via FindFirstFileNameW
shortcut Windows .lnk Shell Link files (binary parser)
urlshortcut .url Internet Shortcut files
dazzlelink .dazzlelink JSON descriptor files

Cross-platform path canonicalization handles MSYS/Git Bash (/c/path), forward slashes, and \\?\ prefix stripping. Optional dazzle-filekit and unctools integration for enhanced normalization.

Categorized Help Output

dz --help now groups commands by category -- builtins, core tools, and kit tools shown in separate sections:

commands:
  list              List available tools
  info <tool>       Show detailed info about a tool
  ...

core tools:
  links             Detect and display filesystem links (symlinks, junctions, hardlinks, dazzlelinks)
  listall           Flexible directory structure listing with sorting, collection modes, and output formatting
  rn                Rename files using regular expressions

dazzletools tools:
  delete-nul        Delete Windows NUL device files that get accidentally created
  dos2unix          Pure-Python cross-platform line ending converter (dos2unix/unix2dos)
  ...

Traffic Tracking & CI Improvements

  • GitHub traffic tracking via ghtraf -- daily clone/view/download badges
  • PyPI Trusted Publisher workflow (publish on tag push)
  • CI updated to actions v6 with pip caching
  • Package renamed from dazzle-dz to dazzlecmd on PyPI

Installation

pip install dazzlecmd

Or install from source:

git clone https://github.com/DazzleTools/dazzlecmd.git
cd dazzlecmd
pip install -e .

7 Tools Included

Core kit: links, listall, rn
DazzleTools kit: dos2unix, delete-nul, srch-path, split

Version History (0.2.x)

Version Key Change
v0.2.1-alpha Current -- first PyPI release, dz links, traffic tracking
v0.2.0-alpha dz add --link for tool import, dz mode toggle

Platform Support

Platform Status
Windows 10/11 Tested (primary development platform)
Linux Expected to work (CI tested on Ubuntu)
macOS Expected to work

Requirements

  • Python 3.8+
  • No required dependencies (optional: dazzle-filekit, unctools for enhanced path handling in dz links)