Shell safety
Shell execution, dangerous command checks, sandboxing, and safety policy edges.
153
Matched files
12
Top dirs
49,157
Lines in slice
633
Exports found
Heuristic
Classification style
Beginner explanation
This architecture page groups files that seem to solve the same type of problem. It is a good way to understand the repo as a system rather than as a list of folders.
Beginner mental model
Read the first few high-importance files here, then follow their related-file links.
Expert explanation
This slice is assembled with path heuristics, which makes it strong for navigation and code reading but not a replacement for runtime tracing. Use it to discover likely boundaries, then validate by reading imports, exports, and orchestrator files.
Related files
| File | Lines | Importance | Exports |
|---|---|---|---|
| tools/BashTool/bashPermissions.ts | 2622 | high | MAX_SUBCOMMANDS_FOR_SECURITY_CHECK, MAX_SUGGESTED_RULES_FOR_COMPOUND, getSimpleCommandPrefix, getFirstWordPrefix |
| tools/PowerShellTool/pathValidation.ts | 2050 | high | isDangerousRemovalRawPath, dangerousRemovalDeny, checkPathConstraints |
| utils/shell/readOnlyCommandValidation.ts | 1894 | high | FlagArgType, ExternalCommandConfig, GIT_READ_ONLY_COMMANDS, GH_READ_ONLY_COMMANDS |
| tools/PowerShellTool/readOnlyValidation.ts | 1824 | high | argLeaksValue, CMDLET_ALLOWLIST, resolveToCanonical, isCwdChangingCmdlet |
| utils/powershell/parser.ts | 1805 | high | CommandElementChild, ParsedCommandElement, ParsedPowerShellCommand, RawCommandElement |
| utils/permissions/filesystem.ts | 1778 | high | DANGEROUS_FILES, DANGEROUS_DIRECTORIES, normalizeCaseForComparison, getClaudeSkillScope |
| tools/PowerShellTool/powershellPermissions.ts | 1649 | high | powershellPermissionRule, powershellToolCheckExactMatchPermission, powershellToolCheckPermission, powershellToolHasPermission |
| utils/permissions/permissionSetup.ts | 1533 | high | isDangerousBashPermission, isDangerousPowerShellPermission, isDangerousTaskPermission, DangerousPermissionInfo |
| utils/permissions/yoloClassifier.ts | 1496 | high | AutoModeRules, getDefaultExternalAutoModeRules, buildDefaultExternalSystemPrompt, getAutoModeClassifierErrorDumpPath |
| utils/permissions/permissions.ts | 1487 | high | permissionRuleSourceDisplayString, getAllowRules, createPermissionRequestMessage, getDenyRules |
| components/permissions/rules/PermissionRuleList.tsx | 1179 | high | PermissionRuleList |
| tools/PowerShellTool/powershellSecurity.ts | 1091 | high | powershellCommandIsSafe |
| tools/PowerShellTool/PowerShellTool.tsx | 1001 | high | detectBlockedSleepPattern, PowerShellToolInput, Out, PowerShellTool |
| utils/sandbox/sandbox-adapter.ts | 986 | high | resolvePathPatternForSandbox, resolveSandboxFilesystemPath, shouldAllowManagedSandboxDomainsOnly, convertToSandboxRuntimeConfig |
| utils/swarm/permissionSync.ts | 929 | high | SwarmPermissionRequestSchema, SwarmPermissionRequest, PermissionResolution, getPermissionDir |
| components/permissions/ExitPlanModePermissionRequest/ExitPlanModePermissionRequest.tsx | 768 | high | buildPermissionUpdates, autoNameSessionFromPlan, ExitPlanModePermissionRequest, buildPlanApprovalOptions |
| components/permissions/AskUserQuestionPermissionRequest/AskUserQuestionPermissionRequest.tsx | 645 | high | AskUserQuestionPermissionRequest |
| utils/bash/ShellSnapshot.ts | 583 | high | createRipgrepShellIntegration, createFindGrepShellIntegration, createAndSaveSnapshot |
| hooks/toolPermission/handlers/interactiveHandler.ts | 537 | high | handleInteractivePermission |
| tasks/LocalShellTask/LocalShellTask.tsx | 523 | high | BACKGROUND_BASH_SUMMARY_PREFIX, looksLikePrompt, LocalShellTask, spawnShellTask |
| utils/permissions/pathValidation.ts | 486 | high | FileOperationType, PathCheckResult, ResolvedPathCheckResult, formatDirectoryList |
| components/permissions/BashPermissionRequest/BashPermissionRequest.tsx | 482 | high | BashPermissionRequest |
| utils/Shell.ts | 475 | high | ShellConfig, findSuitableShell, getShellConfig, getPsProvider |
| utils/ShellCommand.ts | 466 | high | ExecResult, ShellCommand, wrapSpawn, createAbortedCommand |
| components/permissions/AskUserQuestionPermissionRequest/QuestionView.tsx | 465 | high | QuestionView |
| components/permissions/PermissionDecisionDebugInfo.tsx | 460 | high | PermissionDecisionDebugInfo |
| types/permissions.ts | 442 | high | EXTERNAL_PERMISSION_MODES, ExternalPermissionMode, InternalPermissionMode, PermissionMode |
| components/permissions/ComputerUseApproval/ComputerUseApproval.tsx | 441 | high | ComputerUseApproval |
| tools/PowerShellTool/modeValidation.ts | 405 | high | isSymlinkCreatingCommand, checkPermissionMode |
| components/tasks/ShellDetailDialog.tsx | 404 | high | ShellDetailDialog |
| utils/permissions/PermissionUpdate.ts | 390 | high | extractRules, hasRules, applyPermissionUpdate, applyPermissionUpdates |
| hooks/toolPermission/PermissionContext.ts | 389 | high | createPermissionContext, createPermissionQueueOps, createResolveOnce |
| components/permissions/SkillPermissionRequest/SkillPermissionRequest.tsx | 369 | high | SkillPermissionRequest |
| utils/shell/prefix.ts | 368 | high | CommandPrefixResult, CommandSubcommandPrefixResult, PrefixExtractorConfig, createCommandPrefixExtractor |
| components/permissions/rules/AddWorkspaceDirectory.tsx | 340 | high | AddWorkspaceDirectory |
| components/permissions/PermissionPrompt.tsx | 336 | high | FeedbackType, PermissionPromptOption, ToolAnalyticsContext, PermissionPromptProps |
| components/permissions/FallbackPermissionRequest.tsx | 333 | high | FallbackPermissionRequest |
| hooks/useSwarmPermissionPoller.ts | 331 | high | PermissionResponseCallback, registerPermissionCallback, unregisterPermissionCallback, hasPermissionCallback |
| components/permissions/AskUserQuestionPermissionRequest/PreviewQuestionView.tsx | 328 | high | PreviewQuestionView |
| utils/powershell/staticPrefix.ts | 317 | high | getCommandPrefixStatic, getCompoundCommandPrefixesStatic |
| utils/bash/shellQuote.ts | 305 | high | ShellParseResult, ShellQuoteResult, tryParseShellCommand, tryQuoteShellArgs |
| utils/permissions/permissionsLoader.ts | 297 | high | shouldAllowManagedPermissionRulesOnly, shouldShowAlwaysAllowOptions, loadAllPermissionRulesFromDisk, getPermissionRulesForSource |
| components/sandbox/SandboxSettings.tsx | 296 | high | SandboxSettings |
| components/permissions/PermissionExplanation.tsx | 272 | high | usePermissionExplainerUI, PermissionExplainerContent |
| utils/settings/permissionValidation.ts | 263 | high | validatePermissionRule, PermissionRuleSchema |
| components/permissions/WebFetchPermissionRequest/WebFetchPermissionRequest.tsx | 258 | high | WebFetchPermissionRequest |
| utils/permissions/permissionExplainer.ts | 251 | high | RiskLevel, PermissionExplanation, isPermissionExplainerEnabled, generatePermissionExplanation |
| services/mcp/channelPermissions.ts | 241 | high | isChannelPermissionRelayEnabled, ChannelPermissionResponse, ChannelPermissionCallbacks, PERMISSION_REPLY_RE |
| hooks/toolPermission/permissionLogging.ts | 239 | high | isCodeEditingTool, buildCodeEditToolAttributes, logPermissionDecision |
| components/permissions/NotebookEditPermissionRequest/NotebookEditToolDiff.tsx | 235 | high | NotebookEditToolDiff |
| components/permissions/PowerShellPermissionRequest/PowerShellPermissionRequest.tsx | 235 | high | PowerShellPermissionRequest |
| utils/permissions/shadowedRuleDetection.ts | 235 | high | ShadowType, UnreachableRule, DetectUnreachableRulesOptions, isSharedSettingSource |
| components/permissions/SedEditPermissionRequest/SedEditPermissionRequest.tsx | 230 | high | SedEditPermissionRequest |
| components/permissions/AskUserQuestionPermissionRequest/PreviewBox.tsx | 229 | high | PreviewBox |
| utils/permissions/shellRuleMatching.ts | 229 | high | ShellPermissionRule, permissionRuleExtractPrefix, hasWildcards, matchWildcardPattern |
| components/permissions/PermissionRequest.tsx | 217 | high | PermissionRequestProps, ToolUseConfirm, PermissionRequest |
| components/permissions/FilePermissionDialog/useFilePermissionDialog.ts | 213 | high | ToolInput, UseFilePermissionDialogProps, UseFilePermissionDialogResult, useFilePermissionDialog |
| tools/PowerShellTool/clmTypes.ts | 212 | high | CLM_ALLOWED_TYPES, normalizeTypeName, isClmAllowedType |
| components/permissions/hooks.ts | 210 | high | UnaryEvent, usePermissionRequestLogging |
| components/permissions/rules/RecentDenialsTab.tsx | 207 | high | RecentDenialsTab |
| components/permissions/FilePermissionDialog/FilePermissionDialog.tsx | 204 | high | FilePermissionDialogProps, FilePermissionDialog |
| utils/permissions/permissionRuleParser.ts | 199 | high | normalizeLegacyToolName, getLegacyToolNames, escapeRuleContent, unescapeRuleContent |
| components/sandbox/SandboxOverridesTab.tsx | 193 | high | SandboxOverridesTab |
| components/permissions/FilePermissionDialog/usePermissionHandler.ts | 186 | high | PermissionHandlerParams, PermissionHandlerOptions, PERMISSION_HANDLERS |
| utils/powershell/dangerousCmdlets.ts | 186 | high | FILEPATH_EXECUTION_CMDLETS, DANGEROUS_SCRIPT_BLOCK_CMDLETS, MODULE_LOADING_CMDLETS, NETWORK_CMDLETS |
| components/permissions/FileEditPermissionRequest/FileEditPermissionRequest.tsx | 182 | high | FileEditPermissionRequest |
| components/permissions/AskUserQuestionPermissionRequest/use-multiple-choice-state.ts | 180 | high | AnswerValue, QuestionState, MultipleChoiceState, useMultipleChoiceState |
| components/permissions/rules/AddPermissionRules.tsx | 180 | high | optionForPermissionSaveDestination, AddPermissionRules |
| components/permissions/AskUserQuestionPermissionRequest/QuestionNavigationBar.tsx | 178 | high | QuestionNavigationBar |
| components/permissions/FilePermissionDialog/permissionOptions.tsx | 177 | high | isInClaudeFolder, isInGlobalClaudeFolder, PermissionOption, PermissionOptionWithLabel |
| tools/PowerShellTool/gitSafety.ts | 177 | high | isGitInternalPathPS, isDotGitPathPS |
| utils/shellConfig.ts | 168 | high | CLAUDE_ALIAS_REGEX, getShellConfigPaths, filterClaudeAliases, readFileLines |
| components/permissions/NotebookEditPermissionRequest/NotebookEditPermissionRequest.tsx | 166 | high | NotebookEditPermissionRequest |
| components/permissions/shellPermissionHelpers.tsx | 164 | high | generateShellSuggestionsLabel |
| components/permissions/SandboxPermissionRequest.tsx | 163 | high | SandboxPermissionRequestProps, SandboxPermissionRequest |
| components/permissions/FileWritePermissionRequest/FileWritePermissionRequest.tsx | 161 | high | FileWritePermissionRequest |
| hooks/toolPermission/handlers/swarmWorkerHandler.ts | 160 | high | handleSwarmWorkerPermission |
| entrypoints/sandboxTypes.ts | 157 | high | SandboxNetworkConfigSchema, SandboxFilesystemConfigSchema, SandboxSettingsSchema, SandboxSettings |
| utils/permissions/bypassPermissionsKillswitch.ts | 156 | high | checkAndDisableBypassPermissionsIfNeeded, resetBypassPermissionsCheck, useKickOffCheckAndDisableBypassPermissionsIfNeeded, checkAndDisableAutoModeIfNeeded |
| tools/BashTool/shouldUseSandbox.ts | 154 | high | shouldUseSandbox |
| components/permissions/rules/WorkspaceTab.tsx | 150 | high | WorkspaceTab |
| components/shell/ShellProgressMessage.tsx | 150 | high | ShellProgressMessage |
| components/permissions/useShellPermissionFeedback.ts | 149 | high | useShellPermissionFeedback |
| components/permissions/BashPermissionRequest/bashToolUseOptions.tsx | 147 | high | BashToolUseOption, bashToolUseOptions |
| tools/PowerShellTool/prompt.ts | 146 | high | getDefaultTimeoutMs, getMaxTimeoutMs, getPrompt |
| components/permissions/AskUserQuestionPermissionRequest/SubmitQuestionsView.tsx | 144 | high | SubmitQuestionsView |
| tools/PowerShellTool/commandSemantics.ts | 143 | high | CommandSemantic, interpretCommandResult |
| utils/permissions/PermissionMode.ts | 142 | high | permissionModeSchema, externalPermissionModeSchema, isExternalPermissionMode, toExternalPermissionMode |
| components/permissions/rules/PermissionRuleInput.tsx | 138 | high | PermissionRuleInputProps, PermissionRuleInput |
| tools/PowerShellTool/UI.tsx | 131 | high | renderToolUseMessage, renderToolUseProgressMessage, renderToolUseQueuedMessage, renderToolResultMessage |
| utils/permissions/PermissionPromptToolResultSchema.ts | 128 | high | inputSchema, Input, outputSchema, Output |
| components/permissions/EnterPlanModePermissionRequest/EnterPlanModePermissionRequest.tsx | 122 | high | EnterPlanModePermissionRequest |
| components/permissions/PermissionRuleExplanation.tsx | 121 | high | PermissionRuleExplanationProps, PermissionRuleExplanation |
| components/sandbox/SandboxDependenciesTab.tsx | 120 | high | SandboxDependenciesTab |
| utils/suggestions/shellHistoryCompletion.ts | 120 | high | ShellHistoryMatch, clearShellHistoryCache, prependToShellHistoryCache, getShellHistoryCompletion |
| components/shell/OutputLine.tsx | 118 | high | tryFormatJson, tryJsonFormatContent, linkifyUrlsInText, OutputLine |
| components/permissions/FilesystemPermissionRequest/FilesystemPermissionRequest.tsx | 115 | high | FilesystemPermissionRequest |
| components/permissions/rules/RemoveWorkspaceDirectory.tsx | 110 | high | RemoveWorkspaceDirectory |
| tools/PowerShellTool/destructiveCommandWarning.ts | 110 | high | getDestructiveCommandWarning |
| utils/shell/powershellDetection.ts | 108 | high | findPowerShell, getCachedPowerShellPath, PowerShellEdition, getPowerShellEdition |
| components/permissions/WorkerPendingPermission.tsx | 105 | high | WorkerPendingPermission |
| utils/permissions/getNextPermissionMode.ts | 102 | high | getNextPermissionMode, cyclePermissionMode |
| components/SandboxViolationExpandedView.tsx | 99 | high | SandboxViolationExpandedView |
| utils/permissions/classifierDecision.ts | 99 | high | isAutoModeAllowlistedTool |
| components/permissions/PowerShellPermissionRequest/powershellToolUseOptions.tsx | 91 | high | PowerShellToolUseOption, powershellToolUseOptions |
| components/permissions/FileWritePermissionRequest/FileWriteToolDiff.tsx | 89 | high | FileWriteToolDiff |
| components/BypassPermissionsModeDialog.tsx | 87 | high | BypassPermissionsModeDialog |
| components/tasks/ShellProgress.tsx | 87 | high | TaskStatusText, ShellProgress |
| commands/sandbox-toggle/sandbox-toggle.tsx | 83 | high | call |
| utils/permissions/dangerousPatterns.ts | 81 | high | CROSS_PLATFORM_CODE_EXEC, DANGEROUS_BASH_PATTERNS |
| remote/remotePermissionBridge.ts | 79 | high | createSyntheticAssistantMessage, createToolStub |
| utils/permissions/PermissionUpdateSchema.ts | 79 | high | permissionUpdateDestinationSchema, permissionUpdateSchema |
| tasks/LocalShellTask/killShellTasks.ts | 77 | high | killTask, killShellTasksForAgent |
| components/permissions/rules/PermissionRuleDescription.tsx | 76 | high | PermissionRuleDescription |
| components/shell/ShellTimeDisplay.tsx | 74 | high | ShellTimeDisplay |
| tools/testing/TestingPermissionTool.tsx | 74 | high | TestingPermissionTool |
| components/permissions/PermissionDialog.tsx | 72 | high | PermissionDialog |
| components/permissions/PermissionRequestTitle.tsx | 66 | high | PermissionRequestTitle |
| hooks/toolPermission/handlers/coordinatorHandler.ts | 66 | high | handleCoordinatorPermission |
| components/PromptInput/SandboxPromptFooterHint.tsx | 64 | high | SandboxPromptFooterHint |
| utils/permissions/bashClassifier.ts | 62 | high | PROMPT_PREFIX, ClassifierResult, ClassifierBehavior, extractPromptDescription |
| utils/swarm/leaderPermissionBridge.ts | 55 | high | SetToolUseConfirmQueueFn, SetToolPermissionContextFn, registerLeaderToolUseConfirmQueue, getLeaderToolUseConfirmQueue |
| commands/sandbox-toggle/index.ts | 51 | high | — |
| components/permissions/WorkerBadge.tsx | 49 | high | WorkerBadgeProps, WorkerBadge |
| components/sandbox/SandboxDoctorSection.tsx | 46 | high | SandboxDoctorSection |
| utils/permissions/denialTracking.ts | 46 | high | DenialTrackingState, DENIAL_LIMITS, createDenialTrackingState, recordDenial |
| components/sandbox/SandboxConfigTab.tsx | 45 | high | SandboxConfigTab |
| bridge/bridgePermissionCallbacks.ts | 44 | high | isBridgePermissionResponse |
| components/permissions/FilePermissionDialog/ideDiffConfig.ts | 43 | high | FileEdit, IDEDiffConfig, IDEDiffChangeInput, IDEDiffSupport |
| tasks/LocalShellTask/guards.ts | 42 | high | BashTaskKind, LocalShellTaskState, isLocalShellTask |
| migrations/migrateBypassPermissionsAcceptedToSettings.ts | 41 | high | migrateBypassPermissionsAcceptedToSettings |
| utils/permissions/PermissionRule.ts | 41 | high | permissionBehaviorSchema, permissionRuleValueSchema |
| utils/permissions/autoModeState.ts | 40 | high | setAutoModeActive, isAutoModeActive, setAutoModeFlagCli, getAutoModeFlagCli |
| utils/permissions/classifierShared.ts | 40 | high | extractToolUseBlock, parseClassifierResponse |
| components/shell/ExpandShellOutputContext.tsx | 36 | high | ExpandShellOutputProvider, useExpandShellOutput |
| utils/permissions/PermissionResult.ts | 36 | high | getRuleBehaviorDescription |
| tools/PowerShellTool/commonParameters.ts | 31 | high | COMMON_SWITCHES, COMMON_VALUE_PARAMS, COMMON_PARAMETERS |
| components/permissions/utils.ts | 26 | high | logUnaryPermissionEvent |
| utils/shell/shellToolUtils.ts | 23 | high | SHELL_TOOL_NAMES, isPowerShellToolEnabled |
| commands/permissions/index.ts | 12 | high | — |
| commands/permissions/permissions.tsx | 10 | high | call |
| tools/PowerShellTool/toolName.ts | 3 | high | POWERSHELL_TOOL_NAME |
| utils/bash/shellCompletion.ts | 260 | medium | ShellCompletionType, getShellCompletions |
| utils/shell/bashProvider.ts | 256 | medium | createBashShellProvider |
| utils/shell/specPrefix.ts | 242 | medium | DEPTH_RULES, buildPrefix |
| utils/promptShellExecution.ts | 184 | medium | executeShellCommandsInPrompt |
| utils/bash/shellQuoting.ts | 129 | medium | quoteShellCommand, hasStdinRedirect, shouldAddStdinRedirect, rewriteWindowsNullRedirect |
| utils/shell/powershellProvider.ts | 124 | medium | buildPowerShellArgs, createPowerShellProvider |
| utils/shell/shellProvider.ts | 34 | medium | SHELL_TYPES, ShellType, DEFAULT_HOOK_SHELL, ShellProvider |
| utils/bash/shellPrefix.ts | 29 | medium | formatShellPrefixCommand |
| utils/shell/outputLimits.ts | 15 | medium | BASH_MAX_OUTPUT_UPPER_LIMIT, BASH_MAX_OUTPUT_DEFAULT, getMaxOutputLength |
| utils/shell/resolveDefaultShell.ts | 15 | medium | resolveDefaultShell |
| utils/sandbox/sandbox-ui-utils.ts | 13 | medium | removeSandboxViolationTags |