#git #nodejs #hg

build breath

a tools for commiting rust with git or hg source code

10 releases

Uses new Rust 2024

0.2.1 Oct 24, 2025
0.2.0 Oct 8, 2025
0.1.7 Oct 6, 2025
0.1.5 Sep 19, 2025
0.1.1 Apr 22, 2025

#43 in Build Utils

Download history 5/week @ 2025-08-20 496/week @ 2025-09-17 15/week @ 2025-09-24 258/week @ 2025-10-01 225/week @ 2025-10-08 7/week @ 2025-10-15 160/week @ 2025-10-22

653 downloads per month

AGPL-3.0

83KB
1K SLoC

Breath

License: AGPL-3.0 Crates.io

A fast, interactive CLI that streamlines committing code to Git or Mercurial repositories. It can also run language-aware checks before you commit (format, lint, tests, security, deps) and stores logs per language under a .breathes directory.

VCS detection: Breath auto-detects the repository type at runtime by checking for .git or .hg. No Cargo features are required to switch between Git and Mercurial.

Category Commit Type Mnemonic Description Example
Core Changes Star Shiny Technology Added or Refined New feature or enhancement Star(Auth): Implement two-factor authentication
Comet Code or Module Error Terminated Bug fix or error resolution Comet(UI): Fix responsive layout issue on mobile devices
Nebula New Efficient Better Understandable Logic Achieved Code refactoring Nebula(Backend): Refactor user management module for improved maintainability
Pulsar Powerful Upgrade, Less Sluggish, Agile Response Performance improvement Pulsar(Database): Optimize queries for faster response times
Quasar Quick Adjustments for Superior Accuracy and Readability Documentation or clarity improvement Quasar(API): Update documentation with new endpoint parameters
Maintenance & Infrastructure Asteroid Belt Adjustments, Sweeps, Tidy-ups, Elimination, Reordering of Items, Decrease Bloat Code cleanup and maintenance Asteroid Belt: Remove unused CSS and optimize images
Solar Flare Securing Our Logic Against Regressions, Failures, and Latencies Actively, Rigorously Ensured Adding or updating tests (unit, integration, end-to-end) Solar Flare(Payments): Add unit tests for payment processing module
Dwarf Planet Details Warranted Attention, Refined Further, Polished Little Aspects Neatly Enhanced Tiny Minor but essential updates or fixes Dwarf Planet: Update project dependencies to latest versions
Terraform Technology Engineering Resources Readily Automated, Foundation of Reliable Management Infrastructure changes Terraform(AWS): Provision new EC2 instance for staging environment
Project Events Black Hole Big Legacy Aspects Consumed, Killing Heavy, Old Loads Entirely Removing large chunks of code or features Black Hole: Remove deprecated user profile module
Wormhole Weaving or Reconnecting Modules, Hitching onto Linked Elements Merging branches or connecting code parts Wormhole: Merge feature/new-dashboard into develop branch
Big Bang Birth of Initial Greatness, Beginning All New Growth Initial commit of a project or major feature Big Bang: Initial project setup and scaffolding
Launch Lifting Application Upward, New Code Entering Production Deploying to production or releasing a version Launch(v1.2): Release new version with user profile customization
Communication & Collaboration Lightspeed Lightening Speed Enhancements Significant performance improvements Lightspeed(Frontend): Implement lazy loading for images
Mission Control Managing Changes, Issues, Scope, Teamwork, and Release On Time Project management changes Mission Control: Update project roadmap and assign tasks for Q3
Spacewalk Swift Work Above Limits, Keeping All Systems Extra Safe Urgent hotfixes or critical production updates Spacewalk(Security): Patch critical vulnerability in authentication module
Moon Landing Major Leaps Over Night, New Doors and Incredible Achievements Completing major milestones or goals Moon Landing: Successfully launch beta version to select users
First Contact Forge Initial Connections, Open New Territories Establishing initial connections or integrations First Contact(API): Integrate with new payment provider's API
Interstellar Communication Informing, Sharing, Teaching, Educating, & Learning Lucidly & Clearly Improving documentation or communication Interstellar Communication: Update wiki with troubleshooting guide for common errors
Celestial Events Solar Eclipse Sun Escapes, Legacy Code Lurks Temporarily masking functionality Solar Eclipse(Feature): Temporarily disable new onboarding flow for testing
Supernova Sudden Unbelievable Performance Revolution, New Version Arrives Major, transformative change or improvement Supernova(Architecture): Migrate to microservices architecture
Meteor Shower Many Edits, Tiny Overall Result, Overhaul Routines Series of small changes or fixes Meteor Shower: Fix multiple typos in error messages
Cosmic Dawn Creating Original, Simple, Minimal Initial Draft Initial implementation of a feature Cosmic Dawn(Search): Initial implementation of basic search functionality
Solar Storm Sudden Transformations Occur Rapidly, Modifications Rapid, impactful changes Solar Storm(Refactor): Overhaul data processing pipeline for improved performance
Lunar Transit Little Update, Now Adjustments Require Testing Minor, temporary change Lunar Transit(Config): Temporarily adjust logging level for debugging
Perihelion Perfect Ending, Refined, Improved, High Efficiency, Low Obstacles, Near Goal Significant milestone or feature completion Perihelion: Successfully complete user acceptance testing for new dashboard
Aphelion Away From Perfection, High Effort, Long Overhaul, Intense Overhaul, Obstacles Refactor, dependency update, or architecture change Aphelion: Upgrade to React 18 and refactor components
Celestial Objects White Dwarf Writing, Improving, Detailed Documentation For All Improving code comments or documentation White Dwarf(API): Add detailed documentation for new endpoints
Red Giant Refactoring, Enhancing, Growing, Increasing, Adding New Things Expanding a feature or functionality Red Giant(Payments): Add support for Apple Pay and Google Pay
Neutron Star New Efficient Utility, Tweaks, Robust Optimization, Nimble Solution Optimizing code for performance Neutron Star(Search): Optimize search algorithm for faster results
Binary Star Bringing In New And Revised, Yielding Integrated Results Merging features or components Binary Star: Merge user authentication and authorization modules
Brown Dwarf Barely Developed, Requires Work, Ongoing Development For Future Undeveloped feature with potential Brown Dwarf(Social): Initial prototype for social sharing feature
Quark Star Questionable, Unstable, Anticipated Results, Risky, Keen Experiment Experimental or speculative change Quark Star(AI): Experiment with integrating GPT-3 for content generation
Rogue Planet Refactoring Or Generating Operations, Unique Path, Leaping Ahead Independent change unrelated to the main codebase Rogue Planet: Create standalone script for data migration
Stellar Nursery Starting To Enhance, Laying Layers, Launching New Requirements Creating new components Stellar Nursery(UI): Add new component library for design system
Planetary Nebula Pruning, Leaving, Abandoning, Nostalgic Era, Totally Removed Removal or deprecation of a component Planetary Nebula: Remove legacy image carousel component
Globular Cluster Gathering, Linking, Operations, Bringing Unity, Lots of Adjustments, All Related Collection of related changes Globular Cluster(Refactor): Refactor multiple API endpoints for consistency
Void Vanished, Obliterated, Irrelevant, Deleted Removal of a module, component, or feature Void: Remove unused user settings module
Astronomical Concepts Gravity Glitch Resolution, Adjusting Versions, Integrating, Troubleshooting Yielding Resolving merge conflicts or dependencies Gravity: Resolve merge conflicts in feature/new-navigation branch
Dark Matter Debugging And Resolving Mysterious Attributes, Tricky issues Removed Fixing unknown or mysterious bugs Dark Matter: Fix intermittent crash on user login
Time Dilation Time Is Dilated, Improvements Leverage Agility, Time-Saving Improving code performance or reducing execution time Time Dilation(Backend): Optimize image processing algorithm for faster response
Spacetime Scheduling, Planning, Adjusting Calendar Events, Coordinating Time Changes to date, time, or scheduling Spacetime(API): Fix timezone handling for event timestamps
Gravitational Lensing Gravity Redirects Light, Altering Information Pathways Altering data or information flow Gravitational Lensing(Data): Refactor data pipeline for improved throughput
Cosmic String Connecting Our Sections, Merging Together, Interlinking New Groups Connecting code parts Cosmic String(API): Connect user service with authentication middleware
Quantum Fluctuation Quick Unpredictable Adjustments, Noticed Tiny Unexpected Modification Small, random change Quantum Fluctuation: Fix typo in error message
Hawking Radiation Hastily And Willingly Killing Redundancies, Ageing Dead-ends, Tidying In Order, Obliterating Noise Removing technical debt Hawking Radiation: Remove unused CSS classes and refactor styles
Quantum Entanglement Quantum Effects Never Tangled, Greater Efficiency, Linked Adjustments Establishing close relationships between code parts Quantum Entanglement(API): Tightly couple user profile and order history endpoints
Gravitational Redshift Gravity Reduces Efficiency, Degraded Speed, Shift Happens Slowing down or reducing code performance Gravitational Redshift(UI): Disable unnecessary animations for low-end devices
Space Exploration Space Probe Surveying, Planning, Analysing, Checking Every Nook Testing new features or technologies Space Probe(AI): Experiment with ChatGPT integration for customer support
Space Station Setting Up The Area, Testing In Orbit, Optimising New Creating or improving environments Space Station(DevOps): Set up new development environment with Docker
Rocket Launch Releasing Our Code, Keenly Entering The Production Deploying to production Rocket Launch(v1.5): Deploy new version to production with enhanced security features
Spacewalk Swift Patches And Lookout Work, Keeping Systems Extra safe Urgent production hotfixes Spacewalk(Database): Fix critical database connection issue causing downtime
Space Elevator Streamlined Access, Providing Easy Vertical On boarding, Lifting Entries Making code base more accessible Space Elevator(API): Add new public API endpoints for third-party integrations

