From a50d8b3525db32a7bc657576778903a03734f355 Mon Sep 17 00:00:00 2001 From: Cameron Pfiffer Date: Sun, 18 Jan 2026 21:25:00 -0800 Subject: [PATCH] Enable delete by default, document command permissions --- README.md | 17 +++++++++++++++++ vault_tool.py | 2 +- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 4b2febd..6859709 100644 --- a/README.md +++ b/README.md @@ -38,6 +38,23 @@ python create_vault_tool.py - **Bulk operations** - Support for wildcards like `attach /folder/*` - **Auto-maintained directory** - A `/vault_directory` block shows all items +## Command Permissions + +By default, all commands are enabled. You can restrict which commands are available by setting the `ENABLED_COMMANDS` environment variable on your Letta server: + +```bash +# Enable all commands (default) +ENABLED_COMMANDS="all" + +# Disable delete (safer for production) +ENABLED_COMMANDS="create,view,attach,detach,insert,append,replace,rename,copy,list,search,attached" + +# Read-only mode +ENABLED_COMMANDS="view,list,search,attached" +``` + +Disabled commands will return an error message listing which commands are enabled. + ## License MIT diff --git a/vault_tool.py b/vault_tool.py index 3e0ae3a..f76016f 100644 --- a/vault_tool.py +++ b/vault_tool.py @@ -52,7 +52,7 @@ def vault( # Check enabled commands ("all" or "*" enables everything) all_commands = ["create", "view", "attach", "detach", "insert", "append", "replace", "rename", "copy", "delete", "list", "search", "attached"] - enabled_env = os.environ.get("ENABLED_COMMANDS", "create,view,attach,detach,insert,append,replace,rename,copy,list,search,attached") + enabled_env = os.environ.get("ENABLED_COMMANDS", "all") enabled = all_commands if enabled_env in ("all", "*") else enabled_env.split(",") if command not in enabled: return f"Error: '{command}' is disabled. Enabled: {enabled}" -- 2.51.2