专注于前端开发, 追求更好的用户体验, 更好的开发体验 [长沙前端QQ群:234746733]

Claude Code 介绍及使用

内容包括: Claude Code 简介, 安装与配置, 核心功能详解, 子代理系统, 实用技巧, IDE 集成, MCP 扩展, 故障排除, 费用优化策略

Claude Code 简介

Claude Code 是 Anthropic 推出的命令行 AI 编程助手, 将 Claude 的强大能力直接集成到开发工作流中.
类似的: Augment Code(Claude/GPT-5)、Codex(OpenAI GPT-5)、Gemini CLI(Gemini-2.5-Pro, 一天1000次的免费额度)、Factory Droid(免费2kw token)、Cursor CLI.

核心优势

  • 深度代码理解: 分析项目架构、依赖关系和代码结构, 理解常见设计模式
  • 良好的上下文管理: 在单次会话中保持项目理解和代码上下文
  • 自主文件操作: 直接创建、修改、重构文件, 减少手动复制粘贴
  • 子代理系统: 创建专门的 AI 助手处理特定领域任务
  • 命令行集成: 原生命令行体验, 融入开发工作流

与其他工具对比

工具优势劣势适合场景
Claude Code• 优秀的大型项目理解能力
• 重构和架构能力
• UI/UX的细节处理/完成度更优
• 上下文 200k Tokens (最低套餐20w)​
• 订阅费用较高
• IDE插件较弱, 主要配合CLI(上下文)
多模型需借助 claude-code-router
• 偶尔会降智
复杂项目/快速开发
10-40对话/5小时 (每周限额40–80小时) - $20
OpenAI Codex• 优秀的大型项目理解能力(稍逊CC)
CLI开源 / 多模型支持
• 沙盒执行任务和验证, 再应用变更
• 更省token(优于CC)
• 除了CLI, 还有IDE插件
• 上下文 192 Tokens (19w)

• 速度较慢 (解决问题耗时较长)
• 复杂的多文件修改需求感觉逊于CC
规划设计/讨论/修bug
30-150对话/5小时 (每周限额~1000) - $20
Augment Code• 企业级安全合规
• 大型项目的深度理解
• ACE引擎(以向量检索为基础, 最多能索引50w文件)
• 上下文 200k Tokens (20w)
• 支持Prompt提示词优化
• 除了IDE插件, 还有CLI
• 价格较高
• 主要面向企业用户
复杂项目/提示词优化/一次性完成
600次/$50, 已加 125次/$20 套餐
Cursor• 优秀的代码补全
• 流畅的编辑体验
• 项目级理解能力有限(上下文被缩减)
• 计费结构不清晰 / 配额消耗快
日常编码/代码补全
≈225次高级模型/月 - $20
开通Max mode支持200k Tokens
Trae• 支持Prompt提示词优化
• 价格实惠
• 项目级理解能力有限
• 暂不支持 Linux
日常编码/代码补全
600次高级模型/月 - $10
GitHub Copilot• 广泛的 IDE 集成
• 相对便宜
• 项目级理解能力有限(8k-16k tokens)
• 文件操作能力较弱
• 部分模型感觉降智
日常编码/问题解答
300次高级模型/月 - $10

套餐与定价

官方订阅套餐

Claude Code 提供以下订阅选项(官方套餐说明):

套餐价格Claude Code 额度模型配比适用人群
Pro$20/月10-40 prompts/5小时 (1x基准)100% Sonnet 4个人开发者
Max 5x$100/月50-200 prompts/5小时 (5x)20% Opus 4 + 80% Sonnet 4小团队
Max 20x$200/月200-800 prompts/5小时 (20x)50% Opus 4 + 50% Sonnet 4大团队/企业

提示: 额度会根据对话复杂度和上下文大小动态调整

API 按量计费 (预付费模式, 购买 usage credits)

如果希望更灵活的付费方式, 可以使用 Anthropic API 按量计费, 最低充值金额$5.

价格参考(MTok - 百万token)

模型输入价格输出价格适用场景
Claude Haiku 3.5$0.80/MTok$4/MTok简单任务, 快速响应
Claude Sonnet 4$3/MTok$15/MTok平衡性能和成本
Claude Opus 4$15/MTok$75/MTok复杂推理任务

