| name | keeper-admin |
| description | Manage Keeper Vault, enterprise administration, PAM, and privileged access using Keeper Commander CLI (keeper). Use when the user needs to manage vault records interactively, run enterprise admin tasks (user/team/role management, SSO config, device approvals, compliance reporting), manage KSM Applications and Client Devices, configure password rotation, launch remote sessions (SSH, RDP, database), import/export data, or perform any administrative operation on Keeper. Also use when the user mentions 'keeper commander', 'keeper shell', 'keeper admin', asks about managing users/teams/roles/nodes in Keeper, needs to create KSM applications, or wants to automate Keeper admin tasks. If the user only needs to retrieve or inject secrets for an application, use the keeper-secrets skill instead. |
Keeper Commander CLI (keeper)
Commander is Keeper's full-featured admin CLI and terminal UI. Everything
available in the Keeper Vault UI and Admin Console can be done via Commander.
It authenticates as a user (not a machine application) and provides the full
breadth of vault, enterprise, and PAM operations.
Official documentation
- Commander CLI - overview, installation, and shell usage
- Secrets Manager (KSM) - creating KSM Applications and Client Devices that
ksm uses; runtime secret injection belongs in the keeper-secrets skill
When to Use Commander vs KSM
| Need | Tool |
|---|
| Enterprise admin (users, teams, roles, nodes) | keeper |
| Create KSM Applications and Client Devices | keeper |
| Password rotation setup/management | keeper |
| Launch remote sessions (SSH, RDP, DB) | keeper |
| Import/export vault data | keeper |
| Interactive vault browsing | keeper |
| Run as REST API service | keeper |
| Compliance reporting and audit | keeper |
| Retrieve secrets for an app at runtime | Use ksm - see keeper-secrets skill |
| Inject secrets into env vars / config files | Use ksm - see keeper-secrets skill |
Prerequisites
- Python 3.10+
- Install:
pip install keepercommander
- A Keeper account with appropriate admin permissions
- Tmux
Check installation: keeper version
Workflow
- Use
references/commander-commands.md for interacting with Keeper commander, Use --help for getting more information for the command.
- Verify the session is opened via interactive tmux session.
- Verify available binaries in related python environments:
- Confirm session or auth state before any secret read.
- Check login status using whoami, if not logged in, complete login process and then continue rest flow.
- ALWAYS ask the user inputs for REQUIRED fields, DONT GUESS REQUIRED fields.
- For any record management operations or record sharing operation, VERIFY if the record is a Classic record type or New record type.
- If a record or folder type is NEW or Nested Sub Folder the use nsf commands. Refer
references/nested-sub-folders.md for nsf commands.
- Search or inspect metadata first, then retrieve only the exact requested field, do not expose any sensitive data.
- Prefer secret injection or one-command environment scoping over writing secrets to disk.
- If syntax differs from expectation, fall back to
--help and Keeper docs immediately.
- ALWAYS ask confirmation from users for any delete operations.
REQUIRED tmux session
The shell tool uses a fresh TTY per command. To preserve Keeper interactive context, authentication state, and MFA prompts, run interactive Keeper commands or secrets manager command inside a dedicated tmux session.
Example pattern:
SOCKET_DIR="${TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/keeper-tmux-sockets}"
mkdir -p "$SOCKET_DIR"
SOCKET="$SOCKET_DIR/keeper-commander.sock"
SESSION="keeper-auth-$(date +%Y%m%d-%H%M%S)"
tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "keeper shell || keeper-commander shell || bash" Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -120
Then drive the session carefully:
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -l -- "whoami"
tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 Enter
tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -120
Kill the tmux session when the task is complete unless the user wants a persistent Keeper shell.
Authentication
keeper shell
keeper shell
My Vault> this-device register
My Vault> this-device persistent-login ON
My Vault> biometric register
Do not pass master passwords, API tokens, or vault field values on the command
line (e.g. --password), in URLs, or in generated scripts—they appear in process
listings and shell history. For automation, use interactive setup once, enable
persistent device login where appropriate, or follow the official Commander CLI
documentation for supported non-interactive patterns.
Vault Operations
Browse & Search
My Vault> list
My Vault> ls -l
My Vault> search "database"
My Vault> tree
My Vault> cd "Shared Folder"
My Vault> get <RECORD_UID>
Record Management
- While create a new record ALWAYS ask user "Use Classic Permission Model?"
- If user says Yes, then use classic commands, Otherwise use nsf or Nested sub folder commands.
- Classic workflows supports record-add command and new workflows support Nested Sub Folder Commands.
Classic Commands
My Vault> record-add --record-type login --title "New Record" \
--field login=admin
My Vault> record-update -r <RECORD_UID>
My Vault> rm <RECORD_UID>
My Vault> record-history <RECORD_UID>
Sharing Workflow
- ALWAYS get record details and check if the record or folder type is Classic or nested sub folder type.
- IF record or folder type is nested sub folder then use nsf commands from references. Otherwise use the classic commands.
- ALWAYS check if the given record or folder type is PamUser or PAM folder that stores PamUser type records, If YES then ask use if they want to auto rotate the password after a certain time or if access time provided is over.
- ALWAYS ask user for setting up a expiration time while sharing a record or folder.
- Use -h flag for the supporting flags.
- MUST ask users inputs for permission flag, Once confirmed, then only share a record, Otherwise DONT proceed ahead.
Classic Commands
My Vault> share-record -e user@company.com -a grant -u <RECORD_UID>
My Vault> share-folder -e user@company.com -a grant -u <FOLDER_UID>
Import / Export
My Vault> import --format json records.json
My Vault> export --format json --output vault_export.json
Enterprise Administration
These commands require enterprise admin privileges.
User Management
My Vault> enterprise-user --add user@company.com
My Vault> enterprise-user --invite user@company.com
My Vault> enterprise-user --delete user@company.com
My Vault> enterprise-user --lock user@company.com
My Vault> enterprise-user --unlock user@company.com
Team & Role Management
My Vault> enterprise-team --add "Engineering Team"
My Vault> enterprise-role --add-user user@company.com --role "Admin Role"
My Vault> enterprise-role --enforcement MASTER_PASSWORD_MINIMUM_LENGTH:12
Device Approvals
My Vault> device-approve
My Vault> device-approve --approve <DEVICE_ID>
My Vault> device-approve --deny <DEVICE_ID>
Reporting
My Vault> audit-report --format csv --output audit.csv
My Vault> compliance-report
Secrets Manager Administration
Commander is used to create and manage the KSM Applications and Client Devices
that the KSM CLI connects through.
My Vault> secrets-manager app create --name "Production App" \
--shared-folder <FOLDER_UID>
My Vault> secrets-manager app list
My Vault> secrets-manager client add --app <APP_UID> \
--name "Web Server 1" --unlock-ip
My Vault> secrets-manager client remove --app <APP_UID> \
--client "Web Server 1"
My Vault> secrets-manager share --app <APP_UID> --email admin2@company.com
The One-Time Access Token output from client add is configured on the target
machine using the keeper-setup skill (token via KSM_CLI_TOKEN or other
supported secure methods—not as a literal --token argument in shared
examples or chat).
KeeperPAM Operations
My Vault> pam gateway list
My Vault> pam configuration list
My Vault> connect <RECORD_UID>
My Vault> pam rotation list
My Vault> pam rotation start --record <RECORD_UID>
Service Mode (REST API)
Commander can run as a headless REST API for automation.
keeper --batch-mode api-server --port 8089
Automation (Batch Commands)
keeper --batch-mode --commands-file commands.txt
echo "list" | keeper --batch-mode --user admin@co.com
References
- Use
references/endpoint-privilege-management.md for endpoint privilege management commands like kepm, epm, pedm commands
- Use
references/enterprise-mgmt.md for enterprise management scenarios and commands.
- Use
references/pam-commands.md for privileged access management or KeeperPAM functionalities.
- Use
references/msp-management.md for commands specific to Managed Service Provider (MSP) tenants
Guardrails
- NEVER expose the user's master password in logs, chat, or code.
- NEVER print secret field values into chat unless explicitly requested for
a specific debugging purpose - and warn the user first.
- For destructive operations (delete user, delete record, modify role
enforcement), always confirm with the user before executing.
- If the user needs runtime secret injection for an application, redirect
them to the keeper-secrets skill and KSM CLI.
- Commander requires a full user login - it cannot be used in headless
environments without persistent login configured.
- ALWAYS ask confirmation from users for any DELETE operations.
For detailed command reference, read references/commander-commands.md. For keeper:// URIs and ksm exec / ksm interpolate, see Keeper notation and the keeper-secrets skill.