权限系统
SDK 的权限系统控制工具的执行权限,支持四种模式。
权限模式
| 模式 | 说明 | 适用场景 |
|---|---|---|
auto |
自动执行低风险操作,高风险请求确认 | 日常开发 |
manual |
所有工具调用都需要用户确认 | 生产环境 |
bypass |
跳过所有权限检查 | 自动化脚本 |
plan |
仅做风险评估,不执行 | 预览模式 |
配置权限模式
import { ClaudeCodeSDK } from 'claude-code-sdk-ts'
const sdk = new ClaudeCodeSDK({
llm: { /* ... */ },
permissionMode: 'manual', // 所有工具调用都需要确认
})
自定义权限规则
import { ClaudeCodeSDK } from 'claude-code-sdk-ts'
const sdk = new ClaudeCodeSDK({
llm: { /* ... */ },
permissionMode: 'auto',
permissionRules: [
{
tool: 'BashTool',
allowPatterns: ['ls', 'cat', 'echo'], // 这些命令自动允许
denyPatterns: ['rm', 'sudo', 'chmod'], // 这些命令自动拒绝
},
{
tool: 'FileWriteTool',
allowPaths: ['./src/**'], // 只允许写入 src 目录
denyPaths: ['./node_modules/**'], // 禁止修改 node_modules
},
],
})
运行时权限控制
import { PermissionManager } from 'claude-code-sdk-ts'
const pm = new PermissionManager()
// 检查工具是否允许执行
const request = {
tool: 'BashTool',
input: { command: 'ls -la' },
riskLevel: 'low',
}
const decision = pm.evaluate(request)
if (decision.allowed) {
console.log('允许执行')
} else {
console.log(`拒绝: ${decision.reason}`)
}