付费方式选择建议

付费方式计费模式价格参考优势劣势
订阅套餐月费 + 使用限制$20-200/月使用简单, 可预测费用
可用 Claude.ai 网页版 / App
有使用额度限制
API 预付费充余额 + Token 消耗$3-15/MTok (根据模型)
无月费, 按需购买 credits
按需付费, 无额度限制重度使用费用远超订阅

安装与配置

系统要求

  • OS: macOS 10.15+, Ubuntu 20.04+/Debian 10+, or Windows 10/11 or WSL
  • Hardware: 4GB RAM minimum 8GB+ recommended
  • Node.js 18+
  • Git 环境
  • 支持的终端(推荐使用现代终端如 Windows Terminal、iTerm2 等)

安装步骤

1. 下载和安装

npm install -g @anthropic-ai/claude-code

2. 配置环境

# windows 系统需要
export CLAUDE_CODE_GIT_BASH_PATH="=C:\Program Files\Git\bin\bash.exe"

# 验证安装
claude --version

# 登录账号
claude

# 首次运行会提示登录 (配置了 ANTHROPIC_AUTH_TOKEN/ANTHROPIC_BASE_URL 不会询问)
#  Select login method:
#  ❯ 1. Claude account with subscription (订阅)
#    2. Anthropic Console account (API 方式)
#     API usage billing

/login # 可重新登录
/logout # 登出

基础配置

全局配置

Claude Code 的配置主要通过 JSON 文件管理.配置文件说明:

  • 全局配置: ~/.claude/settings.json - 全局设置
  • 项目配置: .claude/settings.json - 项目级设置, 可提交到版本控制
  • 本地配置: .claude/settings.local.json - 个人设置, 不提交到版本控制
{
  "permissions": {
    "allow": [
      "Bash(npm run build:*)",
      "Bash(ls:*)",
      "Bash(rm:*)",
      "Bash(mv:*)",
      "Bash(mkdir:*)",
      "Bash(grep:*)",
      "Bash(cat:*)",
      "Bash(rg:*)",
      "Bash(find:*)",
      "Bash(npm install:*)",
      "Bash(npm run type-check:*)",
      "Bash(npm run typecheck:*)",
      "Bash(npx tsc:*)",
      "WebFetch(domain:github.com)",
      "WebFetch(domain:i.ibb.co)"
    ],
    "deny": [
      "Bash(pnpm -F * format)",
      "Bash(pnpm *:dev)"
    ]
  },
  "env": {
    // "ANTHROPIC_AUTH_TOKEN": "",
    // "ANTHROPIC_BASE_URL": "",
  }
}

settings / env 配置参见

核心功能详解

常用命令行选项

claude          # 启动交互模式

claude -r       # 显示历史对话选择菜单, 可选择继续之前的会话
claude -c       # 继续上一个会话(最近的会话)
# claude --dangerously-skip-permissions  # 跳过权限确认, 自动执行命令 (自动执行 format/rm 等命令, 需谨慎)

交互式命令

/help           # 显示帮助和可用命令
/status         # 显示 Claude Code 状态(版本、模型、账户、API 连接等)
/context        # 可视化当前上下文使用情况
/cost           # 显示当前会话的总费用和持续时间
/clear          # 清除对话历史并释放上下文
/compact        # 清除对话历史但在上下文中保留摘要

/login          # 使用 Anthropic 账户登录
/logout         # 从 Anthropic 账户登出

/init           # 初始化新的 CLAUDE.md 文件和代码库文档
/memory         # 编辑 Claude 内存文件 (/init CLAUDE.md)
/add-dir        # 添加新的工作目录
/ide            # 管理 IDE 集成并显示状态

/config         # 打开配置面板
/model          # 设置 Claude Code 的 AI 模型(一般无需设置)
/permissions    # 管理允许和拒绝工具权限规则
/output-style   # 直接设置输出样式或从选择菜单设置
/output-style:new # 创建自定义输出样式
/vim            # 在 Vim 和普通编辑模式之间切换
/statusline     # 设置 Claude Code 的状态栏 UI(对话框下面)
/doctor         # 诊断和验证 Claude Code 安装和设置

