linux.do
21K subscribers
116K photos
195 videos
115 files
249K links
linux.do最新话题和热议话题
Download Telegram
【造个轮子 02】Claude Code 用户必看:别让通知只响在电脑上
github.com

GitHub - zengwenliang416/claude-notifier

通过在 GitHub 上创建帐户来为 zengwenliang416/claude-notifier 开发做出贡献。

----------------------

📖 这事儿咋来的

【造个轮子 01】Claude Code 完成任务后自动通知你 开发调优
【造个轮子 01】Claude Code 完成任务后自动通知你 [banner-2k] GitHub 仓库:zengwenliang416/claude-notifier前情提要 用 Claude Code 的朋友应该都有这种体验:开了好几个终端窗口,让 AI 并行处理不同任务。结果呢?任务早就完成了,自己还在刷手机,等回过神来一看——白白浪费了好几分钟的 AI 使用时间。 试过 o…

上回搞了个桌面通知,本以为完美收官,从此告别"Claude 干完活我还傻等着"的尴尬。结果帖子发出去没多久,评论区直接给我整不会了:
“我觉得可以考虑把 hook 的通知做到 bot 上?用飞书、QQ、tg 的 bot 发送任务提醒之类的”
【造个轮子 01】Claude Code 完成任务后自动通知你 - #15,来自 somnambulating
我:好家伙,这不是把我按在地上摩擦吗?🤯

冷静下来想想,确实,桌面通知有个致命硬伤——你得像只🐶一样守在电脑前。

这些场景你肯定熟悉:

🚶 去倒杯水 → 回来一看,通知早没影了
🚽 上个厕所 → Claude 干完了,你不知道
🛋️ 躺床上刷会手机 → 完了,彻底断联

搞了半天,我还是得盯着电脑?这能忍?!

不行,必须让手机也能收到。二话不说,开干!💪

----------------------

🎯 选型:要求不高,但得靠谱

调研了一圈推送方案,我的诉求就仨字:懒、快、白嫖

扒拉一圈,就这仨能打:

选哪个? 看你手机是啥,往下翻配置教程 👇️

----------------------

🕳️ 血泪教训(帮你省半小时调试)

一开始我自信满满,心想这不就加个环境变量的事儿?直接往 ~/.zshrc 一扔:
export BARK_KEY="your-device-key"
export CLAUDE_NOTIFY_CHANNEL="bark"

测试!走你!然后… 啥也没发生 😐️

“不可能啊?” 我反复检查了 N 遍,确定没拼错… 还是不行。

折腾了半小时,终于破案了:

⚠️ Claude Code 的 Hook 压根不读你的 shell 配置!

它是直接 spawn 子进程,不走 login shell。你在 .zshrc.bash_profile 里配的东西,对它来说跟没配一样,完全透明 👻
正解来了 —— 把环境变量写进 ~/.claude/settings.jsonenv 字段:
{
"env": {
"CLAUDE_NOTIFY_CHANNEL": "bark",
"BARK_KEY": "your-device-key"
}
}

这样 Claude Code 会在跑 Hook 之前自动注入这些变量。

记住这个坑,能帮你省掉抓耳挠腮的半小时! 🧠

----------------------

🚀 配置教程:3 分钟,无痛上车

Step 1:选渠道、填配置

打开 ~/.claude/settings.json,根据你的情况三选一:

🍎 iPhone 用户?直接 Bark,不解释
{
"env": {
"CLAUDE_NOTIFY_CHANNEL": "bark",
"BARK_KEY": "你的设备密钥"
}
}
💡 Key 怎么拿? App Store 搜 “Bark” → 装上 → 打开 → 首页那串就是你的 key,复制走


💬 平时用 Telegram?那就它了
{
"env": {
"CLAUDE_NOTIFY_CHANNEL": "telegram",
"TELEGRAM_BOT_TOKEN": "你的Bot Token",
"TELEGRAM_CHAT_ID": "你的Chat ID"
}
}

💡 没 Bot?@BotFather/newbot → 跟着走,1 分钟造一个

💡 Chat ID 咋拿? 随便给 Bot 发句话,访问 https://api.telegram.org/bot<TOKEN>/getUpdates,里面有 chat.id


🔒️ 数据洁癖?ntfy 自己托管
{
"env": {
"CLAUDE_NOTIFY_CHANNEL": "ntfy",
"NTFY_TOPIC": "你的主题名"
}
}
💡 怎么玩? 手机装 ntfy → 订阅你设的主题 → 齐活儿


Step 2:挂上 Hook

同样在 ~/.claude/settings.json 里,加上这段:
{
"hooks": {
"Stop": [
{
"hooks": [
{
"type": "command",
"command": "npx tsx $HOME/.claude/hooks/stop-check.ts",
"timeout": 10
}
]
}
]
}
}


