Global Perspectives Global Perspectives

Developer

Geopolitical Intelligence for AI Agents

March 22, 2026  ·  Global Perspectives

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.

Install

npm install -g global-perspectives

No account required. No API key for the free tier. Works immediately.

What an agent gets

Every command supports a --json flag that returns clean, structured JSON — no terminal formatting, no ANSI codes.

Today's global topics

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"]
}

Country intelligence briefing

gp country "Iran" --json
gp country "Germany" --json

Returns a daily AI briefing for a specific country:

Active countries

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.

Narrative thread

gp thread thread-mideast-ceasefire-a3f9 --json

Returns the full thread intelligence for a story arc:

Example: wiring it into an agent

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.

What the data covers

CommandWhat it returnsUpdated
gp today --json~13 AI-clustered global topics with 3-layer analysisHourly
gp country <name> --jsonCountry situation briefing, trajectory, risk signalsDaily
gp countries --jsonActive countries ranked by coverage volumeHourly
gp thread <id> --jsonFull narrative arc, root cause chain, watch questionsDaily

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 →