Web Analytics

claude-sh

⭐ 111 stars Simplified Chinese by jdcodes1

claude.sh

Claude 代码重写为 bash 脚本。约1,500行。零 npm 包。

为什么

原始 Claude 代码约38万行 TypeScript,依赖266个 npm 包。该脚本用 bash 仅依赖 curljq 实现相同核心功能。

功能

安装

git clone https://github.com/jdcodes1/claude.sh.git
cd claude.sh
chmod +x claude.sh

依赖项

运行时版本固定在 .tool-versions 中。使用 mise 安装它们:

mise install

使用方法

export ANTHROPIC_API_KEY="sk-ant-..."
./claude.sh

环境变量

| 变量 | 默认值 | 描述 | | --- | --- | --- | | ANTHROPIC_API_KEY | (必填) | 您的 Anthropic API 密钥 | | CLAUDE_MODEL | claude-sonnet-4-6 | 使用的模型 | | CLAUDE_MAX_TOKENS | 8192 | 最大输出令牌数 | | ANTHROPIC_API_URL | https://api.anthropic.com | API 基础 URL | | CLAUDE_SH_PERMISSIONS | ask | 权限模式:askallowdeny |

命令

/help      — Show help
/cost      — Show session cost
/model     — Show/change model
/clear     — Clear conversation
/save      — Save current session
/resume    — List/resume saved sessions
/commit    — Auto-generate a git commit
/diff      — Show git diff
/quit      — Exit

恢复会话

# List saved sessions
./claude.sh
/resume

Resume by number

/resume 1

Resume from CLI

./claude.sh --resume 20240101-120000-12345

架构

claude.sh          # Main REPL loop, slash commands, process_turn()
lib/
  api.sh           # Anthropic API client, SSE streaming via FIFO, retry
  json.sh          # Message construction, session persistence, CLAUDE.md, git context
  tools.sh         # 6 tool implementations + permission system
  tui.sh           # ANSI colors, spinner, display helpers

工作原理

比较

| | claude.sh | Claude Code (TypeScript) | | --- | --- | --- | | 代码行数 | ~1,500 | ~380,000 | | 依赖项 | curl, jq | 266 个 npm 包 | | 二进制大小 | 0(脚本) | ~200MB node_modules | | 启动时间 | 即时 | ~500ms |

测试

测试使用 bats(Bash 自动化测试系统):

bats test/

License

MIT

--- Tranlated By Open Ai Tx | Last indexed: 2026-07-04 ---