Skip to content

chann/cli-tools

Repository files navigation

CLI Tools Collection

한국어

Rust-based command-line tools for repository analysis, Git workflow maintenance, everyday developer utilities, and silent command logging.

Tools

Command Crate Purpose
code-cost crates/code-cost Estimate a repository's development cost and project value.
work-summary crates/work-summary Summarize Git activity, effort, and contribution value.
git-tools crates/git-tools Clean branches, scan markers, check project health, and manage changelogs.
dev-tools crates/dev-tools Run common data, encoding, network, text, and system utilities.
zzz crates/zzz Run a command silently and save stdout to ~/.commands.

zzz is a separate install target. Installing dev-tools no longer installs the zzz binary.

Installation

Install only the tools you need:

cargo install --path crates/code-cost --force
cargo install --path crates/work-summary --force
cargo install --path crates/git-tools --force
cargo install --path crates/dev-tools --force
cargo install --path crates/zzz --force

Build or test the full workspace:

cargo build --release --workspace --bins
cargo test --workspace --all-targets

code-cost

Analyze repositories and estimate monetary value from code size, language difficulty, complexity, maturity, and Git history.

# Analyze the current directory
code-cost

# Analyze specific repositories
code-cost ~/projects/my-app ../other-repo

# Compact table output
code-cost --simple

# Include developer-level cost breakdown
code-cost --dev-levels

# Export results
code-cost --format json-pretty
code-cost --export report.html
code-cost --export report.md
code-cost --export report.csv

Key outputs:

  • LOC breakdown by code, comments, and blanks
  • Language distribution and weighted difficulty
  • Git age, commit, and contributor metrics
  • Complexity, maturity, and code-quality scoring
  • CSV, HTML, Markdown, JSON, and terminal output

work-summary

Analyze Git commit history and produce a work summary with estimated time, activity patterns, and value calculation.

# Analyze the last 30 days
work-summary

# Quick filters
work-summary --today
work-summary --week
work-summary --month

# Date range and limit
work-summary --from 2025-01-01 --to 2025-01-31
work-summary --limit 20

# Compact output and JSON export
work-summary --simple
work-summary --export summary.json

The estimator combines commit time gaps with code-change volume and complexity.

git-tools

Developer workflow utilities for repository maintenance.

# Branch cleanup
git-tools cleanup
git-tools cleanup --force
git-tools cleanup --target develop

# Marker scan
git-tools scan
git-tools scan --markers "TODO,DEBUG"

# Project health
git-tools health
git-tools health --verbose

# Environment and changelog helpers
git-tools env
git-tools changelog
git-tools changelog --from v1.0.0 --limit 10

# Interactive Conventional Commit wizard
git-tools commit

dev-tools

A collection of small utilities for common transformations and system checks.

# UUIDs
dev-tools uuid --count 5 --v7

# Base64
dev-tools base64 "hello world"
dev-tools base64 --decode "aGVsbG8gd29ybGQ="

# JSON and model generation
dev-tools json '{"a":1,"b":2}'
dev-tools typescript '{"name":"test","age":20}'
dev-tools rust '{"name":"test","age":20}'
dev-tools go '{"name":"test","age":20}'

# Ports, hashes, and time
dev-tools port 8080
dev-tools port 8080 --kill
dev-tools hash README.md --file
dev-tools checksum README.md --file --algo sha512
dev-tools time
dev-tools time 1740000000

# Text, security, and network helpers
dev-tools password --check "P@ssw0rd123"
dev-tools morse "HELLO WORLD"
dev-tools morse --decode ".... . .-.. .-.. --- / .-- --- .-. .-.. -.."
dev-tools ip

dev-tools silent remains available for command logging:

dev-tools silent git status --short
dev-tools silent python script.py

zzz

zzz is a standalone shortcut for silent command logging. It runs the command through your interactive shell on Unix, so shell aliases and functions are available. The command is detached and runs in the background, returning to the prompt immediately (no trailing & needed); its output is captured to the log file.

zzz echo "hello"
zzz git status --short
zzz update-agents

Logs are saved to:

~/.commands/{yymmdd}/{hhmmss}-{command_name}.log

Example:

~/.commands/260605/224512-echo.log

Release

Releases are driven by Git tags.

  1. Update workspace.package.version in Cargo.toml.

  2. Run cargo test --workspace --all-targets.

  3. Create and push a matching tag:

    git tag v0.1.0
    git push origin v0.1.0

The GitHub Actions release workflow validates that the tag matches the workspace version, runs the workspace tests, builds platform archives, and creates a GitHub Release. Release artifacts include:

  • Linux x86_64: tar.gz
  • macOS Intel: tar.gz
  • macOS Apple Silicon: tar.gz
  • Windows x86_64: zip

See versioning.md for the shared versioning rules.

Project Structure

cli-tools/
├── .github/workflows/release.yml
├── crates/
│   ├── cli-core/       # Shared UI, output, config, and command logging
│   ├── code-cost/      # Repository value analyzer
│   ├── dev-tools/      # Developer utility collection
│   ├── git-tools/      # Git workflow and health tools
│   ├── work-summary/   # Git work summary analyzer
│   └── zzz/            # Standalone silent command logger
├── Cargo.toml
└── versioning.md

License

MIT License. See LICENSE.

Author

CHANN

About

Useful enough for work, maybe?

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors

Languages