id = "bitwarden-cli" name = "Bitwarden CLI" homepage = "https://bitwarden.com/help/cli/" executables = ["bw"] [dotfiles] # https://bitwarden.com/help/data-storage/#cli — Bitwarden documents the CLI # app-data directory as ~/.config/Bitwarden CLI on Linux, ~/Library/Application # Support/Bitwarden CLI on macOS, and %APPDATA%/Bitwarden CLI on Windows. The # directory contains encrypted vault and administrative data, so it is a # whole-directory credential store rather than syncable configuration. paths = [] secret = ["[appData]/Bitwarden CLI/"] side_effect = false [commands] format = 1 label = "Output options" description = "Global output options for bw. Use the subcommand tabs for login, unlock, sync, list, get and generate; master passwords and session keys are never typed into this form." quality = "ai-draft" base = "fig:bw" parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.field]] id = "pretty" label = "Pretty-print JSON" description = "Format output; JSON is indented with two spaces." type = "boolean" option = ["--pretty"] sources = ["fig"] [[commands.field]] id = "raw" label = "Raw output" description = "Return raw output instead of a descriptive message." type = "boolean" option = ["--raw"] sources = ["fig"] [[commands.field]] id = "response" label = "JSON response" type = "boolean" option = ["--response"] sources = ["fig"] [[commands.field]] id = "quiet" label = "Quiet" description = "Do not return anything to stdout." type = "boolean" option = ["--quiet"] sources = ["fig"] [[commands.field]] id = "nointeraction" label = "No prompts" description = "Do not prompt for interactive user input." type = "boolean" option = ["--nointeraction"] sources = ["fig"] [[commands.task]] id = "scripting" label = "Script-friendly output" fields = ["raw", "nointeraction"] required = [] set = { raw = [true], nointeraction = [true] } [[commands.group]] id = "basic" label = "Basic" fields = ["pretty", "raw", "response", "quiet", "nointeraction"] [[commands.subcommand]] path = ["login"] label = "Log in" description = "Log into a user account. The master password is entered at the prompt." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.subcommand.field]] id = "email" label = "Email" type = "string" position = 0 sources = ["fig"] [[commands.subcommand.field]] id = "sso" label = "Single sign-on" type = "boolean" option = ["--sso"] sources = ["fig"] [[commands.subcommand.field]] id = "apikey" label = "API key" type = "boolean" option = ["--apikey"] sources = ["fig"] [[commands.subcommand.field]] id = "method" label = "Two-step method" description = "Two-step login method." type = "string" option = ["--method"] suggestions = [{ value = "0", label = "Authenticator app" }, { value = "1", label = "Email" }, { value = "3", label = "YubiKey" }] sources = ["fig"] [[commands.subcommand.field]] id = "code" label = "Two-step code" type = "string" option = ["--code"] sources = ["fig"] [[commands.subcommand.field]] id = "check" label = "Check login status" type = "boolean" option = ["--check"] sources = ["fig"] [[commands.subcommand.task]] id = "login" label = "Log in with email" fields = ["email"] required = ["email"] [[commands.subcommand.task]] id = "sso" label = "Log in with SSO" fields = ["sso"] required = [] set = { sso = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["email", "sso", "apikey"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["method", "code", "check"] [[commands.subcommand]] path = ["unlock"] label = "Unlock vault" description = "Unlock the vault and print a new session key. The master password is entered at the prompt." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.subcommand.field]] id = "passwordenv" label = "Password variable" description = "Name of an environment variable holding your password." type = "string" option = ["--passwordenv"] sources = ["fig"] [[commands.subcommand.field]] id = "passwordfile" label = "Password file" description = "File with the password as its first line." type = "path" option = ["--passwordfile"] path = { kind = "file", role = "input" } sources = ["fig"] [[commands.subcommand.field]] id = "check" label = "Check lock status" type = "boolean" option = ["--check"] sources = ["fig"] [[commands.subcommand.task]] id = "unlock" label = "Unlock" fields = ["passwordenv", "passwordfile"] required = [] [[commands.subcommand.task]] id = "check" label = "Check lock status" fields = ["check"] required = [] set = { check = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["passwordenv", "passwordfile", "check"] [[commands.subcommand]] path = ["sync"] label = "Sync vault" description = "Pull the latest vault data from the server." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.subcommand.field]] id = "force" label = "Force full sync" type = "boolean" option = ["--force", "-f"] sources = ["fig"] [[commands.subcommand.field]] id = "last" label = "Show last sync" type = "boolean" option = ["--last"] sources = ["fig"] [[commands.subcommand.task]] id = "sync" label = "Sync" fields = ["force"] required = [] [[commands.subcommand.task]] id = "last" label = "Last sync time" fields = ["last"] required = [] set = { last = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["force", "last"] [[commands.subcommand]] path = ["list"] label = "List vault objects" description = "List items, folders, collections or organizations." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.subcommand.field]] id = "object" label = "Object type" type = "string" position = 0 suggestions = [{ value = "items", label = "items" }, { value = "folders", label = "folders" }, { value = "collections", label = "collections" }, { value = "org-collections", label = "org-collections" }, { value = "org-members", label = "org-members" }, { value = "organizations", label = "organizations" }] sources = ["fig"] [[commands.subcommand.field]] id = "search" label = "Search" type = "string" option = ["--search"] sources = ["fig"] [[commands.subcommand.field]] id = "url" label = "URL match" description = "Filter login items by URL." type = "url" option = ["--url"] sources = ["fig"] [[commands.subcommand.field]] id = "folderid" label = "Folder ID" type = "string" option = ["--folderid"] sources = ["fig"] [[commands.subcommand.field]] id = "collectionid" label = "Collection ID" type = "string" option = ["--collectionid"] sources = ["fig"] [[commands.subcommand.field]] id = "organizationid" label = "Organization ID" type = "string" option = ["--organizationid"] sources = ["fig"] [[commands.subcommand.field]] id = "trash" label = "Items in trash" type = "boolean" option = ["--trash"] sources = ["fig"] [[commands.subcommand.task]] id = "items" label = "Search items" fields = ["object", "search"] required = ["object"] set = { object = ["items"] } [[commands.subcommand.task]] id = "folders" label = "List folders" fields = ["object"] required = ["object"] set = { object = ["folders"] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["object", "search", "url"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["folderid", "collectionid", "organizationid", "trash"] [[commands.subcommand]] path = ["get"] label = "Get an object" description = "Print one object from the vault. Output includes secrets; check who can see your screen." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.subcommand.field]] id = "object" label = "Object type" type = "string" position = 0 suggestions = [{ value = "item", label = "item" }, { value = "username", label = "username" }, { value = "password", label = "password" }, { value = "uri", label = "uri" }, { value = "totp", label = "totp" }, { value = "exposed", label = "exposed" }, { value = "folder", label = "folder" }, { value = "collection", label = "collection" }] sources = ["fig"] [[commands.subcommand.field]] id = "id" label = "Search term or ID" type = "string" position = 1 sources = ["fig"] [[commands.subcommand.field]] id = "organizationid" label = "Organization ID" type = "string" option = ["--organizationid"] sources = ["fig"] [[commands.subcommand.task]] id = "totp" label = "Get a TOTP code" fields = ["id"] required = ["id"] set = { object = ["totp"] } lock = ["object"] [[commands.subcommand.task]] id = "username" label = "Get a username" fields = ["id"] required = ["id"] set = { object = ["username"] } lock = ["object"] [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["object", "id"] [[commands.subcommand.group]] id = "advanced" label = "Advanced" fields = ["organizationid"] [[commands.subcommand]] path = ["generate"] label = "Generate password" description = "Generate a password. Passphrase mode is left out." parser = { end_of_options = "--", interleave = "permute", long_equals = true, short_attached = true, short_bundles = false } [[commands.subcommand.source]] id = "fig" kind = "completion" url = "https://github.com/withfig/autocomplete/blob/master/src/bw.ts" license = "MIT" [[commands.subcommand.field]] id = "length" label = "Length" type = "integer" option = ["--length"] sources = ["fig"] [[commands.subcommand.field]] id = "uppercase" label = "Uppercase" type = "boolean" option = ["--uppercase", "-u"] sources = ["fig"] [[commands.subcommand.field]] id = "lowercase" label = "Lowercase" type = "boolean" option = ["--lowercase", "-l"] sources = ["fig"] [[commands.subcommand.field]] id = "number" label = "Numbers" type = "boolean" option = ["--number", "-n"] sources = ["fig"] [[commands.subcommand.field]] id = "special" label = "Special characters" type = "boolean" option = ["--special", "-s"] sources = ["fig"] [[commands.subcommand.task]] id = "strong" label = "24 characters, all classes" fields = ["length", "uppercase", "lowercase", "number", "special"] required = [] set = { length = [24], uppercase = [true], lowercase = [true], number = [true], special = [true] } [[commands.subcommand.group]] id = "basic" label = "Basic" fields = ["length", "uppercase", "lowercase", "number", "special"]