kansoku-trade/gdelt
Global multilingual news event stream with tone scoring via GDELT 2.0 Doc API.
npx skills add https://github.com/kansoku-trade/kansoku --skill gdelt
> Response language: match user input.
> ⚠️ GDELT is a rolling recent-window API, not a historical event archive.
> Time windows are anchored to absolute timestamps (UTC) for reproducibility —
> the same query asked tomorrow will return different results.
>
> ⚠️ 5-second throttle between requests (enforced). Plan batches accordingly.
Trigger phrases:
Useful for "what is the world saying about X right now" — i.e. retrieving
articles from non-English / non-financial sources that don't surface in
Longbridge's curated newsfeed.
domain:bloomberg.com, sourcelang:eng).
artlist — list of articles (default).timelinetone — per-15-min tone time series (-10 = very negative,+10 = very positive).
timelinevol / timelinevolinfo — article volume over time.tonechart — tone histogram.--start/--end (absolute), fall back to--timespan. The script converts relative timespans to absolute timestamps
before the call and echoes them in meta.window so the journal can be
re-run.
# Articles about Nvidia in the last 24h
python3 .claude/skills/gdelt/scripts/doc.py "Nvidia"
# 7-day window, English + Chinese articles about TSMC
python3 .claude/skills/gdelt/scripts/doc.py "TSMC OR \"Taiwan Semiconductor\"" --timespan 7d --lang eng,zho
# Tone timeline for Federal Reserve over 30 days
python3 .claude/skills/gdelt/scripts/doc.py "Federal Reserve" --mode timelinetone --timespan 30d
# Absolute window
python3 .claude/skills/gdelt/scripts/doc.py "AI chips" --start 20260501000000 --end 20260528000000
{
"data": [
{
"url": "https://...",
"title": "...",
"seendate": "20260527T161500Z",
"domain": "...",
"language": "English",
"sourcecountry": "United States",
"socialimage": "..."
}
],
"meta": {
"mode": "artlist",
"query": "Nvidia",
"window": { "start": "20260527071804", "end": "20260528071804" },
"max_records": 75
},
"ok": true
}
{
"ok": true,
"data": [
{"date": "20260520T000000Z", "value": 1.42},
{"date": "20260520T001500Z", "value": 1.05},
...
],
"meta": {"mode": "timelinetone", ...}
}
| Exit code | Meaning | LLM action |
| --------- | --------------------------------------- | ------------------------------------------------------------------------------------ |
| 0 | Success | Parse data. |
| 1 | Invalid args (e.g. bad timespan / lang) | Read hint. |
| 3 | HTTP 4xx / non-JSON response | If body contains "Please limit requests", the throttle was tripped — wait and retry. |
| 4 | Network | Suggest retry. |
sequenced.
--max-records cap is 250.ground truth.
longbridge-news for curated equity-specific newsfeed (Chinese-language UX).sec-edgar for primary-source filings as the contrast to media narrative.fred for macro data referenced in the narrative.Take kansoku-trade/gdelt from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.