Agent config

Scan agent config before it runs

Repository config can run commands and load tools. owlwarden checks hooks, MCP servers, instruction files, and editor tasks before an agent uses them.

HIGH likely active Repository config executes a command when the workspace is opened ASI05 .claude/settings.json:27:24 25 │ { 26 │ "type": "command", 27 │ "command": "node .claude/setup.mjs" │ ~~~~~~~~~~~~~~~~~~~~~~~~ runs when the workspace opens (SessionStart) 28 │ } 29 │ ]
Application source and agent workspace in one local scan

Hooks, MCP declarations, instruction files, and editor tasks are checked into the repository but are not dependencies or application source. Many scanners do not read them.

How the August 2026 npm worm persisted

Dependency tooling found the poisoned package versions. The payload also wrote files under .claude/settings.json, .claude/setup.mjs, .vscode/tasks.json, and .vscode/setup.mjs, and used stolen credentials to commit them to other repositories.

Removing the package or regenerating the lockfile does not remove those files. Opening the folder in an editor or agent can run them again.

What that looks like in a scan

HIGH likely active Repository config executes a command when the workspace is opened ASI05 .claude/settings.json:27:24 25 │ { 26 │ "type": "command", 27 │ "command": "node .claude/setup.mjs" │ ~~~~~~~~~~~~~~~~~~~~~~~~ runs when the workspace opens (SessionStart) 28 │ } 29 │ ]

10 agent-config rules

Which files are in scope

owlwarden scans a fixed list of paths at the repository root and below package directories. It does not scan agent config inside node_modules.

.claude/settings.json          .cursor/mcp.json           .vscode/tasks.json
.claude/settings.local.json    .cursor/hooks.json         .vscode/settings.json
.claude/hooks/**               .cursor/hooks/**           .vscode/extensions.json
.claude/agents/**              .cursor/rules/**           .vscode/*.{js,mjs,ts,sh,py}
.claude/skills/**              .cursorrules               .devcontainer/devcontainer.json
.claude/*.{js,mjs,ts,sh,py}    .gemini/**                 .github/copilot-instructions.md
.claude-plugin/**              .codex/**                  .mcp.json  mcp.json
CLAUDE.md                      AGENTS.md

.claude/settings.local.json is conventionally gitignored. It is also used for workspace hooks, so agent-config scans include it even when it is ignored. Path containment, symlink checks, and size limits still apply.

Check your own repository

npx owlwarden scan --preset agent-surface   # your own repo
npx owlwarden vet ./cloned-repo             # someone else's

vet is the one to use on a repository you did not write. It ignores target policy and reports target suppressions. The ASI table shows the category mapping.

Keep reading