#command-line-tool #git #workflow #command #cli #helper

app rona

A simple CLI tool to help you with your git workflow

4 stable releases

Uses new Rust 2024

new 2.3.0 May 21, 2025
2.2.4 May 20, 2025
2.0.1 Apr 30, 2025
1.1.6 Apr 30, 2025
0.0.1 Apr 29, 2025

#27 in Command line utilities

Download history 1149/week @ 2025-04-29 790/week @ 2025-05-06 137/week @ 2025-05-13

2,076 downloads per month

Apache-2.0 OR MIT

81KB
1.5K SLoC

🔌 Rona

A powerful CLI tool to streamline your Git workflow

Crates.io Version License Build Status

Overview

Rona is a command-line interface tool designed to enhance your Git workflow with powerful features and intuitive commands. It simplifies common Git operations and provides additional functionality for managing commits, files, and repository status.

Features

  • 🚀 Intelligent file staging with pattern exclusion
  • 📝 Structured commit message generation
  • 🔄 Streamlined push operations
  • 🎯 Interactive commit type selection
  • 🛠 Fish shell completion support

Installation

cargo install rona
rona init [editor] # The editor to use for commit messages [vim, zed] (default: nano)

Quick Start

  1. Add files excluding patterns:
rona -a "*.rs"  # Exclude all Rust files
  1. Generate commit message:
rona -g  # Opens interactive commit type selector
  1. Commit changes:
rona -c [ARGS] # Commits using message from commit_message.md
# Push changes to remote repository
rona -cp [ARGS] # here, the args will be passed to git commit

Command Reference

add-with-exclude (-a)

Add files to Git staging while excluding specified patterns.

rona add-with-exclude <pattern(s)>
# or
rona -a <pattern(s)>

Example:

rona -a "*.rs" "*.tmp"  # Exclude Rust and temporary files

commit (-c)

Commit changes using prepared message.

rona commit [extra args]
# or
rona -c [-p | --push] [extra args]

generate (-g)

Generate or update commit message template.

rona generate
# or
rona -g

Features:

  • Creates commit_message.md and .commitignore
  • Interactive commit type selection
  • Automatic file change tracking
  • Opens in default editor (set via EDITOR env variable)

init (-i)

Initialize Rona configuration.

rona init [editor] # The editor to use for commit messages [vim, zed] (default: nano)

list-status (-l)

Display repository status (primarily for shell completion).

rona list-status
# or
rona -l

push (-p)

Push committed changes to remote repository.

rona push [extra args]
# or
rona -p [extra args]

set-editor (-s)

Set the default editor for commit messages.

rona set-editor <editor> # The editor to use for commit messages [vim, zed], no default here

help (-h)

Display help information.

rona help
# or
rona -h

Shell Integration

Fish Shell Completion

Add the following to your Fish configuration:

source /path/to/rona/completions/rona.fish

Development

Requirements

  • Rust 2021 edition or later
  • Git 2.0 or later

Building from Source

git clone https://github.com/TomPlanche/rona.git
cd rona
cargo build --release

Contributing

Contributions are welcome! Please feel free to submit a Pull Request.

License

Licensed under either of:

at your option.

Support

For bugs, questions, and discussions please use the GitHub Issues.

Dependencies

~5–13MB
~150K SLoC