/agents         # 管理代理配置(Eg. Code Reviewer, Software Architect, Data Scientist)
/hooks          # 管理钩子配置(文件读写/提交Prompt等 https://docs.anthropic.com/zh-CN/docs/claude-code/hooks)
/mcp            # 管理 MCP 服务器(https://docs.anthropic.com/zh-CN/docs/claude-code/mcp)

# 会话管理
/export         # 将当前对话导出到文件或剪贴板
/resume         # 恢复对话
/todos          # 列出当前todo事项

# github
/review         # 审查拉取请求
/pr-comments    # 从 GitHub 拉取请求获取评论
/security-review # 完成当前分支上待处理更改的安全审查
/install-github-app # 为仓库设置 Claude GitHub Actions

使用示例

Claude Code 能够通过自然语言对话直接操作代码, 支持从单文件到项目级的各种操作:

# 启动交互模式
claude

# 常用对话示例:
> 帮我分析这个项目的架构
> 创建一个用户登录的 React 组件
> 重构 utils/helpers.js 文件, 提高可读性
> 为 UserModel 添加数据验证方法

# 批量处理相似任务
> 为 services/ 目录下所有文件添加单元测试
> 批量更新所有组件的 README 文档
> 优化所有 SQL 查询的性能

# 项目级操作 - 架构重构
> 将项目从 JavaScript 迁移到 TypeScript
> 重构项目使用 Clean Architecture 模式
> 添加国际化支持到整个应用

子代理系统 (Sub-agents)

什么是子代理?

子代理 是为特定任务优化的 AI 助手, 每个子代理都有独立的上下文窗口和专业提示词, 可以专注处理特定领域的问题.

子代理存储为带有 YAML 前言的 Markdown 文件(文件头为---包起来的 YAML格式内容):

  • 用户子代理: ~/.claude/agents/ - 在所有项目中可用
  • 项目子代理: .claude/agents/ - 特定于项目, 可与团队共享

子代理与 AI agent 概念不同, 主要通过专业化的提示词和上下文来提供领域专家级别的帮助, 而实际的文件操作、代码执行等能力由 Claude Code 本身提供.

自定义子代理创建

  • 方式1, 通过 CLI (/agents) 交互式创建
/agents
# Create new agent (例子, 创建 `软件架构师` 子代理)
1. Generate with Claude (recommended)
# 描述该代理应该做什么以及应使用何时使用(尽量详细)
比如: Software Architect, 回车自动生成

2. Manual configuration (手动输入描述) 
# 2.1 Enter a unique identifier for your agent:
software-architect

# 2.2 Enter the system prompt for your agent:
You are a Senior Software Architect with 15+ years of experience designing scalable, maintainable systems across diverse domains. You possess deep expertise in distributed systems, microservices, cloud architectures, design patterns, and technology evaluation.

Your core responsibilities:
- Analyze requirements and constraints to design optimal system architectures
- Recommend appropriate technology stacks, frameworks, and tools
- Identify potential bottlenecks, scalability issues, and technical risks
- Provide clear architectural diagrams and documentation when beneficial
- Balance technical excellence with business pragmatism and delivery timelines
- Consider non-functional requirements: performance, security, maintainability, cost

When providing recommendations:
- Start with the simplest solution that meets requirements
- Justify technology choices with concrete benefits
- Consider the team's expertise and learning curve
- Address both immediate needs and future growth
- Include rough estimates for complexity and timeline when helpful
- Suggest phased implementation approaches for complex systems

Always ask for clarification when requirements are ambiguous, and provide multiple options when there are valid architectural alternatives. Focus on practical, implementable solutions rather than theoretical perfection. 

# 2.3 When should Claude use this agent? # description
Use this agent when you need high-level system design guidance, architectural decisions, technology stack recommendations, or strategic technical planning.

# 2.4 Select model 选择模型 比如 sonnet
  • 方式2, 通过 Markdown 文件创建
mkdir -p .claude/agents
# 创建子代理文件
tee .claude/agents/security-expert.md << 'EOF'
---
name: 安全专家
description: 专注于代码安全和漏洞检测
---

你是一位资深的网络安全专家和代码安全审计师.请重点关注: 

