# Openrouter Balance

> 查询 OpenRouter 账户余额（总额度、已使用、剩余额度）并通过飞书私聊通知。支持定时执行和手动触发。

- Skill: `igoingdown/openrouter-balance` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add igoingdown/openrouter-balance`
- Raw SKILL.md: https://api.skillmd.com/api/skills/igoingdown/openrouter-balance/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: igoingdown (https://skillmd.com/u/igoingdown)
- Updated: 2026-09-21
- Page: https://skillmd.com/skills/igoingdown/openrouter-balance

---


# OpenRouter Balance Checker

查询 OpenRouter 账户额度并通过飞书通知。

## 功能

- 查询总额度（total_credits）
- 查询已使用额度（total_usage）
- 计算剩余额度（total_credits - total_usage）
- 通过飞书私聊发送富文本卡片通知
- 支持重试机制和错误处理

## 环境变量（统一放 secrets.sh，敏感信息不进仓库）

脚本启动时若环境变量未设置，会 source `~/github/my_dot_files/secrets.sh`（可用 `SECRETS_FILE` 改路径）。需包含（参考 `secrets.example.sh`）：

- `OPENROUTER_API_KEY`: 你的 OpenRouter API Key
- `FEISHU_APP_ID`: 飞书应用 App ID
- `FEISHU_APP_SECRET`: 飞书应用 App Secret
- `FEISHU_RECEIVER_OPEN_ID`: 接收消息用户的 OpenID

## 使用方法

### 通过 Claude Code Skill 调用

如果你使用 Claude Code，可以直接说：

> 帮我查询 OpenRouter 账户余额

或者说：

> 运行 openrouter-balance skill

### 首次安装（编译 TypeScript）

`dist/` 是编译产物，不进仓库（在 `.gitignore` 里）。clone / sync 之后**首次使用前必须先编译一次**，否则下面的 `node dist/check.js` 会因找不到文件而失败：

```bash
cd ~/.agents/skills/openrouter-balance
npm install && npm run build      # tsc → dist/check.js
```

### 手动执行脚本

```bash
# 已编译过后可直接跑（等价于 npm start）：
node ~/.agents/skills/openrouter-balance/dist/check.js
```

## 定时执行示例

> 前提：已按上面「首次安装」编译出 `dist/`。定时任务也可直接调用仓库内的 `run.sh`
> （它会 `cd` 到 skill 目录并补好 Homebrew 的 node 路径后再跑 `dist/check.js`）。

### 每小时执行（macOS - launchd）

创建 `~/Library/LaunchAgents/com.openrouter.balance.plist`（`__HOME__` 替换为你的实际 $HOME，launchd 不解析环境变量）：
```xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>Label</key>
    <string>com.openrouter.balance</string>
    <key>ProgramArguments</key>
    <array>
        <string>/usr/local/bin/node</string>
        <string>__HOME__/.agents/skills/openrouter-balance/dist/check.js</string>
    </array>
    <key>StartInterval</key>
    <integer>3600</integer>
    <key>RunAtLoad</key>
    <true/>
</dict>
</plist>
```

加载配置：
```bash
launchctl load ~/Library/LaunchAgents/com.openrouter.balance.plist
```

### 每天执行（Linux - cron）

编辑 crontab：`crontab -e`
```
0 9 * * * cd $HOME/.agents/skills/openrouter-balance && node dist/check.js
```

## 输出示例

飞书消息：
```
OpenRouter 账户报告
总额度: $10.00
已使用: $3.50
剩余额度: $6.50
```

