Nested Share Subfolder Commands
All the commands related to Nested Share Subfolder records and folders
Commands
With the introduction of Nested Share Subfolders with Role-Based Folder Permissions, we’ve rebuilt the vault’s folder, sharing and permissions model from the ground up, delivering a more flexible and scalable experience for every user and team.
During this transition, the new Nested Share Subfolder system will exist alongside the existing Classic folder system and permission model, with two distinct folder icons to help users easily differentiate between them.
Nested Share Subfolders is built on the Keeper v3 API. The commands listed below operate exclusively on Nested Share folders and records and use the nsf- prefix to keep them clearly separated from the classic vault commands.
Whether using the interactive shell, CLI or JSON config file, Keeper supports the following Nested Share Subfolder commands. Each command supports additional parameters and options.
To get help on a particular command, run:
help <command>
List Nested share folders and records
Show the details of a Nested share record or folder
Show metadata (title, type, version, revision) for one or more records
Create a Nested share folder
Rename or recolor a Nested share folder
Remove a Nested share folder and its entire contents
Create a Nested share record
Update an existing Nested share record
Remove (trash, permanently delete, or unlink) a Nested share record
Link a record into a Nested share folder
List or manage Nested share record shortcuts (records in 2+ folders)
Grant or revoke folder sharing
Grant, update, revoke, or transfer ownership of a record share
Bulk-update record sharing permissions for every record inside a folder
Transfer record ownership to another user
nsf-list command
Command: nsf-list
Detail: List Nested share folders and records cached locally. By default, both folders and records are shown. Use the --folders or --records flag to filter, and --format to control the output style.
Switches:
--folders show only folders
--records show only records
--format <{table, csv, json}> choose the format of the output
table— show the result in table format (default)csv— show the result in CSV formatjson— show the result in JSON format
--output <FILENAME> path to the resulting output file (ignored for table format)
Examples:
List every Nested share folder and record
List only Nested share folders
Show all Nested share records in JSON format
Export the full Nested share listing to a CSV file
nsf-get command
Command: nsf-get
Detail: Show the details of a Nested share record or folder by UID or title. The command first attempts to resolve the input as a folder and falls back to record resolution. For records it prints field values and per-user permissions; for folders it prints user/team permissions and any share administrators.
Parameters:
UID or title of a Nested share record or folder
Switches:
--format <{detail, json}> choose the format of the output
detail— human-readable report (default)json— machine-readable JSON
-v, --verbose show the full permission breakdown for each accessor (per-flag)
--unmask reveal masked field values (passwords, secrets, PINs). Output is sent to stdout only and is never written to log files.
Examples:
Show the details of a Nested share object (record or folder) by UID
Show the details of a Nested share folder by name
Show the details of a record in JSON format
Show the record details with masked fields revealed in plain text
Show the record details with the full per-flag permission breakdown
--unmask displays sensitive data (passwords, secrets) on the terminal. Make sure you are in a safe environment before using this flag.
nsf-record-details command
Command: nsf-record-details
Detail: Retrieve metadata (title, type, version, revision) for one or more Nested share records using the v3 API. Useful for quickly inspecting record attributes without dumping field values.
Parameters:
One or more record UIDs (or titles, which are resolved to UIDs)
Switches:
--format <{table, json}> choose the format of the output
table— human-readable text (default)json— JSON output
Examples:
Show metadata for a single record
Show metadata for multiple records in one call
Output record metadata as JSON
nsf-mkdir command
Command: nsf-mkdir
Detail: Create a new Nested share folder using the v3 API. The folder is created as a child of the current folder when the user is cd-ed into a Nested share folder; otherwise it is created at the Nested share folder root.
Parameters:
Folder name (use // to embed a literal / in the name; nested paths are not supported — nsf-mkdir creates exactly one folder per call).
Switches:
--color <{none, red, orange, yellow, green, blue, gray}> set the folder colour
--no-inherit do not inherit parent folder permissions (the new folder will start with no shares)
Examples:
Create a folder named "Engineering" under the current location
Create a blue-coloured folder named "Q1 Reports"
Create a folder that does not inherit parent folder permissions
Create a folder whose literal name contains a forward slash:
Side/Project
If a folder with the same name already exists in the same parent location, nsf-mkdir will not create a duplicate; it logs a warning and returns the existing folder UID.
nsf-rndir command
Command: nsf-rndir
Detail: Rename a Nested share folder, change its colour, or update its parent-permission inheritance setting. At least one of --name, --color, --inherit, or --no-inherit must be supplied.
Parameters:
Path or UID of an existing Nested share folder
Switches:
-n, --name <NAME> new folder name
--color <{none, red, orange, yellow, green, blue, gray}> set/change folder color
-q, --quiet suppress the post-rename confirmation message
Examples:
Rename a folder
Change a folder's colour by UID
Rename and recolour a folder in a single call
nsf-rmdir command
Command: nsf-rmdir
Detail: Remove one or more Nested share folders and their entire contents. The command always runs a preview first (showing the impact: sub-folders, records, affected users and teams) before asking for confirmation. Up to 100 folders may be removed per invocation.
Parameters:
One or more folder UID(s) or name(s)
Switches:
--operation, -o <{folder-trash, delete-permanent}> removal operation (default: folder-trash)
folder-trash— recoverable; folders go to the trashdelete-permanent— IRREVERSIBLE; folders and their contents are permanently destroyed
--force, -f skip the confirmation prompt and execute immediately after the preview
--dry-run run the preview step only; do not delete anything (mutually exclusive with --force)
--quiet, -q suppress per-folder detail; only show the summary
Examples:
Move the "Engineering" folder to the trash (with confirmation)
Trash a folder by UID without prompting
Trash multiple folders in a single call
Permanently delete a folder and all its contents (IRREVERSIBLE)
Preview the impact of removing a folder without actually deleting it
--operation delete-permanent cannot be undone. All sub-folders and records inside the targeted folder(s) will be permanently destroyed.
nsf-record-add command
Command: nsf-record-add
Detail: Create a new Nested share record. Mirrors the "classic" record-add command and supports all standard record types, custom record types, standard fields, and custom fields. Use --syntax-help for detailed examples of field specifications.
Parameters:
A space-separated list of field values using the standard field syntax: <FIELD_NAME>=<FIELD_VALUE>. See --syntax-help for full details.
Switches:
-t, --title <TITLE> record title (required)
-rt, --record-type <TYPE> record type (required); see the list of standard record types
-n, --notes <NOTES> record notes
--folder <FOLDER> folder name or UID to store the new record in (omit to place at the Nested share root)
-f, --force ignore warnings (e.g. unsupported attachment fields) and create the record anyway
--syntax-help display detailed information on field syntax and exit
Examples:
Create a login record in the "Engineering" folder with a generated password
Create an empty "classic" record at the Nested share Folder root
Show the field-syntax help and exit
File attachments are not yet supported in nsf-record-add. Use the classic record-add command if you need to attach files.
nsf-record-update command
Command: nsf-record-update
Detail: Update an existing Nested share record. Title, notes, record type, and individual fields can all be modified. Multiple records can be updated in a single invocation by supplying -r more than once.
Parameters:
A space-separated list of field values using the standard field syntax: <FIELD_NAME>=<FIELD_VALUE>.
Switches:
-r, --record <RECORD> record path or UID to update (required, repeatable)
-t, --title <TITLE> modify the record title
-rt, --record-type <TYPE> change the record type
-n, --notes <NOTES> append/modify the record notes
-f, --force ignore warnings
--syntax-help display detailed information on field syntax and exit
Examples:
Rename a record
Replace the password on a record (regenerate using
$GEN)Update notes on multiple records in one call
Show the field-syntax help
nsf-rm command
Command: nsf-rm
Detail: Remove one or more Nested share records. Always runs a preview first (showing the impact: folders, additional locations, affected users/teams) and asks for confirmation. Up to 500 records may be removed per invocation. Three removal operations are supported.
Parameters:
One or more record UID(s) or title(s)
Switches:
--folder <FOLDER> folder UID or name that provides the context for the removal (required when --operation unlink is used)
--operation, -o <{owner-trash, folder-trash, unlink}> removal operation (default: owner-trash)
owner-trash— only the owner deletes the record; it lands in the owner's trashfolder-trash— remove the record from the supplied folder context and trash itunlink— remove the record from a specific folder only; the record itself remains in other folders (requires--folder)
--force, -f skip the confirmation prompt and execute immediately after the preview
--dry-run run the preview only (mutually exclusive with --force)
Examples:
Move the record to the owner's trash (with confirmation)
Force-delete a record by title without prompting
Remove multiple records in one call
Unlink a record from the "Engineering" folder while leaving it in any other folders it appears in
Preview a removal without actually deleting
nsf-ln command
Command: nsf-ln
Detail: Link an existing Nested share record into a Nested share folder. The record will appear in both its original folder(s) and the destination folder (similar to a hard-link).
Parameters:
Two positional arguments: RECORD FOLDER
RECORD— record UID, title, or pathFOLDER— destination folder UID or name
Examples:
Link a record (by UID) into the "Engineering" folder
Link a record (by title) into the "Marketing" folder
Link a record into the Nested share root
nsf-shortcut command
Command: nsf-shortcut <subcommand>
Detail: List or manage Nested share record shortcuts. A "shortcut" exists when the same record is linked into more than one folder.
Sub-commands:
list <RECORD UID, FOLDER UID, or PATH>— show records that appear in 2+ folders, optionally filtered by record or folderkeep <RECORD> <FOLDER>— keep the record in exactly one folder; remove all other shortcuts
nsf-shortcut list
Switches:
--format <{table, csv, json}> choose the format of the output (default: table)
--output <FILENAME> file to write output results to
Examples:
Display every record that appears in more than one folder
Export the shortcut list to a CSV file
Show only the shortcuts for a specific record (by UID)
Show only the shortcut records that exist in the "Engineering" folder
nsf-shortcut keep
Switches:
-f, --force do not prompt before removing the extra shortcuts
Examples:
Keep "API Key" only in the "Engineering" folder; remove it from all other folders (with confirmation)
Keep a record only in the "Production" folder without prompting
Keep a record only in the current folder (when no folder is specified, the current folder is used; you must be
cd-ed into a Nested share folder)
nsf-shortcut keep only removes the links — the record itself is preserved in the folder you choose to keep it in.
nsf-share-folder command
Command: nsf-share-folder
Detail: Grant or revoke sharing on one or more Nested share folders. Supports user emails, team names/UIDs, and the special @existing recipient that expands to all users and teams currently on the folder (excluding the caller).
Parameters:
One or more folder paths or UIDs (positional, repeatable)
Switches:
-a, --action <{grant, remove}> share-folder action (default: grant). grant also updates existing shares.
-e, --email <USER> recipient — account email, team name, team UID, or @existing for all users and teams currently on the folder (repeatable)
-r, --role <ROLE> permission role (default: viewer). Required for grant. Allowed values:
viewershare-managercontent-managercontent-share-managerfull-manager
--expire-at <TIMESTAMP> share expiration as never or ISO datetime (e.g. 2027-01-01T00:00:00Z)
--expire-in <PERIOD> share expiration as never or a relative period (e.g. 30d, 6mo, 1y, 24h, 30mi)
Examples:
Grant viewer access to a single user
Grant content-manager access to multiple users in one call
Grant full-manager access to a team (by team name)
Grant viewer access that automatically expires in 30 days
Remove a single user from the folder
Remove every existing user and team from the folder (excluding the caller)
--expire-at and --expire-in are mutually exclusive.
nsf-share-record command
Command: nsf-share-record
Detail: Manage Nested share record sharing. Supports granting, updating, revoking, and transferring ownership. The record argument can be a record UID, a record title, or a folder (in which case all records inside the folder are processed; combine with -R for recursive descent).
Parameters:
A record path/UID or a folder path/UID (positional)
Switches:
-e, --email <EMAIL> recipient email (required, repeatable)
-a, --action <{grant, revoke, owner}> sharing action (default: grant)
grant— share the record (also updates existing shares)revoke— remove the shareowner— transfer record ownership (single recipient only)
-r, --role <ROLE> permission role; required for grant. Allowed values: viewer, share-manager, content-manager, content-share-manager, full-manager
-R, --recursive apply the command to every record within the folder and its sub-folders
--contacts-only only share with already-known contacts (refuses unknown email addresses unless --force is supplied)
-f, --force skip confirmation prompts (e.g. for --contacts-only confirmations)
--dry-run display the permission changes without committing them
--expire-at <EXPIRE_AT> share expiration as never or UTC datetime (e.g. 2027-01-01T00:00:00Z)
--expire-in <PERIOD> share expiration as never or a relative period (e.g. 30d, 6mo, 1y)
Examples:
Share a record with a single user as a viewer
Share a record with multiple users in one call
Share every record in the "Engineering" folder and its sub-folders with a single user
Share a record with an expiration of 30 days
Revoke a share
Transfer ownership of a record (you will lose access after the transfer completes)
Preview a share without committing the change
-a owner transfers record ownership — you will no longer have access to the record once the transfer is accepted. Only one recipient is allowed.
nsf-record-permission command
Command: nsf-record-permission
Detail: Bulk-update sharing permissions for every record in a Nested share folder. Useful for normalizing permissions across an entire folder (e.g. "make every share in the Production folder a viewer"). Permissions inherited from a parent shared folder are also handled — a fresh direct share is created to override an inherited row.
Parameters:
Folder path or folder UID (positional, optional — defaults to the Nested share folder root)
Switches:
-a, --action <{grant, revoke}> action to perform (required)
grant— set every applicable share to--rolerevoke— remove every applicable share (or only those matching--roleif supplied)
-r, --role <ROLE> role to grant, or filter to revoke. Allowed values: viewer, share-manager, content-manager, content-share-manager, full-manager
-R, --recursive apply the change to every record in the folder and its sub-folders
--dry-run display the permission changes without committing them
-f, --force apply changes without confirmation
Examples:
Set every record share in the "Engineering" folder to
viewerSet every record share in "Engineering" and its sub-folders to
content-managerRevoke every non-owner share on every record in "Engineering"
Revoke only the
viewershares on records in "Engineering"Preview the planned permission changes without committing them
Apply the change without confirmation
Shares inherited from a parent shared folder cannot be revoked at the record level — they must be removed from the parent shared folder instead. The command will list any such shares as skipped.
nsf-transfer-record command
Command: nsf-transfer-record
Detail: Transfer ownership of one or more Nested share records to another user. After a successful transfer, the original owner loses access to the record(s). For finer-grained control, see nsf-share-record -a owner.
Parameters:
Two positional arguments: RECORD_UIDS... NEW_OWNER_EMAIL
one or more record UIDs (or titles), followed by
the new owner's email address
Examples:
Transfer ownership of a record to another user
Transfer ownership of multiple records to the same new owner
After ownership is transferred you will no longer have access to the record. Make sure the new owner is correct before running this command.
Roles reference
Several Nested share sharing commands accept a --role option. The available roles are listed below in order of increasing privilege:
viewer
Read-only access to records
share-manager
Can manage who else has access (cannot edit content)
content-manager
Can edit record content (cannot manage shares)
content-share-manager
Can edit record content and manage shares
full-manager
Full control: edit, share, and delegate. Equivalent to a Share Administrator on the record/folder.
Operation reference
nsf-rm and nsf-rmdir accept an --operation flag that determines how the removal is performed:
owner-trash
nsf-rm (default)
Owner-only deletion — record goes to the owner's trash
folder-trash
nsf-rm, nsf-rmdir (default for folders)
Removes the record/folder from the supplied folder context and trashes it; recoverable from trash
unlink
nsf-rm
Removes the record from the specified folder only; the record itself stays in any other folders
delete-permanent
nsf-rmdir
IRREVERSIBLE — folder and all contents are permanently destroyed
Last updated