Step 3:验货时刻!

随便问 Claude 一个问题,等它答完…

手机响了吗? 📱✨️

✅️ 响了! —— 恭喜老板,从此解放双腿,想去哪去哪
❌️ 没响… —— 别慌,翻到下面 FAQ 对症下药

----------------------

🔧 代码思路(技术党可以瞅瞅)

核心就干俩事儿:

1. 检查 TodoList —— 还有活没干完?那先别推送,让它继续
2. 发通知 —— 桌面和手机并行发,谁也不等谁

// 俩通知一起发,互不影响
async function sendNotification(): Promise<void> {
await Promise.all([
sendDesktopNotification(),
sendRemoteNotification().catch((e) => {
logWarn(`远程推送挂了: ${e}`);
}),
]);
}
💡 设计细节:远程推送挂了也不慌,吞掉错误继续走,桌面通知照发不误
渠道选择就是个朴素的 switch case:
const channel = process.env.CLAUDE_NOTIFY_CHANNEL?.toLowerCase();

switch (channel) {
case "telegram":
await sendTelegram(title, message);
break;
case "ntfy":
await sendNtfy(title, message);
break;
case "bark":
await sendBark(title, message);
break;
}
💡 为啥用 curl? 自动走系统代理,翻墙党福音,不用单独处理网络问题

----------------------

📊 实测几天,说说真实体验

不吹不黑,直接上数据:

选择困难症?我帮你决定:

🍎 果粉 → Bark,体验拉满,延迟碾压
🌍️ 本来就常驻 TG → Telegram,生态无缝衔接
🔐 数据洁癖 → ntfy,自己服务器自己做主

----------------------

📋️ 后面还想加的

目前就仨渠道,后面可能安排上:

📱 飞书/钉钉/企业微信 —— 上班摸鱼党的福音,老板看到的是你在认真等结果
🎮️ Discord —— 国外老哥用得多
💎 Pushover —— 付费但是真稳

有想要的渠道? GitHub 开 issue,有求必应 ✨️

----------------------

❓️ 常见问题,自助排查
🚨 收不到推送? (click for more details) 🔗 能同时推好几个渠道吗? (click for more details) ⚠️ 报错 "BARK_KEY 未设置"? (click for more details) 🪟 Windows 能用吗? (click for more details)
----------------------

💬 最后唠两句

从桌面通知到手机推送,这玩意越来越像个正经工具了。

核心思想始终没变:Claude 干完活,第一时间告诉你——不管你是在电脑前、在厨房、还是躺床上刷手机。

代码全部开源,白嫖党请放心使用。觉得好用?顺手给个 ⭐️ star;遇到 bug 或者想加功能?直接 PR 走起,来者不拒!

下一篇预告:可能会搞个任务统计面板?敬请期待… 也可能咕咕咕 🐦️
Leetcode每日一题 —— 3075. 幸福值最大化的选择方案

3075. 幸福值最大化的选择方案

思路
因为低的到0就降无可降了,所以依然贪心幸福值最高的,这样可能少降幸福值。
但是……怎么说呢,对孩子是不是太不人道了。 🫣

代码
    public long maximumHappinessSum(int[] happiness, int k) {
Arrays.sort(happiness);
long ans = 0;
int idx = happiness.length - 1, cnt = 0;
while (cnt < k) {
if (happiness[idx] < cnt) return ans;
ans += happiness[idx--] - cnt++;
}
return ans;
}

PS
额,击败57%,但是我看着最快的哪几种算法都差不多啊,是不是测试用例改了啊。

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 魔法师)
有没有改善睡眠的技巧?

基本每天晚上都睡不着,要到凌晨 3 点多才能勉强入睡。一到晚上人就特别低落,白天还能正常工作、正常说话,夜深人静的时候就会开始反复想很多事,越想越觉得生活不如意。

14 posts - 11 participants

Read full topic

via LINUX DO - 最新话题 (author: ChinaDolphin)
黑与白,终于集齐一套坤坤啦~~~

5 posts - 4 participants

Read full topic

via LINUX DO - 最新话题 (author: duduke)

Invalid media: image
分享免费的 GLM 4.7 和 MinMax M2.1 API 渠道(非中转、公益)

AIping
目前 GLM 4.7 和 MinMax M2.1 API 免费,昨天用了一天 M2.1 亲测了没问题。

11 posts - 8 participants

Read full topic

via LINUX DO - 最新话题 (author: ilvsx)
有没有好的国际电话卡(可以用漫游流量)推荐?

突发奇想想买一张国际电话卡,有没有那种好保号然后在内地用漫游流量价格又不会太夸张太离谱的电话卡?

