InsightWorker Logo
  • contact@verticalserve.com
Docs / Permissions & safety / Auto-approving tools

Auto-approving tools

By default, InsightWorker asks before running any tool that writes (file edits, shell commands, API mutations). Reads and lookups (file reads, search, web fetch) run without prompting.

For trusted apps or daemon mode, you can pre-approve specific tools.

How approval works

When the agent wants to call a write tool, the surface (CLI, VS Code, desktop) shows a confirmation prompt with:

  • Tool name (e.g. bash, edit_file, jira_create_issue)
  • Parameters (the actual command or diff)
  • Buttons: Approve once / Approve always / Reject

Approve once runs this single call. Approve always adds the tool to your auto-approve list for this session and future sessions.

Configure

Edit ~/.insightworker/.env:

# Comma-separated tool names that skip the approval prompt:
AUTO_APPROVE_TOOLS=read_file,grep,list_files,jira_search,jira_issue,sharepoint_list,sharepoint_search,sharepoint_read,perplexity_search

# Or approve everything (NOT RECOMMENDED for non-daemon use):
AUTO_APPROVE_ALL=false

Per-surface override:

SurfaceHow to set
CLI--auto-approve <tool>,<tool> flag, or AUTO_APPROVE_TOOLS env var
VS CodeSetting insightworker.autoApprove (comma-separated)
DesktopSettings → "Auto-approved tools"
Daemon~/.insightworker/.env (no UI)

Recommended baseline

Always-safe to auto-approve (read-only):

read_file, list_files, grep, glob, jira_search, jira_issue, sharepoint_list,
sharepoint_search, sharepoint_read, perplexity_search, web_fetch, mermaid_render

Approve with caution (writes):

edit_file, write_file, bash, jira_create_issue, jira_comment,
graph_send_email, sharepoint_write

Don't auto-approve unless you fully understand what the app will do.

Daemon mode special case

In daemon mode there's no human to prompt — every approval that's not in AUTO_APPROVE_TOOLS causes the run to fail with a clear error. For scheduled apps, set the auto-approve list to the union of every tool the app needs.

A pattern that works: maintain a per-skill auto-approve list in the skill's frontmatter and let the daemon enforce only those. (This is a roadmap feature — for now use a global list.)

Inspecting what tools a skill calls

Before adding tools to your auto-approve list, dry-run the skill to see which tools it actually invokes:

insightworker skill run my-skill --dry-run

Dry-run lists tool calls without executing writes — see workflows-and-scheduling/dry-run.md.

See also


Source: docs/permissions-and-safety/auto-approve-tools.md in the public repo. Open a PR with corrections.