Global Perspectives
Developer
Most AI agents know a lot about code, language, and reasoning. They know very little about what is happening in the world right now.
If your agent needs to reason about current events — to brief a user, inform a decision, or understand a geopolitical context — it has to either ask the user, search the web unstructured, or hallucinate. None of those are good options.
Global Perspectives publishes structured, AI-analyzed geopolitical intelligence updated hourly. The data is available via a CLI package that any agent can call and pipe directly into its context.
npm install -g global-perspectives
No account required. No API key for the free tier. Works immediately.
Every command supports a --json flag that returns clean, structured JSON — no terminal formatting, no ANSI codes.
gp today --json
Returns the current cycle of AI-clustered topics — updated hourly from 20+ international sources. Each topic includes:
// Sample shape of a topic object
{
"title": "Ceasefire Talks Stall as Regional Powers Take Sides",
"category": "conflict",
"regions": ["Middle East", "Iran", "United States"],
"summary": "Negotiations broke down after...",
"prediction": "Escalation likely within 72 hours if...",
"traceCause": "The underlying tension traces back to...",
"threadId": "thread-mideast-ceasefire-a3f9",
"sources": ["Al Jazeera", "Reuters", "SCMP"]
}
gp country "Iran" --json
gp country "Germany" --json
Returns a daily AI briefing for a specific country:
gp countries --json
Returns the list of currently active countries ranked by coverage volume — useful for knowing which parts of the world the platform is tracking most closely right now.
gp thread thread-mideast-ceasefire-a3f9 --json
Returns the full thread intelligence for a story arc:
The simplest integration is a system prompt injection. Before your agent responds to any geopolitics-related query, pull current context:
import { execSync } from 'child_process';
function getGeopoliticalContext() {
const raw = execSync('gp today --json', { encoding: 'utf8' });
const topics = JSON.parse(raw);
return topics.map(t => `
## ${t.title} [${t.category}]
Regions: ${t.regions.join(', ')}
Summary: ${t.summary}
Prediction: ${t.prediction}
Root cause: ${t.traceCause}
`).join('\n---\n');
}
const systemPrompt = `
You are a geopolitical intelligence assistant.
Current world context (updated hourly):
${getGeopoliticalContext()}
Answer the user's question using this context where relevant.
`;
For country-specific queries, pull the briefing on demand:
function getCountryBriefing(country) {
const raw = execSync(`gp country "${country}" --json`, { encoding: 'utf8' });
return JSON.parse(raw);
}
// Returns: { headline, situationSummary, trajectory, riskLevel, riskSignals }
const briefing = getCountryBriefing('Germany');
The free tier requires no account and no API key. gp today --json returns the current topics immediately after install. Signed-in access unlocks the 7-day archive and thread intelligence — available free during the current launch period.
| Command | What it returns | Updated |
|---|---|---|
gp today --json | ~13 AI-clustered global topics with 3-layer analysis | Hourly |
gp country <name> --json | Country situation briefing, trajectory, risk signals | Daily |
gp countries --json | Active countries ranked by coverage volume | Hourly |
gp thread <id> --json | Full narrative arc, root cause chain, watch questions | Daily |
Sources span 20+ international outlets across 6 continents — Al Jazeera, SCMP, Dawn, Japan Times alongside Western wire services. The non-Western sourcing is deliberate: geopolitical blind spots are usually geographic.
Install the package and pull your first geopolitical context in under a minute.
View on npm →