3 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: Lookwhat)
cherrystudio是把对话当文件发送出去吗

如题,发现好像上下文长了是把对话当文件发送出去,所有的调用ai的客户端都是这样吗,公司禁止传文件,导致上下文长了没法使用

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: K aiki)
【双旦福利】Cubence为大家带来了一些双旦福利

这里先祝大家双旦快乐

在群友的疯狂督促下,也是为大家带来了一些双旦的福利(但是由于最近亏损严重,可能不会太多)

1. 2025-12-15 至 2026-01-01 期间,全场7.8折优惠 SHUANGDAN
2. 2025-12-15 至 2026-01-01 期间,CC倍率均下调0.05

当然还有惯例抽奖

抽奖内容:5个6.8折卷
参与方式:评论区评论
开奖时间:12-28 20:00
开奖方式:抽奖助手开奖

售前支持群:QQ群
售后群(需凭支付订单进入):QQ群
官网:https://cubence.com

34 posts - 34 participants

Read full topic

via LINUX DO - 最新话题 (author: Lynn)
谷歌学生认证账号

请问一下各位佬 我谷歌账号被说登录多个账号 怀疑人机注册 给我封禁了 第一篇申诉它还有回复 后面申诉都没有回复成功或者失败 这种情况还能申诉回来吗?

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: Binnary86)
黑白疯狂星期四

一天两个100,当真是疯狂星期四,太疯狂了,看到的赶紧去转起来 😊 😊

7 posts - 7 participants

Read full topic

via LINUX DO - 最新话题 (author: ycj3)

Invalid media: image
昨天面试了,有点挫败感

佬友们工作了几年后,闲的时间还会学习吗,昨天面试了下,有个简单的逻辑题没做出来,唉,还是得多看看,感觉脑子长时间不用有点生锈了

3 posts - 3 participants

Read full topic

via LINUX DO - 最新话题 (author: lizelin)
居然12万了

cloudflare有点不行了,快要熄火了

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: shiya)

Invalid media: image
为什么今天LDC没更新?

我昨天发帖了,回帖了,但是LDC没更新?

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: 白奈)
我有cf了还需要研究edgeone么?如果我不备案的话,能玩edgeone么

大佬们!!给个省流答案呗

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 泡芙小圆手)
求大佬推荐AI工具使用方案

本人目前常用的大模型对话工具是自己在服务器上部署的lobechat服务端,可以上传知识库+数据同步。但是没办法用MCP。绘画功能也不好用。有没有什么项目可以从网页打开且可以使用MCP的。 另外有没有好用的AI绘图的项目推荐 求教

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: 枫)
Qwen3-TTS-VC-Flash对比MiniMAX声音克隆怎么样

qwen.ai

Qwen

Qwen Chat offers comprehensive functionality spanning chatbot, image and video understanding, image generation, document processing, web search integration, tool utilization, and artifacts.

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: Mozi)

Invalid media: image
好久没上QQ,今天上去发现一个有个很好的功能,微信不知有没有类似的

用元宝自动整理群消息~这个功能好啊~每多技术群能一键帮忙整理,不知微信能不能有这种功能?

2 posts - 2 participants

Read full topic

via LINUX DO - 最新话题 (author: Mr Relax)
ghzyj.sh.gov.cn

“云宇星空大模型”——上海量子城市空间智能建设之规划资源行业大模型_上海市规划和自然资源局
finance.sina.com.cn – 19 Dec 25

上海市规划资源局与商汤大装置联合打造,“云宇星空大模型(专业版)”正式发布

上海市规划资源局与商汤大装置联合打造,“云宇星空大模型(专业版)”正式发布
近日,全国规划资源领域首个基础大模型 “云宇星空大模型(专业版)” 在上海正式发布,该模型由上海市规划资源局联合商汤大装置共同研发。云宇星空大模型(专业版)基于海量高质量“文本-图像-空间”多模态的行业语料,进行了城市空间治理领域全链路认知与决策能力的突破性构建,构建了集“时空理解生成、知识整合检索、模型智能调度”于一体的技术底座,具备了“问不倒、能调图、会统计、能识图、会报告”五大核心专业能力,将成为上海规划和自然资源行业专业人员处理各类专业问题的“AI伙伴”。

结果是商汤呀

1 post - 1 participant

Read full topic

via LINUX DO - 最新话题 (author: stevessr)

Invalid media:
image
image
image
三级注册邀请码在哪申请嘞

翻半天没找到在哪

5 posts - 5 participants

Read full topic

via LINUX DO - 最新话题 (author: xiaolan)

Invalid media: image
惊爆!圣诞老人下岗了,接替他的竟然是……

6 posts - 6 participants

Read full topic

via LINUX DO - 最新话题 (author: 平沢唯)

Invalid media: image