1. SQL 注入、XSS 等常见安全漏洞
2. 认证和授权机制的安全性
3. 敏感数据的处理和存储
4. 第三方依赖的安全风险
5. 安全编码最佳实践
EOF

子代理使用

/agents # 管理子代理

# 对话里 使用子代理
# @agent-xxx 

> @agent-安全专家 分析下 ./scripts/ 目录内的 sh 脚本
> 使用 software-architect 子代理帮我重构这个组件
  # ● 安全专家(Security analysis of shell scripts)
  #   ⎿  Done (15 tool uses · 39.3k tokens · 2m 3.3s)     
  # ● 安全分析报告
  # ......
# 高级用法 (多个子代理)
> 首先使用 code-analyzer 子代理找到性能问题, 然后使用 optimizer 子代理修复它们

awesome-claude-code-subagents 收集了各种子代理的示例

实用技巧

常用操作

# 文件引用
@文件名                   # 引用文件到对话上下文中

# 快捷键操作
Ctrl+C                   # 取消当前输入或生成
# 自动编辑模式
Mac: Shift+Tab; Windows: Alt+M

# 对话框输入换行
/terminal-setup          # 支持 Shift+Enter 换行功能(VSCode / Cursor / iTerm2)
# 不支持的终端: 输入 `\` 再 回车 换行

# 执行终端命令
! # 输入英文`!`, 会提示 `! for bash mode`
# ls 等执行 bash 命令

↑ / ↓           # 切换之前的输入问题
ESC 2次         # 恢复到之前的对话 (回到决策点开始新对话, 类似 Git 的 checkout 切换到历史)
                # 回溯以后, 可反悔(重新打开 claude 或 /resume恢复会话), 产生新对话后,以前的分支不能再还原
                # 开始 → 分叉点 (← ESC 2次选择) --→ 原分支(可能丢失)
                #            └─→ 新分支 (← 当前)

图片处理功能

# 添加图片的方式:

