← 返回首页

Claude Code 有意思的功能

2026/3/22

Claude Code 技巧 工具

Claude Code 有意思的功能

从官方文档整理,聚焦实用但容易被忽略的功能。


🔥 CLI Flags 精选

会话管理

Flag说明示例
--name / -n给会话命名,显示在提示栏和 /resumeclaude -n "auth-refactor"
--fork-session恢复时创建新会话 ID(保留原会话)claude -r abc123 --fork-session
--worktree / -w在隔离的 git worktree 中启动claude -w feature-auth
--from-pr恢复关联到特定 GitHub PR 的会话claude --from-pr 123

控制模型行为

Flag说明示例
--effort设置努力级别(Opus 4.6)claude --effort high
--model指定模型claude --model opus
--betas启用 beta 功能claude --betas interleaved-thinking

脚本模式

Flag说明示例
--print / -p非交互模式,打印结果后退出claude -p "explain this"
--output-format输出格式(text/json/stream-json)claude -p --output-format json "task"
--json-schema强制 JSON Schema 输出claude -p --json-schema '{"type":"object"}' "task"
--max-turns限制 agentic 轮数claude -p --max-turns 3 "task"
--max-budget-usd限制 API 花费claude -p --max-budget-usd 1.00 "task"

系统提示词控制

Flag说明
--system-prompt替换整个系统提示词
--system-prompt-file从文件加载系统提示词
--append-system-prompt追加到默认提示词末尾
--append-system-prompt-file从文件追加

推荐:用 append 而不是 replace,保留 Claude Code 内置能力。

权限控制

Flag说明
--permission-mode指定权限模式(default/plan/acceptEdits/bypassPermissions)
--allowedTools不需要确认的工具
--disallowedTools完全禁用的工具
--tools限制可用工具

远程和 Web

Flag说明
--remote在 claude.ai 创建 Web 会话
--remote-control启用远程控制(手机/浏览器继续)
--teleport在本地恢复 Web 会话

🧩 Skills 系统

Skills 是扩展 Claude 能力的核心方式。一个 SKILL.md 文件就能添加新功能。

Skills 存放位置

位置路径作用范围
个人~/.claude/skills/<name>/SKILL.md所有项目
项目.claude/skills/<name>/SKILL.md当前项目
插件<plugin>/skills/<name>/SKILL.md插件启用时

Frontmatter 字段

---
name: my-skill
description: 技能描述(Claude 用这个决定何时使用)
argument-hint: [issue-number]  # 自动完成时显示的参数提示
disable-model-invocation: true  # 只能手动 /invoke,Claude 不会自动用
user-invocable: false  # 从 / 菜单隐藏
allowed-tools: Read, Grep  # 限制可用工具
model: opus  # 指定模型
effort: high  # 指定努力级别
context: fork  # 在子代理中运行
agent: Explore  # 子代理类型
---

参数传递

---
name: fix-issue
description: 修复 GitHub issue
---

修复 GitHub issue $ARGUMENTS。

# 或者按位置访问
修复 $0($1 到 $2)

调用:/fix-issue 123$ARGUMENTS = 123

动态上下文注入

!`command` 在发送给 Claude 之前执行命令:

---
name: pr-summary
description: 总结 PR 变更
---

## PR 上下文
- Diff: !`gh pr diff`
- Comments: !`gh pr view --comments`
- Files: !`gh pr diff --name-only`

总结这个 PR...

在子代理中运行

---
name: deep-research
description: 深度研究
context: fork
agent: Explore
---

研究 $ARGUMENTS:
1. 用 Glob 和 Grep 找相关文件
2. 阅读分析代码
3. 总结发现,附上文件引用

内置 Bundled Skills

Skill说明
/batch <instruction>大规模并行修改代码库(5-30 个独立任务)
/claude-api加载 Claude API 参考文档
/debug [description]调试当前会话
/loop [interval] <prompt>定时重复执行 prompt
/simplify [focus]审查最近修改,修复代码质量问题

