T
tidegap/tidegap
Run non-urgent LLM tasks at the cleanest grid hour before a deadline
在 GitHub 查看 ↗链接已于 2026-11-12 核查 · HTTP 200 · 打开的是厂商自己的官网
安装与配置
客户端配置(取自该仓库的安装命令)
{
"mcpServers": {
"tidegap-tidegap": {
"command": "npx",
"args": ["-y", "@tidegap/mcp"]
}
}
}解析自我们于 2026-11-01 抓取的该仓库 README;我们未执行过。
command/args 来自仓库写明的安装命令;不确定时请以该项目 README 为准。
VS Code(.vscode/mcp.json —— 键名是 servers)
{
"servers": {
"tidegap-tidegap": {
"command": "npx",
"args": ["-y", "@tidegap/mcp"]
}
}
}VS Code 顶层键是 <code>servers</code>,其余与上面那份相同。
Claude Code(命令行)
claude mcp add --transport stdio tidegap-tidegap -- npx -y @tidegap/mcp
Claude Code 不收 JSON 文件,用这条命令直接加。
配置项的键名以你的客户端为准:客户端与 CLI
- ★ 数取值
- 3 ★ · tidegap/tidegap · 取自 GitHub 搜索 API · (2026-11-13 20:00:50 核对)
- 来源明细
- 从该仓库的 GitHub 页面直接读取 · 条目类型:开源项目
- 收录与活跃
- 收录于 2026-11-02 · 最近见到 2026-11-14 · 共见到 13 次 · 被 2 个来源列出
- 评分构成
- 综合分 203 · 3 ★ · 2 个来源 · repo
- 安装
npx -y @tidegap/mcp
常见问题(答案都来自我们的记录)
怎么安装?
该仓库给出的安装命令是
npx -y @tidegap/mcp。我们的记录里它是仓库自己提供的;不保证在你的客户端上直接可用。它适合谁 / 用来做什么?
我们把它归在这些标签下: 开源项目。标签来自条目自身,不是我们强加的分类。
谁维护它、还在更新吗?
仓库
tidegap/tidegap;我们收录于 2026-11-02;最近见到 2026-11-14。这里没有"官方认证"或"质量评级"——我们只记录来源与时间。# Tidegap
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
Run non-urgent LLM tasks at the cleanest grid hour before your deadline.
Tidegap takes the LLM tasks your agent does not need right now, runs them at the lowest-carbon grid hour before a deadline you set, and sends them through the provider Batch API when the deadline allows.
Picks the dispatch hour from a live 72-hour grid carbon-intensity forecast: 5 real-data feeds, 31 regions (measured, counted in code).
Routes work with a deadline over 24 hours through the Anthropic and OpenAI Batch APIs, at 50 % of the sync list price (projected, provider list price).
Writes a signed carbon receipt per task to a local SQLite ledger. tidegap verify checks it offline.
bash
npm install @tidegap/core # TypeScript / Node
pip install "tidegap[anthropic,openai,signing]" # Python 3.11+
claude plugin marketplace add tidegap/tidegap && claude plugin install tidegap # Claude Code
npx -y @tidegap/mcp # any other MCP host
ts
// save as plan.mjs, run: node plan.mjs (GB uses the free UK feed, no API key)
import { recommendWindow, ukCarbonIntensityFeed } from "@tidegap/core";
const deadline = new Date(Date.now() + 24 3600 1000).toISOString();
const plan = await recommendWindow({ region: "GB", deadline }, { feed: ukCarbonIntensityFeed(), rng: () => 0 });
console.log(plan.scheduledFor, plan.intensityGCo2PerKwh, plan.band);
// 2026-10-16T11:00:00.000Z 66 veryclean (forecast value on 2026-10-15; yours will differ)
python
import asyncio; from datetime import datetime, timedelta, timezone
from tidegap import recommendwindow, ukcarbonintensityfeed
deadline = datetime.now(timezone.utc) + timedelta(hours=24)
plan = asyncio.run(recommendwindow(region="GB", deadline=deadline, feed=ukcarbonintensityfeed(), rng=lambda: 0))
print(plan.scheduledfor, plan.intensitygco2perkwh, plan.band)
# 2026-10-16T11:00:00.000Z 66 veryclean (forecast value on 2026-10-15; yours will differ)
Without rng, Tidegap picks at random among the cleanest band of near-equal hours, so repeated runs spread load and can return different hours; an rng that returns 0 gives the strict minimum.
Proof: one real run (GB, 2026-09-30, live National Grid ESO forecast). Forecast peak 183 gCO2/kWh, recommended window 88 gCO2/kWh: about 52 % lower, for this run only (forecast, projected). The test task had a 5-minute deadline, so it ran at once; its signed receipt records 158 gCO2/kWh (measured). Raw output and reproducer · every number and its source
In an agent: in Claude Code, /tidegap:defer "Summarize today's notifications" --by 4h. In any other MCP host, the agent calls recommendwindow and scheduletask (12 MCP tools, 12 hosts — host configs).
## Renamed from Ebb AI
Until 0.17 this project was Ebb AI (@ebb-ai/, ebb-ai on PyPI, the ebb command). 0.18.0 renames it to Tidegap, because "Ebb" conflicts with an existing software trademark. Your queue, receipts, signing key and daemon keep working. The old names worked for one release (0.18) and were removed in 0.19. Coming from 0.17? Upgrade through 0.18 once before 0.19 (or move ~/.ebb-ai to ~/.tidegap by hand): 0.19 no longer moves the old data directory. If 0.19 already ran, stop tidegap, move ~/.tidegap aside, then rename ~/.ebb-ai to ~/.tidegap.
Tidegap takes the LLM tasks your agent does not need right now, runs them at the lowest-carbon grid hour before a deadline you set, and sends them through the provider Batch API when the deadline allows.
Picks the dispatch hour from a live 72-hour grid carbon-intensity forecast: 5 real-data feeds, 31 regions (measured, counted in code).
Routes work with a deadline over 24 hours through the Anthropic and OpenAI Batch APIs, at 50 % of the sync list price (projected, provider list price).
Writes a signed carbon receipt per task to a local SQLite ledger. tidegap verify checks it offline.
bash
npm install @tidegap/core # TypeScript / Node
pip install "tidegap[anthropic,openai,signing]" # Python 3.11+
claude plugin marketplace add tidegap/tidegap && claude plugin install tidegap # Claude Code
npx -y @tidegap/mcp # any other MCP host
ts
// save as plan.mjs, run: node plan.mjs (GB uses the free UK feed, no API key)
import { recommendWindow, ukCarbonIntensityFeed } from "@tidegap/core";
const deadline = new Date(Date.now() + 24 3600 1000).toISOString();
const plan = await recommendWindow({ region: "GB", deadline }, { feed: ukCarbonIntensityFeed(), rng: () => 0 });
console.log(plan.scheduledFor, plan.intensityGCo2PerKwh, plan.band);
// 2026-10-16T11:00:00.000Z 66 veryclean (forecast value on 2026-10-15; yours will differ)
python
import asyncio; from datetime import datetime, timedelta, timezone
from tidegap import recommendwindow, ukcarbonintensityfeed
deadline = datetime.now(timezone.utc) + timedelta(hours=24)
plan = asyncio.run(recommendwindow(region="GB", deadline=deadline, feed=ukcarbonintensityfeed(), rng=lambda: 0))
print(plan.scheduledfor, plan.intensitygco2perkwh, plan.band)
# 2026-10-16T11:00:00.000Z 66 veryclean (forecast value on 2026-10-15; yours will differ)
Without rng, Tidegap picks at random among the cleanest band of near-equal hours, so repeated runs spread load and can return different hours; an rng that returns 0 gives the strict minimum.
Proof: one real run (GB, 2026-09-30, live National Grid ESO forecast). Forecast peak 183 gCO2/kWh, recommended window 88 gCO2/kWh: about 52 % lower, for this run only (forecast, projected). The test task had a 5-minute deadline, so it ran at once; its signed receipt records 158 gCO2/kWh (measured). Raw output and reproducer · every number and its source
In an agent: in Claude Code, /tidegap:defer "Summarize today's notifications" --by 4h. In any other MCP host, the agent calls recommendwindow and scheduletask (12 MCP tools, 12 hosts — host configs).
## Renamed from Ebb AI
Until 0.17 this project was Ebb AI (@ebb-ai/, ebb-ai on PyPI, the ebb command). 0.18.0 renames it to Tidegap, because "Ebb" conflicts with an existing software trademark. Your queue, receipts, signing key and daemon keep working. The old names worked for one release (0.18) and were removed in 0.19. Coming from 0.17? Upgrade through 0.18 once before 0.19 (or move ~/.ebb-ai to ~/.tidegap by hand): 0.19 no longer moves the old data directory. If 0.19 already ran, stop tidegap, move ~/.tidegap aside, then rename ~/.ebb-ai to ~/.tidegap.
收录徽章(可选)
想把收录标记放进 README 就复制这行,可选,不影响收录。
[](https://anclum.com/zh/s/tidegap-tidegap/)
- 来源
- github · https://github.com/tidegap/tidegap
- 按领域浏览
- 开源项目
- Traction
- 3 ★
- 收录来源
- 2 个独立来源
- 收录于
- 今天
同类推荐
所属领域与标签
每个标签都能点进去看同类的全部条目。数字是当前库里的真实条数。