Overview

Breath helps you:

  • review the current diff and status;
  • compose a guided commit message (templates with type, scope, summary);
  • optionally push to remotes;
  • run pre-commit hooks for common ecosystems when their config files are detected (Rust, Node.js, PHP, Go, Java, .NET/C#, CMake, etc.).

Under the hood it uses:

  • Rust + Cargo as the build system;
  • crossterm and inquire for the TUI/interactive prompts;
  • simple process spawning to run the underlying tools for each language.

Stack and entry points

  • Language: Rust (edition 2024)
  • Package manager/build tool: Cargo
  • Binary crate name: breath
  • Entry point: src/main.rs
  • VCS: auto-detected at runtime by checking for .git or .hg
  • Subcommands: config, health, commit, push, pull, status, log, diff

Requirements

  • Rust toolchain with edition 2024 support (Rust 1.82+ recommended)
  • One of (depending on your repository):
    • Git (if using a Git repo)
    • Mercurial/hg (if using a Mercurial repo)
  • Optional tools used by hooks (only needed if the corresponding project files exist):
    • Rust: rustfmt, clippy (rustup components), cargo-audit, cargo-outdated
    • Node.js: npm
    • PHP: composer
    • Go: go toolchain
    • Java: Maven (mvn)
    • .NET/C#: dotnet
    • CMake: cmake and make

If a language’s tool is not installed but its marker file exists (e.g., Cargo.toml), the related hook will fail. Install the tool or remove/ignore the marker.

Installation

From crates.io:

cargo install breath

From source (in this repo):

cargo build --release

Usage

Breath works the same in Git and Mercurial repositories. It auto-detects the VCS.

  • Interactive commit flow:
breath commit
# or simply `breath` to run the default interactive flow (commit in detected VCS)
  • Health checks (run language-aware hooks if their marker files exist):
breath health
  • Configure your Git or Mercurial setup:
breath config git  # prompts for user.name, user.email, core.editor
breath config hg   # prints instructions to edit hg config
  • Convenience passthroughs to the underlying VCS:
breath status
breath log
breath diff
breath push
breath pull

Example pre-commit hook:

#!/bin/sh
# .git/hooks/pre-commit (make sure it is executable)

breath && exit 0 || exit 1

Hooks and logs

Breath runs language-specific hooks based on the presence of well-known files in your repository:

  • Rust: Cargo.toml → runs cargo fmt --check, clippy, test --no-fail-fast, audit, outdated
  • Node.js: package.json → runs npm outdated, npm run test
  • PHP: composer.json → runs composer outdated, composer security-check, php-cs-fixer (dry run), composer run test
  • Go: go.mod → runs go fmt -x, go vet ./..., go test ./..., go mod tidy, go build
  • Java: build.gradle or Maven project (see hooks.rs) → runs mvn clean compile, test, spotbugs, dependency updates
  • C#: *.csproj → dotnet format --verify-no-changes, build, test, analyze, restore
  • CMake: CMakeLists.txt → cmake build . && make . && make test

Outputs are stored under .breathes//{stdout,stderr}/.log. On failure, Breath prints the captured logs for quick diagnosis.

Scripts and common commands

  • Build: cargo build --release
  • Run: cargo run
  • Install locally from source: cargo install --path .
  • Show help: breath --help

Environment variables

  • None required at this time.
  • TODO: Document any future env vars to control timeouts, spinner behavior, or disabling certain hooks.

Tests

  • There are currently no automated tests in this repository.
  • To run tests when they are added: cargo test
  • TODO: Add unit/integration tests for the interactive flow and hook runner.

Project structure

.
├── Cargo.toml           # crate metadata (name, version, license, deps)
├── src
│   ├── main.rs          # CLI entry point and subcommands; auto-detects Git/Hg
│   ├── git.rs           # Git workflow: diff, commit, optional push
│   ├── hg.rs            # Mercurial workflow: diff, commit, optional push
│   ├── utils.rs         # hooks runner, spinner UI, COMMIT_MESSAGE template
│   ├── hooks.rs         # per-language hook definitions
│   └── commit.rs        # commit type catalogue for the interactive menu
├── README.md
└── target/              # build artifacts (ignored)

License

AGPL-3.0. See the license badge above and Cargo.toml.

Acknowledgements

Created by hackia. Contributions and feedback are welcome.

Dependencies

~7–12MB
~249K SLoC