CLI Overview
🚀 Kavach CLI is currently in active development!
We're working hard to make Kavach the best secret management platform. Your feedback, suggestions, and contributions are invaluable to us!
The Kavach CLI (kavach
) is the primary interface for interacting with the Kavach secret management platform. It provides a comprehensive set of commands for managing secrets, organizations, environments, and cloud provider integrations.
Installation
Download Pre-built Binary
# Linux (AMD64)
curl -L https://github.com/Gkemhcs/kavach-cli/releases/download/v0.1.0-beta.1/kavach-cli_Linux_x86_64.tar.gz -o kavach-cli_Linux_x86_64.tar.gz
tar -xzf kavach-cli_Linux_x86_64.tar.gz
chmod +x kavach
sudo mv kavach /usr/local/bin/
# Linux (ARM64)
curl -L https://github.com/Gkemhcs/kavach-cli/releases/download/v0.1.0-beta.1/kavach-cli_Linux_arm64.tar.gz -o kavach-cli_Linux_arm64.tar.gz
tar -xzf kavach-cli_Linux_arm64.tar.gz
chmod +x kavach
sudo mv kavach /usr/local/bin/
# macOS (AMD64)
curl -L https://github.com/Gkemhcs/kavach-cli/releases/download/v0.1.0-beta.1/kavach-cli_Darwin_x86_64.tar.gz -o kavach-cli_Darwin_x86_64.tar.gz
tar -xzf kavach-cli_Darwin_x86_64.tar.gz
chmod +x kavach
sudo mv kavach /usr/local/bin/
# macOS (ARM64/Apple Silicon)
curl -L https://github.com/Gkemhcs/kavach-cli/releases/download/v0.1.0-beta.1/kavach-cli_Darwin_arm64.tar.gz -o kavach-cli_Darwin_arm64.tar.gz
tar -xzf kavach-cli_Darwin_arm64.tar.gz
chmod +x kavach
sudo mv kavach /usr/local/bin/
# Windows (AMD64)
# Download from: https://github.com/Gkemhcs/kavach-cli/releases/download/v0.1.0-beta.1/kavach-cli_Windows_x86_64.zip
# Windows (ARM64)
# Download from: https://github.com/Gkemhcs/kavach-cli/releases/download/v0.1.0-beta.1/kavach-cli_Windows_arm64.zip
Build from Source
git clone https://github.com/Gkemhcs/kavach-cli.git
cd kavach-cli
go build -o kavach cmd/main.go
sudo mv kavach /usr/local/bin/
Authentication
Kavach CLI uses GitHub OAuth for authentication via device code flow:
# Login to Kavach
kavach login
# Logout from Kavach
kavach logout
Command Structure
The CLI follows a hierarchical command structure:
kavach [command] [subcommand] [flags]
Main Command Categories
Command | Description |
---|---|
login | Authenticate with GitHub OAuth |
logout | Clear authentication credentials |
org | Manage organizations |
group | Manage secret groups |
env | Manage environments |
secret | Manage secrets |
provider | Manage cloud provider integrations |
user-group | Manage user groups and permissions |
Global Flags
Flag | Description |
---|---|
--help, -h | Show help for command |
--version, -v | Show version information |
--debug | Enable debug logging |
--config | Path to config file |
Configuration
The CLI stores configuration in ~/.kavach/
:
~/.kavach/
├── credentials.json # Authentication tokens
├── config.yaml # CLI configuration
└── logs/ # Log files
Environment Variables
Variable | Description | Default |
---|---|---|
KAVACH_BACKEND_ENDPOINT | Backend API endpoint | https://kavach.gkem.cloud/api/v1/ |
KAVACH_DEBUG | Enable debug logging | false |
KAVACH_CONFIG_PATH | Path to config file | ~/.kavach/config.yaml |
Command Reference
Authentication Commands
kavach login
- Authenticate with GitHub OAuthkavach logout
- Clear authentication credentials
Organization Commands
kavach org create
- Create a new organizationkavach org list
- List all organizationskavach org activate
- Set active organizationkavach org delete
- Delete an organizationkavach org grant
- Grant permissions to users/groupskavach org revoke
- Revoke permissions from users/groups
Secret Group Commands
kavach group create
- Create a new secret groupkavach group list
- List all secret groupskavach group activate
- Set active secret groupkavach group delete
- Delete a secret groupkavach group grant
- Grant permissions to users/groupskavach group revoke
- Revoke permissions from users/groups
Environment Commands
kavach env create
- Create a new environmentkavach env list
- List all environmentskavach env activate
- Set active environmentkavach env delete
- Delete an environmentkavach env grant
- Grant permissions to users/groupskavach env revoke
- Revoke permissions from users/groups
Secret Commands
kavach secret add
- Add secret to staging areakavach secret commit
- Commit staged secretskavach secret push
- Push secrets to providerskavach secret list
- List secret versionskavach secret details
- Show secret version detailskavach secret export
- Export secrets to filekavach secret sync
- Sync secrets from providerskavach secret rollback
- Rollback to previous versionkavach secret diff
- Show differences between versions
Provider Commands
kavach provider configure
- Configure cloud providerkavach provider list
- List configured providerskavach provider show
- Show provider detailskavach provider update
- Update provider configurationkavach provider delete
- Delete provider configuration
User Group Commands
kavach user-group create
- Create a new user groupkavach user-group list
- List all user groupskavach user-group delete
- Delete a user groupkavach user-group members add
- Add member to groupkavach user-group members list
- List group memberskavach user-group members remove
- Remove member from group
Examples
Complete Workflow
# 1. Authenticate
kavach login
# 2. Create organization
kavach org create mycompany --description "My company"
# 3. Set active organization
kavach org activate mycompany
# 4. Create secret group
kavach group create backend --description "Backend application"
# 5. Set active secret group
kavach group activate backend
# 6. Create environment
kavach env create prod --description "Production environment"
# 7. Set active environment
kavach env activate prod
# 8. Add secrets
kavach secret add database-url --value "postgresql://user:pass@localhost:5432/db"
kavach secret add api-key --value "sk-1234567890abcdef"
# 9. Commit secrets
kavach secret commit --message "Add initial secrets"
# 10. Configure provider
kavach provider configure github --token "ghp_token" --owner "myorg" --repo "myrepo"
# 11. Sync secrets
kavach secret sync --provider github
Batch Operations
# Add multiple secrets at once
kavach secret add db-host --value "localhost"
kavach secret add db-port --value "5432"
kavach secret add db-name --value "myapp"
kavach secret add db-user --value "myuser"
kavach secret add db-password --value "mypassword"
# Commit all at once
kavach secret commit --message "Add database configuration"
Resource Hierarchy
Kavach follows a hierarchical resource structure:
Organization
├── Secret Groups
│ ├── Environments
│ │ └── Secrets
│ └── User Groups
└── User Groups
Context Management
Commands operate within the current context:
- Organization: Set with
kavach org activate
- Secret Group: Set with
kavach group activate
- Environment: Set with
kavach env activate
Troubleshooting
Common Issues
-
Authentication Failed
kavach logout
kavach login -
Permission Denied
kavach org list
kavach group list -
Provider Sync Failed
kavach provider show --provider github
Debug Mode
Enable debug logging for troubleshooting:
kavach --debug secret list
Next Steps
- 📖 Installation Guide - Detailed installation instructions
- 🔐 Authentication Guide - Authentication setup
- 🔐 Secret Commands - Secret management
- 🔄 Provider Commands - Cloud provider integration