A TypeScript CLI application for managing Rovo authentication profiles and executing authentication commands with encryption support.
- Features
- Installation
- Usage
- Configuration
- Development
- 5.1. Build
- 5.2. Development Mode
- 5.3. Project Structure
- Dependencies
- Command Reference
- 7.1. Main Commands
- 7.2. Profile Commands
- 7.3. Authentication Commands
- 7.4. Encryption Commands
- Secure Profile Management: Store and manage multiple authentication profiles with optional encryption
- Token Encryption: Protect your authentication tokens with AES-256 encryption
- Quick Authentication: Execute
acli rovodev auth logincommands with stored profiles - Profile Status Detection: Automatically detect which profile is currently active
- Config Storage: Creates a
.rovoswitchfolder in the user's home directory on first run - YAML Configuration: Stores configuration in YAML format with support for multiple profiles
- Interactive Commands: User-friendly prompts and confirmations for sensitive operations
- Clone or download this project
- Install dependencies:
npm install
- Build the project:
npm run build
- Install globally (optional):
npm install -g .
Execute authentication using a profile:
# Use specific profile (main command)
rovoswitch work
rovoswitch personalrovoswitch profile set work --email "work@company.com" --token "your-work-token"
rovoswitch profile set personal --email "personal@gmail.com" --token "your-personal-token"rovoswitch profile list
# or use the shortcut
rovoswitch listrovoswitch profile show work
# Show with decrypted token (if encrypted)
rovoswitch profile show work --decryptrovoswitch profile remove workrovoswitch auth login --profile workrovoswitch auth login --email "user@example.com" --token "your-token"Encrypt all existing profiles and enable encryption for new profiles:
rovoswitch crypt enableDecrypt all profiles and disable encryption:
rovoswitch crypt disablerovoswitch crypt statusThe application stores configuration in ~/.rovoswitch/config.yaml.
profiles:
work:
email: "work@company.com"
token: "your-work-token-here"
encrypted: false
personal:
email: "personal@gmail.com"
token: "your-personal-token-here"
encrypted: false
encrypted: falseprofiles:
work:
email: "work@company.com"
token: "U2FsdGVkX1+encrypted-token-data-here"
encrypted: true
personal:
email: "personal@gmail.com"
token: "U2FsdGVkX1+another-encrypted-token"
encrypted: true
encrypted: true- Token Encryption: When encryption is enabled, all tokens are encrypted using AES-256
- Password Protection: Encrypted profiles require a password for access
- Automatic Detection: The app warns when profiles are stored in plain text
- Consistent State: All profiles share the same encryption status
npm run buildnpm run devsrc/
├── index.ts # Main CLI entry point
├── commands/
│ ├── auth.ts # Authentication commands
│ ├── profile.ts # Profile management commands
│ └── crypt.ts # Encryption management commands
└── utils/
├── config.ts # Configuration management
├── crypto.ts # Encryption utilities
└── executor.ts # Command execution utilities
- commander: CLI framework for building command-line interfaces
- yaml: YAML parsing and stringification
- chalk: Terminal styling and colors
- crypto-js: Encryption and decryption utilities
- enquirer: Interactive prompts for user input
- typescript: TypeScript compiler
- ts-node: TypeScript execution for development
| Command | Description |
|---|---|
rovoswitch <profile> |
Quick login using specified profile |
rovoswitch list |
List all profiles with current status |
| Command | Description |
|---|---|
rovoswitch profile list |
List all available profiles |
rovoswitch profile set <name> --email <email> --token <token> |
Create or update a profile |
rovoswitch profile show <name> |
Show profile details |
rovoswitch profile show <name> --decrypt |
Show profile with decrypted token |
rovoswitch profile remove <name> |
Remove a profile (with confirmation) |
| Command | Description |
|---|---|
rovoswitch auth login --profile <name> |
Login using a specific profile |
rovoswitch auth login --email <email> --token <token> |
Login with direct credentials |
| Command | Description |
|---|---|
rovoswitch crypt enable |
Enable encryption for all profiles |
rovoswitch crypt disable |
Disable encryption for all profiles |
rovoswitch crypt status |
Show encryption status for all profiles |