Record Commands
This page gives information related to record commands
Overview
This section lists all the commands in Keeper’s Commander (CLI) that are related to manipulating records in the vault. “Record commands” in this context are things like record add, edit, get etc. The commands cover creating, viewing, editing, organizing, and managing these records and related attachments.
The following commands are currently supported by SDK
Along with record specific commands, SDK also supports record attachment functionalities. These can be found here. These include
Record Add Command
This command is used to add records to Keeper Vault. The command supports all record types, custom types, standard fields and custom fields.
DotNet CLI
Command : add-record
Parameters:
-t, --type
Record type (login, bankAccount, address, etc.)
--title
Record title
Options:
--folder
Folder name or UID where record will be created
-g, --generate
Generate random password
--self-destruct
Auto-delete after time period (5m, 2h, 1d, etc.)
Record Fields:
Add fields using fieldname=value format:
login=username # Username/login field
password=secret123 # Password field
url=https://example.com # URL field
notes="Additional info" # Notes fieldExample:
My Vault> add-record --folder="Example Folder" --type=login --title="Login Credentials" --generate login=test_user
Record created: record_uidDotNet SDK
Function:
Task<KeeperRecord> CreateRecord(KeeperRecord record, string folderUid = null);Arguments:
record
KeeperRecord
Yes
Record data of type KeeperRecord containing all record information
folderUid
string
No
UID of folder in which to create the record (default: null = root folder)
Returns:
Task<KeeperRecord> - A task returning the created KeeperRecord with assigned UID
Example usage: can be found here
PowerCommander
Command : Add-KeeperRecord
Aliases: kadd
Parameters:
-RecordType
Specifies the record type (default: login)
-Title
Title of the record
Flags:
-Folder
UID of the folder where the record will be created
-GeneratePassword
Generates a new password and stores it in the created record
-Notes
Add notes to the record
-SelfDestruct
Timeout for the shared record URL (format: m, h, or d. Max: 180 days/6 months). Record disappears 5 minutes after viewing
Example:
PS > Add-KeeperRecord -RecordType login -Folder folder_uid -Title "Login Crendentials PowerShell" -GeneratePassword login=<username>
Record created: record_uid
PS > kadd -RecordType login -Folder folder_uid -Title "Login Crendentials PowerShell" -GeneratePassword login=<username>
Record created: record_uidUsage example samples can be found here
Python CLI
Command: record-add
Parameters:
-t --title Title of the record (required)
-n --notes Record Notes
-rt --record-type Record type (required)
-f --folder Folder in which record is to be added
--self-destruct Timeout of the share record url. Set in m, h or d. Max 180days (6 months). Record disappears in 5mins after viewing
-f --force Ignore warnings and skip prompts
fields <field_type>=<value> List of fields with their values
Example:
My vault> record-add --title='New Record' --notes='Create self destructing record' --record-type='Login' --folder='Record folder UID' --self-destruct=180d login=<username> password=<password> url=https://keepersecurity.com/vault/login
Record self-destructs on 01/07/2025 00:00:00 or after being viewed once. Once the link is opened the recipient will have 5 minutes to view the record.
https://keepersecurity.com/vault/share#XX1X1XXXX_00_00x00X0xxx00Xx_X0xXXX-x0X0X0xxPython SDK
Function: add_record_to_folder
vault = keepersdk.vault.vault_online.VaultOnline #initialize upon login
#Create record object based on record type
if record_type in ('legacy', 'general'):
record = vault_record.PasswordRecord
else:
record = vault_record.TypedRecord
#Assign field values based on fields and record type
set_fields(record, fields)
record.title = title
record.notes = notes
if attachments:
keepersdk.vault.attachment.upload_attachments(vault, record, attachments)
record_uid = keepersdk.vault.record_management.add_record_to_folder(vault, record, folder_uid)Record Update Command
This command is used to update existing records in Keeper Vault.
DotNet CLI
Command: update-record
Parameters:
record
The path or UID of the record to update
Options:
--title
Updates the title of the record
-t, --type
Record type (typed records only)
-g, --generate
Generates a random password and updates the existing record password field (Default: false)
--help
Display help screen
--version
Display version information
fields
Record fields to add/update in format fieldname=value
Example:
My Vault> update-record record_uid --type=login --title="Login Credentials" --generate login
=test_usersDotNet SDK
Functions:
Task<KeeperRecord> UpdateRecord(KeeperRecord record, bool skipExtra = true);Arguments:
record
KeeperRecord
Yes
Record object with updated data (must have valid UID)
skipExtra
bool
No
Skip updating file attachment information (default: true)
Returns:
Task<KeeperRecord> - A task returning the updated KeeperRecord
Example:
// Load existing record
var record = await vault.LoadRecord("ABC123XYZ456");
// Update as PasswordRecord
if (record is PasswordRecord passwordRecord)
{
passwordRecord.Password = "NewSecurePassword123!";
passwordRecord.Notes = "Password updated on " + DateTime.Now.ToString();
// Update the record
var updatedRecord = await vault.UpdateRecord(passwordRecord);
Console.WriteLine($"Record updated: {updatedRecord.Title}");
}Approach 2:
If multiple records are to be updated at once, then all of them can be updated
Function:
Task<IList<RecordUpdateStatus>> UpdateRecords(IEnumerable<KeeperRecord> records);Returns:
Task<IList<RecordUpdateStatus>> - A task returning a list of update statuses for each record
RecordUpdateStatus Properties:
RecordUid
string
UID of the record
Status
string
Update status: "success" or error message
Message
string
Additional status message or error details
Example:
// Update multiple records at once
var recordsToUpdate = new List<KeeperRecord>();
var record1 = await vault.LoadRecord("ABC123") as PasswordRecord;
record1.Password = "NewPassword1!";
recordsToUpdate.Add(record1);
var record2 = await vault.LoadRecord("DEF456") as PasswordRecord;
record2.Password = "NewPassword2!";
recordsToUpdate.Add(record2);
var record3 = await vault.LoadRecord("GHI789") as PasswordRecord;
record3.Password = "NewPassword3!";
recordsToUpdate.Add(record3);
var statuses = await vault.UpdateRecords(recordsToUpdate);
foreach (var status in statuses)
{
if (status.Status == "success")
{
Console.WriteLine($"✓ Record {status.RecordUid} updated successfully");
}
else
{
Console.WriteLine($"✗ Record {status.RecordUid} failed: {status.Message}");
}
}PowerCommander
Command: Add-KeeperRecord
Aliases: kadd
Parameters:
-Uid: Record Uid of the record to be updated
Flags:
-GeneratePassword
Generate and update a new password for the record
-Title
Updated title of the record
-Notes
Update notes for the record
-Verbose
Display detailed operation information
-Debug
Display debugging information during execution
-ErrorAction
Specify how to respond to errors (Continue, Stop, SilentlyContinue, Ignore)
-WhatIf
Show what would happen if the cmdlet runs without actually executing
-Confirm
Prompt for confirmation before executing the command
Requirement:
This command updates record in current folder. so first change current directory to directory on which you want to create the folder. this can be done using Set-KeeperFolder command here
Example:
PS > Add-KeeperRecord -Uid "record_uid" -Title "Updated Title" [email protected]
Record updated: record_uid
UID Type Title Info
--- ---- ----- ----
record_uid login Updated Title [email protected]
PS > kadd -Uid "record_uid" -Title "Updated Title" [email protected]
Record updated: record_uid
UID Type Title Info
--- ---- ----- ----
record_uid login Updated Title [email protected]Python CLI
Command: record-update
Parameters:
-t --title Modify record title (required)
-rt --record-type Modify record type (required)
-n --notes Append/modify notes
-r --record UID or path to be modified (required)
fields <field type>=<value> List of fields with their values
Options:
-f --force Ignore warnings
Example:
My Vault> record-update --record='record_uid' --title='New Record2' -f -rt='general' -n='Updated record through CLI' login='user123' passwords='new_password' url=https://keepersecurity.comPython SDK
Function: update_record
Example:
from keepersdk.vault import record_management, vault_record
vault = keepersdk.vault.vault_online.VaultOnline #initialize upon login
record = vault.vault_data.load_record(record_uid=uid)
if not isinstance(record, vault_record.PasswordRecord | vault_record.TypedRecord):
raise ValueError('Record cannot be updated')
#Assign field values based on fields and record type
set_fields(record, fields)
if title:
record.title = title
if notes:
record.notes = notes
if attachments:
keepersdk.vault.attaachment.upload_attachments(vault, record, attachments)
record_management.update_record(vault, record)Record Delete Command
Use this command to delete multiple records from your personal vault folders. The delete record will exist in the owner's vault and if all record instances are deleted, it remains in the trash can of owner's vault
DotNet CLI
Command: rm
Flags:
--help: Display this help screen.--version: Display version information.record title, uid, or pattern: The UID/Title of the folder which will be deleted.
Example:
My Vault> rm record_uid
1 Record(s) will be removed from shared folders. Access to these records will no longer be available to members of these shared folders.
Note: If the last reference to a record is removed, the record can be found in the owner's trash can. If the trash can is then emptied, the record is no longer recoverable.
Type "yes" to confirm, <Enter> to cancel
> yesDotNet SDK
Function: DeleteRecords
Task DeleteRecords(RecordPath[] records);Arguments:
records - an array of record paths.
Exceptions:
Authentication.KeeperApiExceptionPowerCommander
Command: Remove-KeeperRecord
Aliases: kdel
Parameters:
Name- Record name to delete
Examples:
PS > Remove-KeeperRecord -Name "abc123xyz"
PS > kdel "RecordUID1", "RecordUID2"Python CLI
Command: rm
Parameters:
recordsUid for records to be deleted (required)
Options:
-f--forceDelete without prompts
Example:
My Vault> rm record_uid
1 Record(s) will be removed from your personal folder.
Note: If the last reference to a folder is removed, it can be found in the owners trash can. If the trash can is then emptied, the record is no longer recoverable. (y/n): y
Python SDK
Function: delete_vault_objects
Example:
record_management.delete_vault_objects(
vault=context.vault,
vault_objects=record_uids, #str
confirm=confirm_fn #Optional - send a callable function for confirm deletion
)List Command
This command displays a list of all records available in Keeper Vault in a tabular format. Each row contains Record UID, title, type, description and whether the record is shared with other users.
DotNet CLI
Command: search
Parameters:
argument 1: pattern to match in search (Required).
Flags:
--verbose: show all data--limit: number of records to show
Example:
My Vault> search demo
# Record UID Title Type Info
--- ---------------------- ------------------------- ----- ---------------------------------------------
1 record_uid Demo Record 1 login [email protected] (at) https://demo.acmecorp.com
2 record_uid DemoRecordForWeakPassword login [email protected]
First 2 found records are shown.DotNet SDK
Function: vault.KeeperRecords
To get similar functionality, we need to get records from Keeper Records list from vault context
vault.KeeperRecords
.Where(x => options.Verbose || x.Version == 2 || x.Version == 3)Power Commander
In PowerCommander, users may need to run various list commands to obtain details about different types.
Example:
Get-KeeperEnterpriseTeamUserorketu: Get a list of enterprise users for teamGet-KeeperEnterpriseRoleUsersorkeru: Get a list of enterprise users for role.Get-KeeperEnterpriseRoleTeamsorkert: Get a list of enterprise teams for roleGet-KeeperBreachWatchListorkbw: List passwords which are breached based on breachwatch.
Python CLI
Command: list
Alias:l
Options:
-t --type Used to list records of certain types. Can be repeated by appending
-v --verbose Used to display long titles
--format Table, csv, json
--output Path to output file
search_text List criteria
Example:
My Vault> list
# Record UID Type Title Description Shared
--- ---------------------- ------- ------------------------------- ----------------------------------------- --------
1 record_uid login abc [email protected] TruePython SDK
Function: find_records
Example:
records = [x for x in vault.vault_data.find_records(criteria=Optional[str], record_type=Optional[Union[str, Iterable[str]]], record_version=Optional[Union[int, Iterable[int]]])]Note:
criteria: Text to be present in the recordrecord_types: Return record of given record typesrecord_version: Return record of given record version
Get Record Command
This command is used specifically for fetching records. The get command in DotNet and Python SDKs is listed under miscellaneous commands, which fetches record, team, folder and share folder.
DotNet CLI
Command: get
Parameters:
uid: Uid of Record or Shared folder or Folder
Example:
My Vault> get record_uid
Record UID: record_uid
Type: login
Title: Login Record
Notes:
$passkey:
$login: [email protected]
$password: random_password
$url:
$fileRef:
Last Modified: Wednesday, August 13, 2025 12:04:28 PM
User Shares:
[email protected] Can Edit
[email protected] Owner
Shared Folders:
New Test Folder Read Only DotNet SDK
The current implementation of the command in dotnet cli follows searching of the given UID among different categories
vault.TryGetKeeperRecord(uid, out var record)If UID is not found in record, then we move ahead to searching for UID among folders
vault.TryGetSharedFolder(uid, out var sf)If UID is not found in shared folder, then we check folders
vault.TryGetFolder(uid, out var fPower Commander
Command: Get-KeeperRecord
Aliases: kr
Parameters:
Uid: returns record with matching Uid
Flags:
Filter: Matches record content with what is given and returns matching ones
Examples:
# Get specific record
PS > Get-KeeperRecord -Uid "abc123xyz"
PS > kr -Uid "abc123xyz"
# Get all records
PS > Get-KeeperRecord
PS > kr
# Search records
PS > Get-KeeperRecord -Filter "gmail"
PS > kr -Filter "password"Python CLI
Command: get <UID>
Parameters:
uidUID or title to search for (optional when using -f, -t, or -r flags)-f,--folderFolder UID or title to search for-t,--teamTeam UID or title to search for-r,--recordRecord UID or title to search for
Options:
--format Supported display types - json, details, fields or password
--unmask Show sensitive data in output such as passwords
--legacy Show typed records as legacy
Example:
My Vault> get record_uid
UID: record_uid
Type: login
Title: test
login: 134234
password: ********
url: https://email.com
User Permissions:
User: [email protected]
Shareable: Yes
Read-Only: No
Shared Folder Permissions:
Shared Folder UID: shared_folder_uid
Share Admins:
[email protected]Python SDK
Function: load_record
Example:
record = vault.vault_data.load_record(record_uid=uid)The load_record returns the record details. There are 4 types of records:
PasswordRecord- legacy or generalTypedRecordFileRecordApplicationRecord
These classes are defined in keepersdk.vault.vault_record
Record History Command
This command is used to list (default action) revisions or changes in a record, view a particular revision, see differences in between revision and restore old revisions in a record. Here revision can be equated to a change version for a specific record
DotNet CLI
Command: record-history
Parameters:
recordUid: UID of the record whose history has to be searched.
Example:
My Vault> record-history UTgy0U90whWp78sFAcsav
Version Modification Date Username Changed
------- ---------------------- ----------------------------- ---------------
V.2 9/30/2025 1:00:20 PM [email protected] Login, Password
V.1 12/19/2024 12:23:45 PM [email protected] DotNet SDK
Functions:GetRecordHistory
public async Task<RecordHistory[]> GetRecordHistory(string recordUid)Arguments:
recordUid : UID of the record whose history has to be shown
Python CLI
Command: record-history
Parameters:
--format Table, csv, Json
--output Path to resulting output file (ignored for "table" format)
-a --action Supported actions are list, diff, view, restore
-r, --revision Revision of the record to be shown or restored to
record Record UID or path (required)
Options:
-v,--verboseShow Verbose output
Example:
My Vault> record-history -a='list' record_uid
Version Modified By Time Modified
--------- ------------------------------- -------------------
Current [email protected] 2025-09-30 18:36:58
V.5 [email protected] 2025-09-26 18:00:27
V.4 [email protected] 2025-09-24 11:51:50
V.3 [email protected] 2024-12-30 12:21:59
V.2 [email protected] 2024-12-02 12:39:20
V.1 [email protected] 2024-12-02 12:16:15Clipboard Copy Command
This command retrieves data from a record (password, login, TOTP, custom fields) and outputs it to various destinations including clipboard, stdout, or environment variables.
This command is also aliased as find-password
DotNet CLI
Command: clipboard-copy
Alias: cc, find-password
Flags:
record: Record path or UID to retrieve data from--username: Match login name when multiple records exist with the same name--output: Output destination - values:clipboard(default),stdout,stdouthidden,variable--name: Variable name when output is set tovariable--copy-uid: Output UID instead of password-l,--login: Output login name instead of password-t,--totp: Output TOTP code instead of password--field: Output specific custom field (usefield:propertyfor nested values)-r,--revision: Use specific record revision
Examples:
MyVault> clipboard-copy myrecord
MyVault> cc myrecord --output stdout
MyVault> find-password myrecord --login
MyVault> clipboard-copy myrecord --totp
MyVault> clipboard-copy myrecord --field notes
MyVault> clipboard-copy myrecord --field phone:number
MyVault> clipboard-copy myrecord --output variable --name MY_PASSWORD
MyVault> clipboard-copy myrecord --username [email protected]Find Duplicates Command
This command searches for duplicate records in your vault based on various matching criteria. It can display duplicates or automatically merge/remove them.
DotNet CLI
Command: find-duplicates
Flags:
--title: Match duplicates by title--login: Match duplicates by login--password: Match duplicates by password--url: Match duplicates by URL (also displays URL in results)--shares: Match duplicates by share permissions--full: Match duplicates by all fields including custom fields-m,--merge: Consolidate duplicate records (removes all but first in each group)--ignore-shares-on-merge: Ignore share permissions when grouping duplicates to merge-f,--force: Delete duplicates without confirmation (valid only with--merge)-n,--dry-run: Simulate removing duplicates without actually removing them (valid only with--merge)-q,--quiet: Suppress screen output (valid only with--force)-s,--scope: Search scope - values:vault(default),enterprise-r,--refresh-data: Populate local cache with latest data (valid only with--scope=enterprise)
Examples:
MyVault> find-duplicates --title --login
MyVault> find-duplicates --password --url
MyVault> find-duplicates --full
MyVault> find-duplicates --title --login --merge
MyVault> find-duplicates --title --login --merge --force
MyVault> find-duplicates --title --login --merge --dry-run
MyVault> find-duplicates --shares --scope vaultLast updated
Was this helpful?

