| Crates.io | rkit |
| lib.rs | rkit |
| version | 0.1.12 |
| created_at | 2025-05-24 06:35:51.024299+00 |
| updated_at | 2025-06-07 08:53:59.10631+00 |
| description | Rust CLI Toolkit for Git Repo Management |
| homepage | |
| repository | https://github.com/imthor/rkit |
| max_upload_size | |
| id | 1687057 |
| size | 299,171 |
A minimal, high-performance CLI suite written in Rust for organizing, scanning, and inspecting Git repositories under a user-defined workspace.
cargo install rkit
clone: Smart Git clone wrapper that organizes repositories by domain and organizationls: High-performance Git repository scanner with:
view: View repository information and metadatarkit provides optional shell extensions that add useful functions and completions to your shell configuration.
Install the shell extension:
# For zsh users (recommended)
zsh < <(curl -sSL https://raw.githubusercontent.com/imthor/rkit/main/install.sh)
# For bash users
curl -sSL https://raw.githubusercontent.com/imthor/rkit/main/install.sh | bash
The script will:
After installation, either:
source ~/.zshrc (for Zsh) or source ~/.bashrc (for Bash)Install the shell extension:
curl -sSL https://raw.githubusercontent.com/imthor/rkit/main/install.fish | fish
The script will:
After installation, either:
source ~/.config/fish/config.fishAfter installing the shell extension, the following functions will be available:
cloneClone a repository using rkit.
clone <repository>
cdcChange directory to a repository using fuzzy search.
cdc [query] # Optional query to pre-filter the list
editOpen a repository in your default editor (VS Code) using fuzzy search.
edit [query] # Optional query to pre-filter the list
To remove the shell extension:
Open your shell config file:
~/.zshrc~/.bashrc~/.config/fish/config.fishRemove the section that starts with # rkit functions
Source your config file or restart your shell
The installation scripts create a backup of your config file before making any changes. The backup will be saved as:
~/.zshrc.bak or ~/.bashrc.bak~/.config/fish/config.fish.bakYou can restore your original configuration by copying the backup file back if needed.
The configuration file is located at:
~/.config/rkit/config.yaml%APPDATA%\rkit\config.yamlIt will be created automatically on first run with platform-specific default values.
The default configuration includes:
# Linux/macOS
project_root: ~/projects
rview:
- command: basename {REPO}
label: Repo
- command: git -C {REPO} -c color.ui=always rev-parse --abbrev-ref HEAD
label: Active Branch
- command: git -C {REPO} -c color.ui=always status
label: Status
- command: cat {REPO}/README.md
label: README
# Windows
project_root: %USERPROFILE%\projects
rview:
- command: powershell -Command "Split-Path -Leaf {REPO}"
label: Repo
- command: git -C {REPO} -c color.ui=always rev-parse --abbrev-ref HEAD
label: Active Branch
- command: git -C {REPO} -c color.ui=always status
label: Status
- command: type {REPO}\README.md
label: README
rkit clone https://github.com/imthor/rkit.git
This will clone the repository to ~/projects/github.com/imthor/rkit (or %USERPROFILE%\projects\github.com\username\repo on Windows).
rkit ls [--full] [--max-depth <depth>] [--follow-links] [--same-file-system] [--threads <num>] [--max-repos <num>] [--no-stop-at-git]
Lists all Git repositories found under the configured project root.
Options:
--full: Show absolute paths instead of relative paths--max-depth <depth>: Maximum depth to search for repositories [default: 10]--follow-links: Follow symbolic links [default: false]--same-file-system: Stay on the same filesystem [default: true]--threads <num>: Number of threads to use for searching [default: number of CPU cores]--max-repos <num>: Maximum number of repositories to find [default: no limit]--no-stop-at-git: Don't skip repositories that are inside other repositories [default: false]The command will:
--no-stop-at-git is used, it will find all repositories regardless of their location in the directory treeRUST_LOG=debug), it will display performance metrics including:
rkit view path/to/repo
Displays repository information based on configured commands. The command will:
# Build
cargo build
# Run tests
cargo test
# Run with debug output
RUST_LOG=debug cargo run -- ls
# Run with trace output
RUST_LOG=trace cargo run -- ls
The project uses structured logging with different verbosity levels:
info: Default level, shows basic operationsdebug: Shows detailed operation informationtrace: Shows all internal operationsMIT