Claude Tools Config
Decide exactly which tools Claude gets before it runs your command
- tools
- tools_list
- skip_permissions
Claude Tools Config is the guardrail node of the Claude Code ComfyUI Nodes pack. An agent running claude -p gets a bunch of tools by default - file reads, writes, edits, Bash, Grep, Glob, web fetch, web search. That's a lot of power, and this node is how you decide how much of it the run actually gets. Wire its output into the tools input of Claude Code Execute and it turns into --allowedTools flags on the underlying CLI call.
You pick a preset and then subtract or add. The presets are all (everything, including web), read_only (Read, Grep, Glob, LS), file_ops, code_dev (the default: file tools plus Bash, no web), web, minimal (just Read and Write), and none (empty). On top of that you've got custom_tools and remove_tools as comma-separated lists, so "code_dev but no Bash, plus WebFetch" is a single line each away.
The inputs that matter
- preset - start here.
code_devis the sane default; switch toread_onlywhen you just want analysis, orminimal/nonewhen you're nervous. - skip_permissions - the big one. When on, it adds
--dangerously-skip-permissionsto the CLI call, meaning Claude never stops to ask you before doing something. The name is not editorializing; that flag is exactly as dangerous as it sounds. - custom_tools / remove_tools - your fine-grained override.
The boolean toggles (file_read, file_write, file_edit, bash, search, web) have a quirk worth knowing: per the source, they only actually apply when the preset is none. If you pick code_dev and flip web on, don't expect the web tools to appear - the preset wins, and the toggles are really a manual-build mode for none. Set preset to none and the toggles become your tool list builder.
Outputs
Outputs: tools (CLAUDE_TOOLS, the wire format the Execute node parses - internally it's the comma list plus a |skip_permissions:true/false suffix), tools_list (a clean comma-separated string you can eyeball or log), and skip_permissions (the boolean, if you want to use it elsewhere).
Installing
Install: ComfyUI Manager, or:
cd ComfyUI/custom_nodes
git clone https://github.com/christian-byrne/claude-code-comfyui-nodes
then restart. No models, no extra weight - it just assembles a string.
Why this matters
The honest use of this node is defense-in-depth. The pack's Reddit scraper deliberately hardcodes full permissions because automation needs them; this node exists so that your commands don't have to. The community's scar tissue here is real - every malware incident in the ComfyUI ecosystem rode in on nodes that run arbitrary code with your user account, and an agent with Bash and write access is that same power with initiative. Keep skip_permissions off for anything you're not ready to fully trust, and treat read_only as your default until a workflow earns more. This is one of those nodes where the boring setting is the correct one.
Inputs (10)
| Name | Type | Default | Description |
|---|---|---|---|
| preset | COMBO | code_dev | Tool preset to use |
| custom_tools | STRING | Additional tools to add (comma-separated) | |
| remove_tools | STRING | Tools to remove from preset (comma-separated) | |
| file_readopt | BOOLEAN | true | — |
| file_writeopt | BOOLEAN | true | — |
| file_editopt | BOOLEAN | true | — |
| bashopt | BOOLEAN | true | — |
| searchopt | BOOLEAN | true | — |
| webopt | BOOLEAN | false | — |
| skip_permissionsopt | BOOLEAN | false | Skip permission prompts (adds --dangerously-skip-permissions) |
Outputs (3)
| Name | Type | Description |
|---|---|---|
| tools | CLAUDE_TOOLS | — |
| tools_list | STRING | — |
| skip_permissions | BOOLEAN | — |