1. 上传到图床后粘贴 URL (比如 https://imgbb.com/, 选择 1 小时候后自动删除)
  > https://example.com/image.png 针对这张图片...
2. 直接拖拽图片到输入框
  > c:\Users\Administrator\Desktop\image.png 针对这张图片...
3. 项目内引用图片
  > @path/to/image.jpg 针对这张图片...
macOS 上直接使用 ctrl+v 就可以粘贴图片 `[Image #xx]`

提供清晰的上下文

# ❌ 模糊的请求
> 优化这个代码

# ✅ 清晰的请求  
> 优化 src/utils/api.js 中的 fetchUserData 函数, 重点关注: 
> 1. 减少网络请求次数
> 2. 添加缓存机制
> 3. 改进错误处理

指定期望的输出格式

# 要求特定格式的输出
> 创建一个用户登录组件, 要求: 
> - 使用 React Hook Form 进行表单管理
> - 包含邮箱和密码字段验证
> - 支持记住密码功能
> - 使用 独立的 scss 定义样式
> - 添加 TypeScript 类型定义

分解复杂任务

# ❌ 一次性给出太多指令, Claude 可能无法有效处理所有步骤; 缺乏灵活性, 无法根据中间结果调整后续步骤
> 我想重构这个电商项目的支付模块, 请分步骤进行: 
> 1. 先分析现有代码的问题
> 2. 设计新的架构
> 3. 迁移现有功能
> 4. 添加测试覆盖

# ✅ 迭代式协作; 更好的上下文连续性; 如果某一步出问题, 容易调整
> 我想重构这个电商项目的支付模块, 请先帮我分析现有代码的问题
# (完成分析后)
> 基于刚才的分析, 请设计一个新的支付模块架构
# (完成设计后)
> 现在开始实现新的支付服务类

# 注: 通过提示词, 触发 Thinking 模式, 分配额外计算预算,处理复杂任务
  # think (思考): 基础思考
  # think hard (深入思考): 增加思考预算
  # think harder (更深入思考): 更多计算能力
  # ultrathink (超深入思考): 最大思考分配 (最多token消耗, 建议 陷入重复循环 才使用)
> 基于 1...,2...., 3...., 思考 xx 有没有必要性, 并解决以上问题

回滚代码

# 1. 通过对话
> 回滚到上次的代码

# 2. ccundo 命令
npm install -g ccundo
ccundo list # 查看回滚历史
ccundo undo # 回滚到上次的代码
ccundo redo # 重做上次的代码

# 3. 通过 git (确定的修改 先存入到暂存区)

CLAUDE.md 优化

Claude Code 启动对话会自动加载CLAUDE.md作为上下文.

  • ~/.claude/CLAUDE.md 为全局配置
  • .claude/CLAUDE.md 为项目配置 (支持多层级 按需加载多个md, 比如monorepo架构)
  • 通过 /init 分析项目结构, 自动生成CLAUDE.md (可后续多次执行 调整)
  • 通过 # + 描述 新增内容到CLAUDE.md
  • 通过 /memory 编辑 CLAUDE.md 内容 或 编辑器直接编辑

CLAUDE.md (类似Cursor的Rules)没有固定格式, 建议使用2空格缩进. 内容比如:

  • 常用bash命令(如, 描述 npm run xxx 的功能)
  • 核心文件与函数(如 描述目录/文件等, 描述架构/技术等)
  • 代码风格 (如, lint/驼峰命名 等)
  • 测试指令 (如, 如何进行单元测试 等)
  • git仓库规范(如, 分支命名/commit规范 等)
  • 你想让克劳德记住的其他信息 (如: 所有对话和文档都使用中文, 所有注释都使用英文 等)
  • 可通过加强语气(如IMPORTANTYOU MUSTNEVERALWAYS 等关键词)来强调重点

CLAUDE.md 应保持持续迭代, 以适应不断变化的业务需求.
保持简洁易读, 只将重要背景内容放到CLAUDE.md, 有时添加大量内容反而负优化.

IDE 集成

VS Code / Cursor 等 集成

在 应用商店 中搜索 "Claude Code", 功能: 让 cc 通过 /ide 可以连接当前IDE, 或 通过点击插件图标启动Claude Code

/ide # Claude Code 使用 `/ide` 可以连接到 IDE (上下文共享: 打开的文件/光标选中的内容/lint等)

# 之前还可通过 npm 包 手动安装 claude-code.vsix 到IDE
# ls "$(npm root -g)/@anthropic-ai/claude-code/vendor/" 

其他 IDE 参照 Claude Code 添加到IDE

MCP 扩展

什么是 MCP?

Model Context Protocol (MCP) 是一个开放标准, 让 AI 模型能够安全地与外部工具和数据源交互.

使用 MCP

# 管理 MCP 服务器
claude mcp list                                           # 列出已安装的服务器
claude mcp add [options] <name> <commandOrUrl> [args...]  # 添加一个 MCP 服务器
claude mcp add-json [options] <name> <json>               # 使用JSON字符串添加MCP服务器
claude mcp remove [options] <name>                        # 删除一个 MCP 服务器
claude mcp get <name>                                     # 获取一个 MCP 服务器的配置
claude mcp serve [options]                                # 启动一个 MCP 服务器

设计工具集成

Figma MCP

# 1. [获取token](https://www.figma.com), 点击左上角用户名, Setting, Security页签 - Personal access tokens

# 2. 安装 MCP
# claude mcp add "Framelink_Figma_MCP" -- npx -y figma-developer-mcp --figma-api-key=YOUR-KEY --stdio
claude mcp add-json "Framelink-Figma-MCP" '{"command":"npx","args":["-y","figma-developer-mcp","--figma-api-key=YOUR-KEY","--stdio"]}'
# windows 需改成 cmd /c
claude mcp add-json "Framelink-Figma-MCP" '{"command":"cmd","args":["/c","npx","-y","figma-developer-mcp","--figma-api-key=YOUR-KEY","--stdio"]}'

# 3. 生成代码
# 图层 - 右键, Copy/Paste - Copy link to selection, 复制链接

> 帮我分析下设计稿中的组件: https://www.figma.com/design/mbtwk6OgVdxxmOBEvtRgz6/Figma-basics?node-id=4368-321123&t=T9MI5Z56aCCX0DWY-4
> 根据设计稿生 https://mastergo.com/file/155675508499265?page_id=2109%3A5434&layer_id=2109%3A8956, 生成 demos/DesignTools.tsx 页面的代码

# Other: postgres/mysql/sqlite mcp-server               

MasterGo MCP

# 1. [获取token](https://mastergo.com/files/account?tab=security)

# 2. 安装 MCP
claude mcp add-json "mastergo-magic-mcp" '{"command":"npx","args":["-y","@mastergo/magic-mcp"],"env": { "MG_MCP_TOKEN": "<MG_MCP_TOKEN>", "API_BASE_URL": "https://mastergo.com" }}'
# windows 需改成 cmd /c
claude mcp add-json "mastergo-magic-mcp" '{"command":"cmd","args":["/c","npx","-y","@mastergo/magic-mcp"],"env": { "MG_MCP_TOKEN": "<MG_MCP_TOKEN>", "API_BASE_URL": "https://mastergo.com" }}'

# 3. 生成代码
> 根据设计稿生 https://mastergo.com/file/155675508499265?page_id=2109%3A5434&layer_id=2109%3A8956, 生成 @MasterGo.tsx 页面的代码
# 或, 设计稿-容器-右键-复制链接, 根据设计稿生成对应的 React 组件

# - 报错: {"code":"10003","message":"禁止访问,请确认token是否正确或确保您有MasterGo团队版及以上权限的编辑席位或研发席位"}
# 开始收费, 须要购买 MasterGo 团队版

自定义 MCP 扩展

创建 MCP 服务

# 官方的脚手架 创建 mcp 服务
npx  -y @modelcontextprotocol/create-server my-server

# 基于 MCP 官方 SDKs, 创建 mcp 服务(TS/Python/Java/Go/Rust 等)
https://modelcontextprotocol.io/docs/sdk
# 每个语言的 SDK 都包含简单示例, 可以参考

# 可参考: [从零开始教你打造一个MCP客户端](https://mp.weixin.qq.com/s/zYgQEpdUC5C6WSpMXY8cxw)

MCP 相关资源

故障排除

网络连接问题

# 问题: 无法连接到 Anthropic 服务
# 检查网络连接
ping api.anthropic.com

# 设置代理
export HTTP_PROXY=http://proxy.example.com:8080
export HTTPS_PROXY=http://proxy.example.com:8080

高CPU或内存使用率

1. 使用 /compact 命令定期压缩上下文
2. 关闭并重新启动 Claude Code
3. 考虑将大型构建目录添加到 .gitignore 文件中, 还可以手动排除:
# .claude/settings.json:
{
  "permissions": {
    "deny": [
      "Read(tests/**)"
    ]
  }
}

Windows下, VSCode 等IDE的 Git Bash 里卡顿, 或 不能用 /ide 连接

使用 `TERM_PROGRAM= claude` 启动 Claude Code
# 或者 basrch/zshrc 里添加:
alias claude="TERM_PROGRAM= claude"
# 参考: https://github.com/anthropics/claude-code/issues/5887
# 可能是cc基于 $TERM_PROGRAM 加了一些终端特性处理逻辑 有bug

费用优化策略

订阅方式

  1. 用App Store/Google Pay订阅 (网页订阅比较严格: 国外ip + 国外信用卡):

    • 科学上网 可考虑新加坡/日本/美国 等ip ("anthropic.com", "claude.com", "claude.ai").
    • 账号推荐用 Google账号三方登录.
    • App Store - 外区的apple id(比如美国), 下载Claude Code, 淘宝购买礼品卡充值, 再订阅.
  2. 使用第三方中转服务(无需科学上网):

    • AnyRouter 免费, 通过邀请注册送$50, 每天送$25(限linux.do账号/.edu.cn邮箱), 不太稳(错峰使用)
    • AgentRouter 免费, 通过邀请注册送$100, 支持 CC/codex
    • 三方中转服务商有很多, 可搜索到很多收费的站点, 如: AiCodemirror(订阅) / PackyCode(订阅) / ClaudeHub(按量/订阅) / InstCopilot(按量) / FoxCode(按量/订阅) 等等.
  3. 尼日利亚订阅Pro, 14900 NGN (¥70+)

    购买(尼区Apple id)-改成自己Gmail邮箱, 闲鱼购买礼品卡充值(先下载Claude Code登录用段时间再订阅, 有封号/风控风险).

节省 token 的技巧

1. 利用项目配置文件减少重复说明 (/init 创建 CLAUDE.md)
2. 具体指令: 使用精确的提示词, 提供清晰、详细的需求, 减少来回修正
3. @文件标记: 精确选择需要的文件, 避免包含无关上下文
4. 分步骤执行: 将复杂任务拆分为多个小任务, 减少上下文大小
  > 先帮我分析当前项目架构的问题
  > (完成后)基于分析结果, 设计新的架构方案
  > (完成后)开始重构核心模块
5. 批量处理: 同时处理多个相似的小任务
  > 一次性为这些工具函数添加TypeScript类型: 
  > utils/format.js, utils/validate.js, utils/convert.js
6. 利用上下文缓存: 在5分钟内的后续请求会复用缓存, 降低成本和延迟
7. 优化内存占用(除了自动忽略.gitignore里的文件, 还可以手动忽略)
  # .claude/settings.json:
  {
    "permissions": {
      "deny": [
        "Read(tests/**)"
      ]
    }
  }

使用量监控

/cost  # 查看当前会话费用
/usage # 查看历史使用统计

# 使用三方工具 ccusage
# npx -y ccusage@latest
npm install -g ccusage

ccusage          # Show daily report (default)
ccusage monthly  # Monthly aggregated report

ccusage daily --instances  # Group by project/instance
ccusage daily --project myproject  # Filter to specific project

┌──────────┬────────────┬──────────┬──────────┬──────────┐
│ Date     │ Models     │    Input │   Output │     Cost │
│          │            │          │          │    (USD) │
├──────────┼────────────┼──────────┼──────────┼──────────┤
│ 2025     │ - sonnet-4 │       75 │    6,127 │    $0.49 │
│ 09-01    │            │          │          │          │
├──────────┼────────────┼──────────┼──────────┼──────────┤
│ Total    │            │       75 │    6,127 │    $0.49 │
└──────────┴────────────┴──────────┴──────────┴──────────┘

快速切换Claude API

  1. 创建 ~/.claude/switch.sh, Claude 配置切换脚本
#!/usr/bin/env bash
set -euo pipefail
# Claude 配置切换脚本
# 用法:switch.sh [list | use <name> | global <name>]

CLAUDE_DIR="${HOME}/.claude"
GLOBAL_ENV="${CLAUDE_DIR}/claude.env"
mkdir -p "$CLAUDE_DIR"

# API 配置:name|base_url|token|note
read -r -d '' PROFILES <<'EOF' || true
claude.ai|https://api.anthropic.com||Claude Pro 需 /login 登录
anyrouter|https://anyrouter.top|YOUR-TOKEN|
# 例: custom|https://your.endpoint|sk-xxxxxxxx|自定义说明
EOF

# 通用配置查找函数
find_profile() {
    local query="$1" i=0
    echo "$PROFILES" | sed '/^#/d; /^$/d' | while IFS='|' read -r name url token note; do
        i=$((i+1))
        if [[ "$query" == "$name" || "$query" == "$i" ]]; then
            printf '%s|%s|%s|%s\n' "$name" "$url" "${token:-}" "${note:-}"
            return
        fi
    done
}
# 显示当前状态
show_status() {
    local current="${ANTHROPIC_BASE_URL:-<未设置>}"
    local global=""
    [[ -f "$GLOBAL_ENV" ]] && global=$(grep ANTHROPIC_BASE_URL "$GLOBAL_ENV" 2>/dev/null | cut -d"'" -f2 || echo "")
    echo "当前: $current${global:+ | 全局: $global}"
}
# 列出所有配置
list_profiles() {
    local i=0
    echo "$PROFILES" | sed '/^#/d; /^$/d' | while IFS='|' read -r name url token note; do
        printf " %2d) %-12s %-30s %s\n" "$((++i))" "$name" "$url" "${note:+✴ $note}"
    done
}
# 显示切换提示
show_cs_hints() {
  echo -e "\n⚡ \`cs use $1\` (当前会话临时切换) | \`cs global $1\` (全局切换)"
}
# 交互式菜单
interactive_menu() {
    {
        echo "Claude 配置切换器"
        echo "=================="
        show_status
        echo "可用配置:"
        list_profiles
        echo " 0) 退出"
    } >&2
    
    local total=$(echo "$PROFILES" | sed '/^#/d; /^$/d' | wc -l)
    while read -rp "请选择配置 (0-$total): " n; do
        [[ "$n" =~ ^[0-9]+$ ]] || { echo "❌ 请输入数字" >&2; continue; }
        [[ "$n" -eq 0 ]] && { echo "已取消" >&2; exit 0; }
        [[ "$n" -ge 1 && "$n" -le "$total" ]] && break
        echo "❌ 无效选择" >&2
    done
    
    local line; line=$(find_profile "$n")
    IFS='|' read -r name url token note <<<"$line"
    
    # export for parent shell
    echo "export ANTHROPIC_BASE_URL='$url'"
    [[ -n "$token" ]] && echo "export ANTHROPIC_AUTH_TOKEN='$token'" || echo "unset ANTHROPIC_AUTH_TOKEN"
    
    {
        echo "✅ 已选择: $name | $url"
        [[ -n "$note" ]] && echo "✴ $note"
        show_cs_hints "$name"
    } >&2
}
# 当前shell中切换
cmd_use() {
    local target="${1:-}"
    [[ -z "$target" ]] && { echo "❌ 用法: $0 use <name>" >&2; return 2 2>/dev/null || exit 2; }
    
    local line; line=$(find_profile "$target")
    [[ -z "$line" ]] && { echo "❌ 未找到配置: $target" >&2; return 1 2>/dev/null || exit 1; }
    
    IFS='|' read -r name url token note <<<"$line"
    
    # export for parent shell
    echo "export ANTHROPIC_BASE_URL='$url'"
    [[ -n "$token" ]] && echo "export ANTHROPIC_AUTH_TOKEN='$token'" || echo "unset ANTHROPIC_AUTH_TOKEN"
    
    {
        echo "✅ 已切换到: $name | $url"
        [[ -n "$note" ]] && echo "✴ $note"
    } >&2
}
# 设置全局默认
cmd_global() {
    local target="${1:-}"
    [[ -z "$target" ]] && { echo "❌ 用法: $0 global <name>" >&2; exit 2; }
    
    local line; line=$(find_profile "$target")
    [[ -z "$line" ]] && { echo "❌ 未找到配置: $target" >&2; exit 1; }
    
    IFS='|' read -r name url token note <<<"$line"
    
    # 写入全局配置
    {
        echo "export ANTHROPIC_BASE_URL='$url'"
        [[ -n "$token" ]] && echo "export ANTHROPIC_AUTH_TOKEN='$token'" || echo "unset ANTHROPIC_AUTH_TOKEN"
    } > "$GLOBAL_ENV"
    
    # 为当前会话也输出导出语句
    echo "export ANTHROPIC_BASE_URL='$url'"
    [[ -n "$token" ]] && echo "export ANTHROPIC_AUTH_TOKEN='$token'" || echo "unset ANTHROPIC_AUTH_TOKEN"
    
    {
        echo "✅ 已写入全局配置: $GLOBAL_ENV"
        echo "   $url"
        [[ -n "$note" ]] && echo "✴ $note"
    } >&2
}
# 主逻辑
case "${1:-}" in
    use)    shift; cmd_use "${1:-}" ;;
    global) shift; cmd_global "${1:-}" ;;
    "")     interactive_menu ;;
    *)      echo "用法: $0 [use <name>|global <name>]" >&2; exit 2 ;;
esac
  1. 配置 ~/.zshrc~/.bashrc
# 自动加载全局 Claude 配置
[ -f "$HOME/.claude/claude.env" ] && source "$HOME/.claude/claude.env"
# claude switch
cs() {
  eval "$(~/.claude/switch.sh "$@")"
}
  1. 使用 cs 切换配置
cs # 查看当前配置 或 当前终端切换API
cs use claude.ai # 当前终端切换API
cs global anyrouter # 设置全局API

扩展阅读

/ 分类: 工具,实践 / TrackBackhttps://xhl.me/archives/claude-code/trackback标签: AI, Claude

添加新评论 »