🪝 Hooks 系统

Hooks 在特定生命周期事件时自动执行 shell 命令。

事件列表

事件触发时机可阻止操作
PreToolUse工具调用前
PostToolUse工具调用后
PermissionRequest权限对话框出现时
UserPromptSubmit用户提交 prompt 时
SessionStart会话开始/恢复时
StopClaude 完成响应时
NotificationClaude 需要输入时
PreCompact / PostCompact上下文压缩前后
ConfigChange配置文件修改时

Hook 配置示例

1. 桌面通知(Claude 需要输入时)

{
  "hooks": {
    "Notification": [
      {
        "matcher": "",
        "hooks": [
          {
            "type": "command",
            "command": "osascript -e 'display notification \"Claude Code 需要你的注意\" with title \"Claude Code\"'"
          }
        ]
      }
    ]
  }
}

2. 自动格式化(编辑后)

{
  "hooks": {
    "PostToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "jq -r '.tool_input.file_path' | xargs npx prettier --write"
          }
        ]
      }
    ]
  }
}

3. 阻止修改敏感文件

{
  "hooks": {
    "PreToolUse": [
      {
        "matcher": "Edit|Write",
        "hooks": [
          {
            "type": "command",
            "command": "\"$CLAUDE_PROJECT_DIR\"/.claude/hooks/protect-files.sh"
          }
        ]
      }
    ]
  }
}

脚本逻辑:检查文件路径,匹配 .envpackage-lock.json 等则 exit 2 阻止。

4. 压缩后重新注入上下文

{
  "hooks": {
    "SessionStart": [
      {
        "matcher": "compact",
        "hooks": [
          {
            "type": "command",
            "command": "echo '提醒:用 Bun 而不是 npm。提交前运行 bun test。'"
          }
        ]
      }
    ]
  }
}

5. 自动批准特定权限

{
  "hooks": {
    "PermissionRequest": [
      {
        "matcher": "ExitPlanMode",
        "hooks": [
          {
            "type": "command",
            "command": "echo '{\"hookSpecificOutput\": {\"hookEventName\": \"PermissionRequest\", \"decision\": {\"behavior\": \"allow\"}}}'"
          }
        ]
      }
    ]
  }
}

Hook 退出码

退出码效果
0操作继续,stdout 内容添加到上下文
2阻止操作,stderr 内容作为反馈给 Claude
其他操作继续,stderr 仅记录

Prompt-based Hooks

用 LLM 做判断而不是固定规则:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "prompt",
            "prompt": "检查所有任务是否完成。如果没有,返回 {\"ok\": false, \"reason\": \"还有什么没做\"}。"
          }
        ]
      }
    ]
  }
}

Agent-based Hooks

需要读取文件或执行命令时用:

{
  "hooks": {
    "Stop": [
      {
        "hooks": [
          {
            "type": "agent",
            "prompt": "验证所有单元测试通过。运行测试套件并检查结果。",
            "timeout": 120
          }
        ]
      }
    ]
  }
}

💡 实用技巧

1. 用 /effort 控制思考深度

/effort high    # 复杂任务
/effort max     # 最难的任务(消耗更多 token)

2. 会话命名便于切换

claude -n "refactor-auth"
# 或会话中
/rename 认证重构

3. 用 --worktree 并行工作

# 在隔离的 worktree 中启动,不干扰主分支
claude -w feature-auth

4. 远程继续工作

/remote-control

生成链接,在手机或浏览器继续当前会话。

5. 脚本模式获取结构化输出

# 获取 JSON 输出
claude -p --output-format json "list all TODOs"

# 强制 JSON Schema
claude -p --json-schema '{"type":"array","items":{"type":"string"}}' "list files"

6. 限制花费

claude -p --max-budget-usd 1.00 --max-turns 5 "task"

🔗 官方资源

📝 文章反馈

你的反馈能帮助我写出更好的文章