2 unstable releases
0.3.0 | Dec 25, 2024 |
---|---|
0.1.4 | Dec 15, 2024 |
#2228 in Command line utilities
403 downloads per month
1.5MB
2.5K
SLoC
Command Vault
Command Vault is a command manager for storing, and executing your complex commands. It provides a user-friendly interface to search, list, and delete commands, as well as tag commands for better organization.
Table of Contents
Features
- 🔍 Smart search through command history
- 🏷️ Tag commands for better organization
- 🐚 Cross-shell support (Bash, Zsh)
- 💾 Local SQLite database for fast searching
- 🔐 Safe command execution with validation
Usage
Add Commands
# Add a command with tags
command-vault add --tags git,deploy -- git push origin main
command-vault add -- echo "Hello, world!"
# Add a command with parameters
command-vault add "git commit -m @message:Commit message"
command-vault add "curl -X POST @url:API endpoint -d @data:JSON payload"
Parameters
You can add dynamic parameters to your commands using the @parameter
syntax:
- Simple parameter:
@name
Examples:
# Git commit with message parameter
git commit -m "@message"
When executing a command with parameters, Command Vault will prompt you to enter values for each parameter.
Search Commands
# Search commands
command-vault search "git push"
List Commands
# List recent commands
command-vault ls
Delete Commands
# Delete a command
command-vault delete <command-id>
Tag Commands
# Show tag command
command-vault tag # Show tag related commands
command-vault tag list # List tag related commands
Installation
From Releases
You can download the latest release for your platform from the releases page.
Linux
# Download the latest release (replace X.Y.Z with the version number)
curl -LO https://github.com/ozankasikci/command-vault/releases/download/v0.3.0/command-vault-macos-arm64.tar.gz
tar xzf command-vault-macos-arm64.tar.gz
# Make it executable
chmod +x command-vault-linux-amd64
# Move it to your PATH
sudo mv command-vault-linux-amd64 /usr/local/bin/command-vault
# Initialize shell integration (add to your .bashrc or .zshrc)
source "$(command-vault shell-init)"
macOS
# Download the latest release (replace X.Y.Z with the version number)
curl -LO https://github.com/ozankasikci/command-vault/releases/download/v0.3.0/command-vault-macos-arm64.tar.gz
tar xzf command-vault-macos-arm64.tar.gz
# Make it executable
chmod +x command-vault-macos-arm64
# Move it to your PATH
sudo mv command-vault-macos-arm64 /usr/local/bin/command-vault
# Initialize shell integration (add to your .bashrc or .zshrc)
source "$(command-vault shell-init)"
Windows
Download the Windows executable from the releases page and add it to your PATH.
Shell Integration
Command Vault needs to be integrated with your shell to automatically track commands. Add this to your shell's RC file:
# For Bash (~/.bashrc)
source "$(command-vault shell-init)"
# For Zsh (~/.zshrc)
source "$(command-vault shell-init)"
Building from Source
If you prefer to build from source, you'll need Rust installed on your system:
# Clone the repository
git clone https://github.com/yourusername/command-vault.git
cd command-vault
# Build the project
cargo build --release
# The binary will be available in target/release/command-vault
Add the following to your shell's configuration file (~/.bashrc
or ~/.zshrc
):
source "$(command-vault shell-init)"
Development
Running Tests
cargo test
Code Coverage
# Generate coverage report (requires cargo-tarpaulin)
./scripts/coverage.sh
# View the report in your browser
open coverage/tarpaulin-report.html
Shell Aliases
For easier access, you can add aliases to your shell configuration:
For Bash/Zsh (add to ~/.zshrc or ~/.bashrc)
# to use as cmdv:
alias cmdv='command-vault'
# or to use as cv:
alias cv='command-vault'
After adding the aliases, restart your shell or run:
source ~/.zshrc # for Zsh
source ~/.bashrc # for Bash
Now you can use shorter commands:
cv add 'echo Hello'
cmdv ls
License
This project is licensed under the MIT License - see the LICENSE file for details.
Dependencies
~40MB
~653K SLoC