#compdef murk
autoload -U is-at-least
_murk() {
typeset -A opt_args
typeset -a _arguments_options
local ret=1
if is-at-least 5.2; then
_arguments_options=(-s -S -C)
else
_arguments_options=(-s -C)
fi
local context curcontext="$curcontext" state line
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_murk_commands" \
"*::: :->murk" \
&& ret=0
case $state in
(murk)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-command-$line[1]:"
case $line[1] in
(init)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(env)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(restore)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename, for the restored-identity recipient check]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(recover)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
'--desc=[Description for this key]:DESC:_default' \
'--group=[Who can read it\: a group name, \`everyone\` (default), or \`me\`]:GROUP:_default' \
'*--tag=[Tag for grouping (repeatable)]:TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--scoped[Deprecated alias for \`--group me\`]' \
'-h[Print help]' \
'--help[Print help]' \
':key -- Secret key name:_default' \
&& ret=0
;;
(generate)
_arguments "${_arguments_options[@]}" : \
'--length=[Length in bytes (default 32)]:LENGTH:_default' \
'--desc=[Description for this key]:DESC:_default' \
'--group=[Who can read it\: a group name, \`everyone\` (default), or \`me\`]:GROUP:_default' \
'*--tag=[Tag for grouping (repeatable)]:TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--hex[Output as hex instead of base64]' \
'-h[Print help]' \
'--help[Print help]' \
':key -- Secret key name:_default' \
&& ret=0
;;
(rotate)
_arguments "${_arguments_options[@]}" : \
'--length=[Length in bytes for generated values (default 32)]:LENGTH:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--all[Rotate all secrets in the vault]' \
'--generate[Generate random values instead of prompting]' \
'--hex[Output generated values as hex instead of base64]' \
'(--all --generate --hex)--list[List keys needing rotation instead of rotating (exits 1 if any)]' \
'(--all --generate --hex)--json[Output the listing as JSON (with --list; always exits 0)]' \
'-h[Print help]' \
'--help[Print help]' \
'::key -- Secret key name (omit for --all):_default' \
&& ret=0
;;
(rm)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
':key -- Secret key name:_default' \
&& ret=0
;;
(get)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
':key -- Secret key name:_default' \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" : \
'--group=[Edit values for this group instead of shared secrets]:GROUP:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--scoped[Edit scoped overrides instead of shared secrets]' \
'-h[Print help]' \
'--help[Print help]' \
'::key -- Edit a single key (omit to edit all):_default' \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
'*--tag=[Filter by tag (repeatable)]:TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(export)
_arguments "${_arguments_options[@]}" : \
'*--tag=[Filter by tag (repeatable)]:TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(import)
_arguments "${_arguments_options[@]}" : \
'--group=[Assign imported secrets to this group (default\: everyone)]:GROUP:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--force[Overwrite existing secrets without prompting]' \
'-h[Print help]' \
'--help[Print help]' \
'::file -- Path to the .env file to import:_default' \
&& ret=0
;;
(describe)
_arguments "${_arguments_options[@]}" : \
'--example=[Example value]:EXAMPLE:_default' \
'*--tag=[Tag for grouping (repeatable, replaces existing tags)]:TAG:_default' \
'--rotate-every=[Rotation interval, e.g. \`90d\` or \`90\` (days); \`never\` clears it]:DAYS:_default' \
'--expires=[Hard expiry date, e.g. \`2026-09-01\`; \`never\` clears it]:DATE:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
':key -- Secret key name:_default' \
':description -- Description text:_default' \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
'*--tag=[Filter by tag (repeatable)]:TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(skeleton)
_arguments "${_arguments_options[@]}" : \
'-o+[Output file (prints to stdout if omitted)]:OUTPUT:_default' \
'--output=[Output file (prints to stdout if omitted)]:OUTPUT:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
'*--only=[Only inject these specific keys (repeatable)]:ONLY:_default' \
'*--tag=[Filter by tag (repeatable)]:TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--clean-env[Strip inherited environment (only murk secrets + PATH)]' \
'-h[Print help]' \
'--help[Print help]' \
'*::command -- Command and arguments to execute:_default' \
&& ret=0
;;
(agent)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_murk__subcmd__agent_commands" \
"*::: :->agent" \
&& ret=0
case $state in
(agent)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-agent-command-$line[1]:"
case $line[1] in
(plan)
_arguments "${_arguments_options[@]}" : \
'*--tag=[Filter by tag (repeatable)]:TAG:_default' \
'-o+[Output file (prints to stdout if omitted)]:OUTPUT:_default' \
'--output=[Output file (prints to stdout if omitted)]:OUTPUT:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
'*--only=[Inject these specific keys (required — agent mode fails closed)]:ONLY:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
'*::command -- Command and arguments to execute:_default' \
&& ret=0
;;
(grant)
_arguments "${_arguments_options[@]}" : \
'--name=[Grant name (used to revoke it later)]:NAME:_default' \
'*--only=[Keys this grant can read (required — fails closed)]:ONLY:_default' \
'--ttl=[Time to live, e.g. 30m, 2h, 7d (advisory — see \`agent revoke\`)]:TTL:_default' \
'--out=[Where to write the agent key\: a path, or \`-\` for stdout]:OUT:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
'--name=[Grant name (used to revoke it later)]:NAME:_default' \
'*--only=[Keys the agent can read (required — fails closed)]:ONLY:_default' \
'*--allow-tag=[Set the agent allow-list to these tags before granting (repeatable)]:ALLOW_TAG:_default' \
'--ttl=[Time to live, e.g. 30m, 2h, 7d (advisory — see \`agent revoke\`)]:TTL:_default' \
'--out=[Where to write the agent key\: a path, or \`-\` for stdout]:OUT:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--rotate[Rotate the keys it could read in the same session]' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Grant name:_default' \
&& ret=0
;;
(connect)
_arguments "${_arguments_options[@]}" : \
'*--only=[Keys the agent may read (required — fails closed)]:ONLY:_default' \
'*--allow-tag=[Set the agent allow-list to these tags before granting (repeatable)]:ALLOW_TAG:_default' \
'--ttl=[Grant time to live, e.g. 30m, 2h, 7d (advisory — see \`agent revoke\`)]:TTL:_default' \
'--name=[Grant name (used to disconnect/revoke it later)]:NAME:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--allow-exec[Also expose \`murk agent exec\` to the agent (adds --allow-exec)]' \
'-h[Print help]' \
'--help[Print help]' \
'::client -- Editor to configure; omit to auto-detect (claude, cursor, vscode, zed, gemini, omp, codex):_default' \
&& ret=0
;;
(disconnect)
_arguments "${_arguments_options[@]}" : \
'--name=[Grant name to revoke with --rotate]:NAME:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--rotate[Revoke the grant and rotate the keys it could read]' \
'-h[Print help]' \
'--help[Print help]' \
'::client -- Editor to disconnect; omit for every configured editor:_default' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__agent__subcmd__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-agent-help-command-$line[1]:"
case $line[1] in
(plan)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(grant)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(connect)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(disconnect)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(mcp)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--allow-exec[Enable the murk_exec tool (run commands with scoped secrets injected). Off by default\: it runs arbitrary commands as this user — the injected secrets are grant-scoped, but the command itself is not sandboxed]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(policy)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_murk__subcmd__policy_commands" \
"*::: :->policy" \
&& ret=0
case $state in
(policy)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-policy-command-$line[1]:"
case $line[1] in
(show)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(set)
_arguments "${_arguments_options[@]}" : \
'*--allow-tag=[Tag agents are allowed to receive (repeatable, required)]:ALLOW_TAG:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(clear)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__policy__subcmd__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-policy-help-command-$line[1]:"
case $line[1] in
(show)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(set)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(clear)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(circle)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
":: :_murk__subcmd__circle_commands" \
"*::: :->circle" \
&& ret=0
case $state in
(circle)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-circle-command-$line[1]:"
case $line[1] in
(authorize)
_arguments "${_arguments_options[@]}" : \
'--name=[Display name for this recipient]:NAME:_default' \
'--group=[Also add the new recipient to this group]:GROUP:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--force[Accept changed GitHub keys without confirmation]' \
'--allow-ssh-rsa[Allow ssh-rsa recipients (rejected by default — use ed25519)]' \
'-h[Print help]' \
'--help[Print help]' \
':pubkey -- Public key (age1...), ssh\:path, ssh\: (default ~/.ssh/id_ed25519.pub), or github\:username:_default' \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--rotate[Rotate the secrets they had access to in the same session]' \
'-h[Print help]' \
'--help[Print help]' \
':recipient -- Recipient pubkey or display name:_default' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__circle__subcmd__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-circle-help-command-$line[1]:"
case $line[1] in
(authorize)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(authorize)
_arguments "${_arguments_options[@]}" : \
'--name=[Display name for this recipient]:NAME:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'--force[Accept changed GitHub keys without confirmation]' \
'--allow-ssh-rsa[Allow ssh-rsa recipients (rejected by default — use ed25519)]' \
'-h[Print help]' \
'--help[Print help]' \
':pubkey -- Public key (age1...), ssh\:path, ssh\: (default ~/.ssh/id_ed25519.pub), or github\:username:_default' \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--rotate[Rotate the secrets they had access to in the same session]' \
'-h[Print help]' \
'--help[Print help]' \
':recipient -- Recipient pubkey or display name:_default' \
&& ret=0
;;
(group)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_murk__subcmd__group_commands" \
"*::: :->group" \
&& ret=0
case $state in
(group)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-group-command-$line[1]:"
case $line[1] in
(create)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Group name:_default' \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
'--member=[Recipient pubkey or display name to add]:MEMBER:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Group name:_default' \
&& ret=0
;;
(rm)
_arguments "${_arguments_options[@]}" : \
'--member=[Recipient pubkey or display name to remove (omit to delete the group)]:MEMBER:_default' \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
':name -- Group name:_default' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__group__subcmd__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-group-help-command-$line[1]:"
case $line[1] in
(create)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(rm)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(verify)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(doctor)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(scan)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'-h[Print help]' \
'--help[Print help]' \
'*::paths -- Files or directories to scan (defaults to current directory):_default' \
&& ret=0
;;
(diff)
_arguments "${_arguments_options[@]}" : \
'--vault=[Vault filename]:VAULT:_default' \
'--show-values[Show actual values (not just key names)]' \
'--json[Output as JSON]' \
'-h[Print help]' \
'--help[Print help]' \
'::git_ref -- Git ref to compare against:_default' \
&& ret=0
;;
(setup-merge-driver)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
&& ret=0
;;
(merge-driver)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':base -- Path to base version (%O):_default' \
':ours -- Path to ours version (%A) — result is written here:_default' \
':theirs -- Path to theirs version (%B):_default' \
&& ret=0
;;
(completion)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
":: :_murk__subcmd__completion_commands" \
"*::: :->completion" \
&& ret=0
case $state in
(completion)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-completion-command-$line[1]:"
case $line[1] in
(generate)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':shell -- Shell to generate completions for:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(install)
_arguments "${_arguments_options[@]}" : \
'-h[Print help]' \
'--help[Print help]' \
':shell -- Shell to install completions for:(bash elvish fish powershell zsh)' \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__completion__subcmd__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-completion-help-command-$line[1]:"
case $line[1] in
(generate)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(install)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
;;
(help)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__help_commands" \
"*::: :->help" \
&& ret=0
case $state in
(help)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-help-command-$line[1]:"
case $line[1] in
(init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(env)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(restore)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(recover)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(generate)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(rotate)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(rm)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(get)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(edit)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(export)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(import)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(describe)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(info)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(skeleton)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(agent)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__help__subcmd__agent_commands" \
"*::: :->agent" \
&& ret=0
case $state in
(agent)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-help-agent-command-$line[1]:"
case $line[1] in
(plan)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(exec)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(grant)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(init)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(connect)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(disconnect)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(mcp)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(policy)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__help__subcmd__policy_commands" \
"*::: :->policy" \
&& ret=0
case $state in
(policy)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-help-policy-command-$line[1]:"
case $line[1] in
(show)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(set)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(clear)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(circle)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__help__subcmd__circle_commands" \
"*::: :->circle" \
&& ret=0
case $state in
(circle)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-help-circle-command-$line[1]:"
case $line[1] in
(authorize)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(authorize)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(revoke)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(group)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__help__subcmd__group_commands" \
"*::: :->group" \
&& ret=0
case $state in
(group)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-help-group-command-$line[1]:"
case $line[1] in
(create)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(ls)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(add)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(rm)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(verify)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(doctor)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(scan)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(diff)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(setup-merge-driver)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(merge-driver)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(completion)
_arguments "${_arguments_options[@]}" : \
":: :_murk__subcmd__help__subcmd__completion_commands" \
"*::: :->completion" \
&& ret=0
case $state in
(completion)
words=($line[1] "${words[@]}")
(( CURRENT += 1 ))
curcontext="${curcontext%:*:*}:murk-help-completion-command-$line[1]:"
case $line[1] in
(generate)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
(install)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
(help)
_arguments "${_arguments_options[@]}" : \
&& ret=0
;;
esac
;;
esac
;;
esac
;;
esac
}
(( $+functions[_murk_commands] )) ||
_murk_commands() {
local commands; commands=(
'init:Initialize a new vault and generate a keypair' \
'env:Write a .envrc for direnv integration' \
'restore:Restore MURK_KEY from a BIP39 recovery phrase' \
'recover:Re-derive recovery phrase from current MURK_KEY' \
'add:Add or update a secret' \
'generate:Generate a random secret and store it' \
'rotate:Rotate secrets with new values' \
'rm:Remove a secret' \
'get:Get a single decrypted value' \
'edit:Edit secrets in \$EDITOR' \
'ls:List all key names' \
'export:Export all secrets as shell export statements' \
'import:Import secrets from a .env file' \
'describe:Add or update a key description' \
'info:Show public schema and key info' \
'skeleton:Export schema-only vault with no secrets or recipients' \
'exec:Run a command with secrets injected as environment variables' \
'agent:Agent-oriented commands (schema-only output for AI agent prompts)' \
'mcp:Run an MCP (Model Context Protocol) stdio server for AI agents' \
'policy:Manage the agent access policy' \
'circle:Manage recipients' \
'authorize:Add a recipient to the vault' \
'revoke:Remove a recipient from the vault' \
'group:Manage recipient groups' \
'verify:Verify vault integrity without exporting secrets' \
'doctor:Check the surrounding repo for hygiene issues' \
'scan:Scan files for leaked secret values' \
'diff:Show secret changes vs a git ref' \
'setup-merge-driver:Configure git to use murk'\''s merge driver for .murk files' \
'merge-driver:Git merge driver for .murk vault files (called by git)' \
'completion:Generate or install shell completions' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk commands' commands "$@"
}
(( $+functions[_murk__subcmd__add_commands] )) ||
_murk__subcmd__add_commands() {
local commands; commands=()
_describe -t commands 'murk add commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent_commands] )) ||
_murk__subcmd__agent_commands() {
local commands; commands=(
'plan:Emit schema-only context safe to paste into an AI agent prompt' \
'exec:Run a command with strict agent-safe defaults (clears the inherited environment, strips MURK_KEY, requires --only)' \
'grant:Mint a short-lived ephemeral key that can read only the named secrets' \
'init:One-shot onboarding\: optionally set the agent allow-list, mint a scoped grant, and print how to run the agent safely' \
'ls:List active agent grants and their TTLs' \
'revoke:Revoke an agent grant and rotate the keys it could read' \
'connect:Wire \`murk mcp\` into an AI editor'\''s MCP config, minting a scoped grant. No CLIENT auto-detects installed editors; give one (claude, cursor, vscode, zed, gemini, omp, codex) to target it' \
'disconnect:Remove murk'\''s entry from an AI editor'\''s MCP config. No CLIENT clears every configured editor; \`--rotate\` also revokes the grant and rotates its keys' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk agent commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__connect_commands] )) ||
_murk__subcmd__agent__subcmd__connect_commands() {
local commands; commands=()
_describe -t commands 'murk agent connect commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__disconnect_commands] )) ||
_murk__subcmd__agent__subcmd__disconnect_commands() {
local commands; commands=()
_describe -t commands 'murk agent disconnect commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__exec_commands] )) ||
_murk__subcmd__agent__subcmd__exec_commands() {
local commands; commands=()
_describe -t commands 'murk agent exec commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__grant_commands] )) ||
_murk__subcmd__agent__subcmd__grant_commands() {
local commands; commands=()
_describe -t commands 'murk agent grant commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help_commands] )) ||
_murk__subcmd__agent__subcmd__help_commands() {
local commands; commands=(
'plan:Emit schema-only context safe to paste into an AI agent prompt' \
'exec:Run a command with strict agent-safe defaults (clears the inherited environment, strips MURK_KEY, requires --only)' \
'grant:Mint a short-lived ephemeral key that can read only the named secrets' \
'init:One-shot onboarding\: optionally set the agent allow-list, mint a scoped grant, and print how to run the agent safely' \
'ls:List active agent grants and their TTLs' \
'revoke:Revoke an agent grant and rotate the keys it could read' \
'connect:Wire \`murk mcp\` into an AI editor'\''s MCP config, minting a scoped grant. No CLIENT auto-detects installed editors; give one (claude, cursor, vscode, zed, gemini, omp, codex) to target it' \
'disconnect:Remove murk'\''s entry from an AI editor'\''s MCP config. No CLIENT clears every configured editor; \`--rotate\` also revokes the grant and rotates its keys' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk agent help commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__connect_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__connect_commands() {
local commands; commands=()
_describe -t commands 'murk agent help connect commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__disconnect_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__disconnect_commands() {
local commands; commands=()
_describe -t commands 'murk agent help disconnect commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__exec_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__exec_commands() {
local commands; commands=()
_describe -t commands 'murk agent help exec commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__grant_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__grant_commands() {
local commands; commands=()
_describe -t commands 'murk agent help grant commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__help_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__help_commands() {
local commands; commands=()
_describe -t commands 'murk agent help help commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__init_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__init_commands() {
local commands; commands=()
_describe -t commands 'murk agent help init commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__ls_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk agent help ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__plan_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__plan_commands() {
local commands; commands=()
_describe -t commands 'murk agent help plan commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__help__subcmd__revoke_commands] )) ||
_murk__subcmd__agent__subcmd__help__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk agent help revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__init_commands] )) ||
_murk__subcmd__agent__subcmd__init_commands() {
local commands; commands=()
_describe -t commands 'murk agent init commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__ls_commands] )) ||
_murk__subcmd__agent__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk agent ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__plan_commands] )) ||
_murk__subcmd__agent__subcmd__plan_commands() {
local commands; commands=()
_describe -t commands 'murk agent plan commands' commands "$@"
}
(( $+functions[_murk__subcmd__agent__subcmd__revoke_commands] )) ||
_murk__subcmd__agent__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk agent revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__authorize_commands] )) ||
_murk__subcmd__authorize_commands() {
local commands; commands=()
_describe -t commands 'murk authorize commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle_commands] )) ||
_murk__subcmd__circle_commands() {
local commands; commands=(
'authorize:Add a recipient to the vault' \
'revoke:Remove a recipient from the vault' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk circle commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle__subcmd__authorize_commands] )) ||
_murk__subcmd__circle__subcmd__authorize_commands() {
local commands; commands=()
_describe -t commands 'murk circle authorize commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle__subcmd__help_commands] )) ||
_murk__subcmd__circle__subcmd__help_commands() {
local commands; commands=(
'authorize:Add a recipient to the vault' \
'revoke:Remove a recipient from the vault' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk circle help commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle__subcmd__help__subcmd__authorize_commands] )) ||
_murk__subcmd__circle__subcmd__help__subcmd__authorize_commands() {
local commands; commands=()
_describe -t commands 'murk circle help authorize commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle__subcmd__help__subcmd__help_commands] )) ||
_murk__subcmd__circle__subcmd__help__subcmd__help_commands() {
local commands; commands=()
_describe -t commands 'murk circle help help commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle__subcmd__help__subcmd__revoke_commands] )) ||
_murk__subcmd__circle__subcmd__help__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk circle help revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__circle__subcmd__revoke_commands] )) ||
_murk__subcmd__circle__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk circle revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion_commands] )) ||
_murk__subcmd__completion_commands() {
local commands; commands=(
'generate:Print completions to stdout' \
'install:Install completions to the standard path' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk completion commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion__subcmd__generate_commands] )) ||
_murk__subcmd__completion__subcmd__generate_commands() {
local commands; commands=()
_describe -t commands 'murk completion generate commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion__subcmd__help_commands] )) ||
_murk__subcmd__completion__subcmd__help_commands() {
local commands; commands=(
'generate:Print completions to stdout' \
'install:Install completions to the standard path' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk completion help commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion__subcmd__help__subcmd__generate_commands] )) ||
_murk__subcmd__completion__subcmd__help__subcmd__generate_commands() {
local commands; commands=()
_describe -t commands 'murk completion help generate commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion__subcmd__help__subcmd__help_commands] )) ||
_murk__subcmd__completion__subcmd__help__subcmd__help_commands() {
local commands; commands=()
_describe -t commands 'murk completion help help commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion__subcmd__help__subcmd__install_commands] )) ||
_murk__subcmd__completion__subcmd__help__subcmd__install_commands() {
local commands; commands=()
_describe -t commands 'murk completion help install commands' commands "$@"
}
(( $+functions[_murk__subcmd__completion__subcmd__install_commands] )) ||
_murk__subcmd__completion__subcmd__install_commands() {
local commands; commands=()
_describe -t commands 'murk completion install commands' commands "$@"
}
(( $+functions[_murk__subcmd__describe_commands] )) ||
_murk__subcmd__describe_commands() {
local commands; commands=()
_describe -t commands 'murk describe commands' commands "$@"
}
(( $+functions[_murk__subcmd__diff_commands] )) ||
_murk__subcmd__diff_commands() {
local commands; commands=()
_describe -t commands 'murk diff commands' commands "$@"
}
(( $+functions[_murk__subcmd__doctor_commands] )) ||
_murk__subcmd__doctor_commands() {
local commands; commands=()
_describe -t commands 'murk doctor commands' commands "$@"
}
(( $+functions[_murk__subcmd__edit_commands] )) ||
_murk__subcmd__edit_commands() {
local commands; commands=()
_describe -t commands 'murk edit commands' commands "$@"
}
(( $+functions[_murk__subcmd__env_commands] )) ||
_murk__subcmd__env_commands() {
local commands; commands=()
_describe -t commands 'murk env commands' commands "$@"
}
(( $+functions[_murk__subcmd__exec_commands] )) ||
_murk__subcmd__exec_commands() {
local commands; commands=()
_describe -t commands 'murk exec commands' commands "$@"
}
(( $+functions[_murk__subcmd__export_commands] )) ||
_murk__subcmd__export_commands() {
local commands; commands=()
_describe -t commands 'murk export commands' commands "$@"
}
(( $+functions[_murk__subcmd__generate_commands] )) ||
_murk__subcmd__generate_commands() {
local commands; commands=()
_describe -t commands 'murk generate commands' commands "$@"
}
(( $+functions[_murk__subcmd__get_commands] )) ||
_murk__subcmd__get_commands() {
local commands; commands=()
_describe -t commands 'murk get commands' commands "$@"
}
(( $+functions[_murk__subcmd__group_commands] )) ||
_murk__subcmd__group_commands() {
local commands; commands=(
'create:Create a new recipient group (you become its first member)' \
'ls:List groups and their members' \
'add:Add a member to a group' \
'rm:Remove a member from a group, or delete the group entirely' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk group commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__add_commands] )) ||
_murk__subcmd__group__subcmd__add_commands() {
local commands; commands=()
_describe -t commands 'murk group add commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__create_commands] )) ||
_murk__subcmd__group__subcmd__create_commands() {
local commands; commands=()
_describe -t commands 'murk group create commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__help_commands] )) ||
_murk__subcmd__group__subcmd__help_commands() {
local commands; commands=(
'create:Create a new recipient group (you become its first member)' \
'ls:List groups and their members' \
'add:Add a member to a group' \
'rm:Remove a member from a group, or delete the group entirely' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk group help commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__help__subcmd__add_commands] )) ||
_murk__subcmd__group__subcmd__help__subcmd__add_commands() {
local commands; commands=()
_describe -t commands 'murk group help add commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__help__subcmd__create_commands] )) ||
_murk__subcmd__group__subcmd__help__subcmd__create_commands() {
local commands; commands=()
_describe -t commands 'murk group help create commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__help__subcmd__help_commands] )) ||
_murk__subcmd__group__subcmd__help__subcmd__help_commands() {
local commands; commands=()
_describe -t commands 'murk group help help commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__help__subcmd__ls_commands] )) ||
_murk__subcmd__group__subcmd__help__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk group help ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__help__subcmd__rm_commands] )) ||
_murk__subcmd__group__subcmd__help__subcmd__rm_commands() {
local commands; commands=()
_describe -t commands 'murk group help rm commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__ls_commands] )) ||
_murk__subcmd__group__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk group ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__group__subcmd__rm_commands] )) ||
_murk__subcmd__group__subcmd__rm_commands() {
local commands; commands=()
_describe -t commands 'murk group rm commands' commands "$@"
}
(( $+functions[_murk__subcmd__help_commands] )) ||
_murk__subcmd__help_commands() {
local commands; commands=(
'init:Initialize a new vault and generate a keypair' \
'env:Write a .envrc for direnv integration' \
'restore:Restore MURK_KEY from a BIP39 recovery phrase' \
'recover:Re-derive recovery phrase from current MURK_KEY' \
'add:Add or update a secret' \
'generate:Generate a random secret and store it' \
'rotate:Rotate secrets with new values' \
'rm:Remove a secret' \
'get:Get a single decrypted value' \
'edit:Edit secrets in \$EDITOR' \
'ls:List all key names' \
'export:Export all secrets as shell export statements' \
'import:Import secrets from a .env file' \
'describe:Add or update a key description' \
'info:Show public schema and key info' \
'skeleton:Export schema-only vault with no secrets or recipients' \
'exec:Run a command with secrets injected as environment variables' \
'agent:Agent-oriented commands (schema-only output for AI agent prompts)' \
'mcp:Run an MCP (Model Context Protocol) stdio server for AI agents' \
'policy:Manage the agent access policy' \
'circle:Manage recipients' \
'authorize:Add a recipient to the vault' \
'revoke:Remove a recipient from the vault' \
'group:Manage recipient groups' \
'verify:Verify vault integrity without exporting secrets' \
'doctor:Check the surrounding repo for hygiene issues' \
'scan:Scan files for leaked secret values' \
'diff:Show secret changes vs a git ref' \
'setup-merge-driver:Configure git to use murk'\''s merge driver for .murk files' \
'merge-driver:Git merge driver for .murk vault files (called by git)' \
'completion:Generate or install shell completions' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk help commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__add_commands] )) ||
_murk__subcmd__help__subcmd__add_commands() {
local commands; commands=()
_describe -t commands 'murk help add commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent_commands] )) ||
_murk__subcmd__help__subcmd__agent_commands() {
local commands; commands=(
'plan:Emit schema-only context safe to paste into an AI agent prompt' \
'exec:Run a command with strict agent-safe defaults (clears the inherited environment, strips MURK_KEY, requires --only)' \
'grant:Mint a short-lived ephemeral key that can read only the named secrets' \
'init:One-shot onboarding\: optionally set the agent allow-list, mint a scoped grant, and print how to run the agent safely' \
'ls:List active agent grants and their TTLs' \
'revoke:Revoke an agent grant and rotate the keys it could read' \
'connect:Wire \`murk mcp\` into an AI editor'\''s MCP config, minting a scoped grant. No CLIENT auto-detects installed editors; give one (claude, cursor, vscode, zed, gemini, omp, codex) to target it' \
'disconnect:Remove murk'\''s entry from an AI editor'\''s MCP config. No CLIENT clears every configured editor; \`--rotate\` also revokes the grant and rotates its keys' \
)
_describe -t commands 'murk help agent commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__connect_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__connect_commands() {
local commands; commands=()
_describe -t commands 'murk help agent connect commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__disconnect_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__disconnect_commands() {
local commands; commands=()
_describe -t commands 'murk help agent disconnect commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__exec_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__exec_commands() {
local commands; commands=()
_describe -t commands 'murk help agent exec commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__grant_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__grant_commands() {
local commands; commands=()
_describe -t commands 'murk help agent grant commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__init_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__init_commands() {
local commands; commands=()
_describe -t commands 'murk help agent init commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__ls_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk help agent ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__plan_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__plan_commands() {
local commands; commands=()
_describe -t commands 'murk help agent plan commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__agent__subcmd__revoke_commands] )) ||
_murk__subcmd__help__subcmd__agent__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk help agent revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__authorize_commands] )) ||
_murk__subcmd__help__subcmd__authorize_commands() {
local commands; commands=()
_describe -t commands 'murk help authorize commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__circle_commands] )) ||
_murk__subcmd__help__subcmd__circle_commands() {
local commands; commands=(
'authorize:Add a recipient to the vault' \
'revoke:Remove a recipient from the vault' \
)
_describe -t commands 'murk help circle commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__circle__subcmd__authorize_commands] )) ||
_murk__subcmd__help__subcmd__circle__subcmd__authorize_commands() {
local commands; commands=()
_describe -t commands 'murk help circle authorize commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__circle__subcmd__revoke_commands] )) ||
_murk__subcmd__help__subcmd__circle__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk help circle revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__completion_commands] )) ||
_murk__subcmd__help__subcmd__completion_commands() {
local commands; commands=(
'generate:Print completions to stdout' \
'install:Install completions to the standard path' \
)
_describe -t commands 'murk help completion commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__completion__subcmd__generate_commands] )) ||
_murk__subcmd__help__subcmd__completion__subcmd__generate_commands() {
local commands; commands=()
_describe -t commands 'murk help completion generate commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__completion__subcmd__install_commands] )) ||
_murk__subcmd__help__subcmd__completion__subcmd__install_commands() {
local commands; commands=()
_describe -t commands 'murk help completion install commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__describe_commands] )) ||
_murk__subcmd__help__subcmd__describe_commands() {
local commands; commands=()
_describe -t commands 'murk help describe commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__diff_commands] )) ||
_murk__subcmd__help__subcmd__diff_commands() {
local commands; commands=()
_describe -t commands 'murk help diff commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__doctor_commands] )) ||
_murk__subcmd__help__subcmd__doctor_commands() {
local commands; commands=()
_describe -t commands 'murk help doctor commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__edit_commands] )) ||
_murk__subcmd__help__subcmd__edit_commands() {
local commands; commands=()
_describe -t commands 'murk help edit commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__env_commands] )) ||
_murk__subcmd__help__subcmd__env_commands() {
local commands; commands=()
_describe -t commands 'murk help env commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__exec_commands] )) ||
_murk__subcmd__help__subcmd__exec_commands() {
local commands; commands=()
_describe -t commands 'murk help exec commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__export_commands] )) ||
_murk__subcmd__help__subcmd__export_commands() {
local commands; commands=()
_describe -t commands 'murk help export commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__generate_commands] )) ||
_murk__subcmd__help__subcmd__generate_commands() {
local commands; commands=()
_describe -t commands 'murk help generate commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__get_commands] )) ||
_murk__subcmd__help__subcmd__get_commands() {
local commands; commands=()
_describe -t commands 'murk help get commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__group_commands] )) ||
_murk__subcmd__help__subcmd__group_commands() {
local commands; commands=(
'create:Create a new recipient group (you become its first member)' \
'ls:List groups and their members' \
'add:Add a member to a group' \
'rm:Remove a member from a group, or delete the group entirely' \
)
_describe -t commands 'murk help group commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__group__subcmd__add_commands] )) ||
_murk__subcmd__help__subcmd__group__subcmd__add_commands() {
local commands; commands=()
_describe -t commands 'murk help group add commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__group__subcmd__create_commands] )) ||
_murk__subcmd__help__subcmd__group__subcmd__create_commands() {
local commands; commands=()
_describe -t commands 'murk help group create commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__group__subcmd__ls_commands] )) ||
_murk__subcmd__help__subcmd__group__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk help group ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__group__subcmd__rm_commands] )) ||
_murk__subcmd__help__subcmd__group__subcmd__rm_commands() {
local commands; commands=()
_describe -t commands 'murk help group rm commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__help_commands] )) ||
_murk__subcmd__help__subcmd__help_commands() {
local commands; commands=()
_describe -t commands 'murk help help commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__import_commands] )) ||
_murk__subcmd__help__subcmd__import_commands() {
local commands; commands=()
_describe -t commands 'murk help import commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__info_commands] )) ||
_murk__subcmd__help__subcmd__info_commands() {
local commands; commands=()
_describe -t commands 'murk help info commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__init_commands] )) ||
_murk__subcmd__help__subcmd__init_commands() {
local commands; commands=()
_describe -t commands 'murk help init commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__ls_commands] )) ||
_murk__subcmd__help__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk help ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__mcp_commands] )) ||
_murk__subcmd__help__subcmd__mcp_commands() {
local commands; commands=()
_describe -t commands 'murk help mcp commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__merge-driver_commands] )) ||
_murk__subcmd__help__subcmd__merge-driver_commands() {
local commands; commands=()
_describe -t commands 'murk help merge-driver commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__policy_commands] )) ||
_murk__subcmd__help__subcmd__policy_commands() {
local commands; commands=(
'show:Show the agent access policy (works without a key)' \
'set:Set the agent allow-list\: agents may only receive secrets carrying one of these tags' \
'clear:Remove the policy — agent mode becomes unrestricted again' \
)
_describe -t commands 'murk help policy commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__policy__subcmd__clear_commands] )) ||
_murk__subcmd__help__subcmd__policy__subcmd__clear_commands() {
local commands; commands=()
_describe -t commands 'murk help policy clear commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__policy__subcmd__set_commands] )) ||
_murk__subcmd__help__subcmd__policy__subcmd__set_commands() {
local commands; commands=()
_describe -t commands 'murk help policy set commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__policy__subcmd__show_commands] )) ||
_murk__subcmd__help__subcmd__policy__subcmd__show_commands() {
local commands; commands=()
_describe -t commands 'murk help policy show commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__recover_commands] )) ||
_murk__subcmd__help__subcmd__recover_commands() {
local commands; commands=()
_describe -t commands 'murk help recover commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__restore_commands] )) ||
_murk__subcmd__help__subcmd__restore_commands() {
local commands; commands=()
_describe -t commands 'murk help restore commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__revoke_commands] )) ||
_murk__subcmd__help__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk help revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__rm_commands] )) ||
_murk__subcmd__help__subcmd__rm_commands() {
local commands; commands=()
_describe -t commands 'murk help rm commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__rotate_commands] )) ||
_murk__subcmd__help__subcmd__rotate_commands() {
local commands; commands=()
_describe -t commands 'murk help rotate commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__scan_commands] )) ||
_murk__subcmd__help__subcmd__scan_commands() {
local commands; commands=()
_describe -t commands 'murk help scan commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__setup-merge-driver_commands] )) ||
_murk__subcmd__help__subcmd__setup-merge-driver_commands() {
local commands; commands=()
_describe -t commands 'murk help setup-merge-driver commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__skeleton_commands] )) ||
_murk__subcmd__help__subcmd__skeleton_commands() {
local commands; commands=()
_describe -t commands 'murk help skeleton commands' commands "$@"
}
(( $+functions[_murk__subcmd__help__subcmd__verify_commands] )) ||
_murk__subcmd__help__subcmd__verify_commands() {
local commands; commands=()
_describe -t commands 'murk help verify commands' commands "$@"
}
(( $+functions[_murk__subcmd__import_commands] )) ||
_murk__subcmd__import_commands() {
local commands; commands=()
_describe -t commands 'murk import commands' commands "$@"
}
(( $+functions[_murk__subcmd__info_commands] )) ||
_murk__subcmd__info_commands() {
local commands; commands=()
_describe -t commands 'murk info commands' commands "$@"
}
(( $+functions[_murk__subcmd__init_commands] )) ||
_murk__subcmd__init_commands() {
local commands; commands=()
_describe -t commands 'murk init commands' commands "$@"
}
(( $+functions[_murk__subcmd__ls_commands] )) ||
_murk__subcmd__ls_commands() {
local commands; commands=()
_describe -t commands 'murk ls commands' commands "$@"
}
(( $+functions[_murk__subcmd__mcp_commands] )) ||
_murk__subcmd__mcp_commands() {
local commands; commands=()
_describe -t commands 'murk mcp commands' commands "$@"
}
(( $+functions[_murk__subcmd__merge-driver_commands] )) ||
_murk__subcmd__merge-driver_commands() {
local commands; commands=()
_describe -t commands 'murk merge-driver commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy_commands] )) ||
_murk__subcmd__policy_commands() {
local commands; commands=(
'show:Show the agent access policy (works without a key)' \
'set:Set the agent allow-list\: agents may only receive secrets carrying one of these tags' \
'clear:Remove the policy — agent mode becomes unrestricted again' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk policy commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__clear_commands] )) ||
_murk__subcmd__policy__subcmd__clear_commands() {
local commands; commands=()
_describe -t commands 'murk policy clear commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__help_commands] )) ||
_murk__subcmd__policy__subcmd__help_commands() {
local commands; commands=(
'show:Show the agent access policy (works without a key)' \
'set:Set the agent allow-list\: agents may only receive secrets carrying one of these tags' \
'clear:Remove the policy — agent mode becomes unrestricted again' \
'help:Print this message or the help of the given subcommand(s)' \
)
_describe -t commands 'murk policy help commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__help__subcmd__clear_commands] )) ||
_murk__subcmd__policy__subcmd__help__subcmd__clear_commands() {
local commands; commands=()
_describe -t commands 'murk policy help clear commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__help__subcmd__help_commands] )) ||
_murk__subcmd__policy__subcmd__help__subcmd__help_commands() {
local commands; commands=()
_describe -t commands 'murk policy help help commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__help__subcmd__set_commands] )) ||
_murk__subcmd__policy__subcmd__help__subcmd__set_commands() {
local commands; commands=()
_describe -t commands 'murk policy help set commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__help__subcmd__show_commands] )) ||
_murk__subcmd__policy__subcmd__help__subcmd__show_commands() {
local commands; commands=()
_describe -t commands 'murk policy help show commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__set_commands] )) ||
_murk__subcmd__policy__subcmd__set_commands() {
local commands; commands=()
_describe -t commands 'murk policy set commands' commands "$@"
}
(( $+functions[_murk__subcmd__policy__subcmd__show_commands] )) ||
_murk__subcmd__policy__subcmd__show_commands() {
local commands; commands=()
_describe -t commands 'murk policy show commands' commands "$@"
}
(( $+functions[_murk__subcmd__recover_commands] )) ||
_murk__subcmd__recover_commands() {
local commands; commands=()
_describe -t commands 'murk recover commands' commands "$@"
}
(( $+functions[_murk__subcmd__restore_commands] )) ||
_murk__subcmd__restore_commands() {
local commands; commands=()
_describe -t commands 'murk restore commands' commands "$@"
}
(( $+functions[_murk__subcmd__revoke_commands] )) ||
_murk__subcmd__revoke_commands() {
local commands; commands=()
_describe -t commands 'murk revoke commands' commands "$@"
}
(( $+functions[_murk__subcmd__rm_commands] )) ||
_murk__subcmd__rm_commands() {
local commands; commands=()
_describe -t commands 'murk rm commands' commands "$@"
}
(( $+functions[_murk__subcmd__rotate_commands] )) ||
_murk__subcmd__rotate_commands() {
local commands; commands=()
_describe -t commands 'murk rotate commands' commands "$@"
}
(( $+functions[_murk__subcmd__scan_commands] )) ||
_murk__subcmd__scan_commands() {
local commands; commands=()
_describe -t commands 'murk scan commands' commands "$@"
}
(( $+functions[_murk__subcmd__setup-merge-driver_commands] )) ||
_murk__subcmd__setup-merge-driver_commands() {
local commands; commands=()
_describe -t commands 'murk setup-merge-driver commands' commands "$@"
}
(( $+functions[_murk__subcmd__skeleton_commands] )) ||
_murk__subcmd__skeleton_commands() {
local commands; commands=()
_describe -t commands 'murk skeleton commands' commands "$@"
}
(( $+functions[_murk__subcmd__verify_commands] )) ||
_murk__subcmd__verify_commands() {
local commands; commands=()
_describe -t commands 'murk verify commands' commands "$@"
}
if [ "$funcstack[1]" = "_murk" ]; then
_murk "$@"
else
compdef _murk murk
fi