Claude Code
安装 Homebrew(推荐国内镜像)
1
2
# 打开终端,执行以下命令使用国内镜像安装:
/bin/zsh -c " $( curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh) "
安装 nvm(Node Version Manager)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 安装 nvm
brew install nvm
# 创建 nvm 目录
mkdir -p ~/.nvm
# 配置环境变量(编辑 ~/.zshrc)
echo 'export NVM_DIR="$HOME/.nvm"' >> ~/.zshrc
echo '[ -s "$(brew --prefix nvm)/nvm.sh" ] && \. "$(brew --prefix nvm)/nvm.sh"' >> ~/.zshrc
echo '[ -s "$(brew --prefix nvm)/etc/bash_completion.d/nvm" ] && \. "$(brew --prefix nvm)/etc/bash_completion.d/nvm"' >> ~/.zshrc
# 使配置生效
source ~/.zshrc
# 验证安装
nvm --version
安装 Node.js(推荐 LTS 版本)
1
2
3
4
5
6
7
8
9
10
11
12
# 安装最新 LTS 版本(推荐)
nvm install --lts
# 或安装指定版本(如 Node.js 20.x)
nvm install 20
# 设置为默认版本
nvm alias default 20
# 验证安装
node --version
npm --version
安装 Claude CLI
1
2
3
4
5
# 全局安装 Claude CLI
npm install -g @anthropic-ai/claude-code
# 验证安装
claude --version
Python
方案一:Python 3.11+
1
2
3
4
5
# 下载
https://www.python.org/downloads/
# 查看 Python 3 版本
python3 --version
方案二:pyenv
安装 pyenv(如果还没装)
1
2
# 使用 Homebrew 安装
brew install pyenv
配置 shell(zsh)
1
2
3
4
5
6
7
# 添加到 ~/.zshrc
echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.zshrc
echo 'command -v pyenv >/dev/null || export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(pyenv init -)"' >> ~/.zshrc
# 重新加载配置
source ~/.zshrc
安装并设置 Python 版本
1
2
3
4
5
6
7
8
9
10
11
12
# 查看可安装的版本
pyenv install --list | grep "3."
# 安装一个版本(例如 3.11)
pyenv install 3.11.9
# 全局默认版本
pyenv global 3.11.9
# 或者为当前目录设置特定版本
cd /xxx
pyenv local 3.11.9
为项目创建虚拟环境
1
2
3
4
5
6
7
8
9
10
11
12
13
cd /xxx
# 创建虚拟环境
python -m venv .venv
# 激活虚拟环境
source .venv/bin/activate
# 安装依赖
pip install -r requirements.txt
# 使用完后退出
deactivate
Claude Code Telegram Bot
地址:https://github.com/RichardAtCT/claude-code-telegram
安装
1
2
3
4
5
6
7
8
9
10
11
12
13
# 查看远程仓库有哪些标签
git ls-remote --tags https://github.com/RichardAtCT/claude-code-telegram.git
# 克隆指定标签版本
git clone --branch v1.5.0 https://github.com/RichardAtCT/claude-code-telegram.git
cd claude-code-telegram
# 安装 Poetry
pip3 install poetry
poetry --version
make dev # requires Poetry
这一步会:
创建虚拟环境
安装 pyproject.toml 里的依赖
安装当前项目
生成 CLI 命令
配置
1
2
cp .env.example .env
# Edit .env with your settings:
最低要求:
TELEGRAM_BOT_TOKEN=1234567890:ABC-DEF1234ghIkl-zyx57W2v1u123ew11
TELEGRAM_BOT_USERNAME=my_claude_bot
APPROVED_DIRECTORY=/Users/yourname/projects
ALLOWED_USERS=123456789 # Your Telegram user ID运行
1
2
make run # Production
make run-debug # With debug logging
报错:Not logged in · Please run /login
修改配置文件 USE_SDK=false 让 Bot 直接调用 CLI
这样流程就变成:
1
2
3
4
5
6
7
Telegram
↓
Bot
↓
claude CLI
↓
Claude Code
而不是:
1
2
3
4
5
6
7
Telegram
↓
Bot
↓
Anthropic SDK
↓
API
问题:claude-code-telegram Bot 卡死
有时使用 claude-code-telegram 运行 Telegram Bot 时,
程序会在一段时间后停止输出 getUpdates 日志,导致 Bot 不再响应消息。
为了保证 Bot 长期稳定运行 ,可以使用:
PM2 管理进程
cron watchdog 检测日志心跳并自动重启
整体思路:
PM2 运行 Bot
↓
cron 定时执行 watchdog
↓
如果日志长时间不更新
↓
自动 pm2 restart这样 Bot 即使卡死,也能自动恢复。
使用 PM2 启动 Bot
进入项目目录:
1
cd ~/xxx/claude-code-telegram
启动 Bot:
1
2
3
pm2 start "make run" \
--name claude-telegram \
--cwd ~/xxx/claude-code-telegram
确认进程是否运行:
如果正常,会看到:
name status
claude-telegram online
找到 PM2 日志路径
PM2 默认日志目录:
~/.pm2/logs/查看:
通常会看到:
claude-telegram-out.log
claude-telegram-error.log其中:
out.log → 程序正常输出日志
error.log → 程序错误日志
我们后面的 watchdog 会监控 out.log 。
创建 Watchdog 脚本
创建脚本:
1
nano ~/xxx/claude-code-telegram/claude-bot-watchdog.sh
写入以下内容:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/bin/bash
# 手动加载 nvm 环境
export NVM_DIR = " $HOME /.nvm"
source " $NVM_DIR /nvm.sh"
PM2 = "/xxx/pm2"
BASE = "/xxx/claude-code-telegram"
LOG = " $HOME /.pm2/logs/claude-telegram-out.log"
WATCHDOG_LOG = " $BASE /watchdog.log"
# 如果日志不存在直接退出
if [ ! -f " $LOG " ] ; then
exit 0
fi
NOW = $( date +%s)
MOD = $( stat -f %m " $LOG " )
DIFF = $(( NOW - MOD))
# 如果日志 5 分钟没有更新,重启 Bot
if [ $DIFF -gt 300 ] ; then
echo " $( date) Bot log stopped ( $DIFF sec). Restarting..." >> " $WATCHDOG_LOG "
$PM2 restart claude-telegram
fi
保存并退出:
Ctrl + O
Enter
Ctrl + X
给脚本执行权限
1
chmod +x ~/xxx/claude-code-telegram/claude-bot-watchdog.sh
添加定时任务
打开 cron:
在最后添加一行:
1
*/5 * * * * /bin/bash /xxx/claude-code-telegram/claude-bot-watchdog.sh >> /xxx/claude-code-telegram/cron.log 2>& 1
含义:
每 5 分钟执行一次 watchdog所有输出都会记录到 cron.log。
验证 cron 配置:
最终目录结构
完成后项目目录会变成:
claude-code-telegram
├─ claude-bot-watchdog.sh # 自动重启脚本
├─ watchdog.log # watchdog 检测到卡死时记录
├─ cron.log # cron 执行脚本日志
Watchdog 工作原理
Bot 正常运行时,会持续输出类似日志:
HTTP Request: POST https://api.telegram.org/.../getUpdates如果 Bot 卡死:
getUpdates
getUpdates
getUpdates
(停止)watchdog 会检测:
日志文件最后修改时间如果 超过 5 分钟没有更新 :
pm2 restart claude-telegramBot 会自动恢复。
推荐优化
为了更快恢复,可以把 cron 改为 2 分钟检测一次 :
*/2 * * * *这样 Bot 最多 2 分钟就能自动恢复 。
后台运行
如果你不想一直占着一个终端,可以用后台运行
最推荐:pm2(长期运行 Bot)
如果你的 Bot 要 一直运行,我最推荐 pm2。
优点:
进程崩溃自动重启
可以查看日志
支持开机自启
专门为服务设计
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 安装
npm install -g pm2
# 启动
pm2 start "make run" --name claude-telegram
# 查看状态
pm2 list
# 查看日志
pm2 logs claude-telegram
# 重启
pm2 restart claude-telegram
第二推荐:tmux(开发阶段最好)
如果你 还在调试 Telegram Bot,推荐 tmux。
优点:
1
2
3
4
5
6
7
8
9
10
11
12
# 安装
brew install tmux
# 启动
tmux
make run
# 退出但保持运行
Ctrl+B 然后 D
# 重新进入
tmux attach
skill
News Aggregator Skill
地址:https://github.com/cclank/news-aggregator-skill
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
# 将 Skill 添加到您的 Agent
git clone git@github.com:cclank/news-aggregator-skill.git YourProject/.claude/skills/news-aggregator-skill
# 1. 进入已安装的 Skill 目录,执行依赖安装
cd /xxx/.claude/skills/news-aggregator-skill
# 2. 创建虚拟环境
python3 -m venv .venv
# 3. 激活并安装依赖
source .venv/bin/activate
pip install -r requirements.txt
# 安装 Playwright(如果需要用到 HF Papers 和 Ben's Bites)
pip install playwright
playwright install chromium
# 4. 退出虚拟环境(可选)
deactivate
将 SKILL.md 中的所有命令从:
1
2
python3 scripts/fetch_news.py ...
python3 scripts/daily_briefing.py ...
改为:
1
2
.venv/bin/python3 scripts/fetch_news.py ...
.venv/bin/python3 scripts/daily_briefing.py ...