Sixty seconds and you are on the wire: paste one block into Claude, ask what happened today, and the news answers as tools. No signup, no API key. Prefer your own code? The rest of this page is the long way in.
Right now your agent reads the news like a person. It opens a dozen articles, compares them, and tries to figure out what actually happened. That's thousands of tokens per story.
NewsLiar does that reading for you. One call returns the story already put together: what happened, how fast it's spreading, how many outlets are confirming it, and how the coverage leans left, center, or right. We check the reasoning for you, so your agent can act on the answer instead of paying to find it.
{
"mcpServers": {
"newsliar": { "url": "https://mcp.newsliar.com/api/mcp" }
}
}One block. Paste it into your MCP client, restart, and ask what happened today. Everything below is the long version.
The fastest way onto the wire. Copy the block below into your MCP client config (Claude, Cursor, or any MCP client), restart it, and ask “what happened today.” Sixty seconds, no signup, no API key. The day's news becomes tools your agent can call, and the server handles the wire for you.
{
"mcpServers": {
"newsliar": { "url": "https://mcp.newsliar.com/api/mcp" }
}
}Six tools: wire_top today's top stories, check first, wire_search keyword search, wire_timeline story evolution, wire_ask ask in plain English, wire_health status, wire_manual full capability docs. Stdio-only client? Use npx -y mcp-remote https://mcp.newsliar.com/api/mcp.
Writing your own code instead of driving a client? Keep scrolling, section 02 mints you a key.
CHECKING YOUR ACCOUNT...
For agents that cannot sign in. One curl call trades the pilot token for your own personal wire key. 200 requests per day per key. This is a temporary bootstrap and will be retired once account key issuance is the only path.
curl -X POST https://wire.newsliar.com/v2/keys/pilot-mint \
-H "Content-Type: application/json" \
-d '{"pilot_token": "YOUR_PILOT_TOKEN", "label": "my-agent-name"}'The response contains your key. Save it like any other API key and never paste it into chat or public code.
A drop in skill for any skill capable agent: markdown instructions plus plain Python, no platform lock in. It runs the poll loop, persists the cursor, backs off on rate limits, and renders briefings matched to your interests. The bundle ships with your key.
The bundle has five files:
Once installed, the loop is two commands:
python3 wire_client.py --once --limit 100 # poll the wire
python3 briefing.py # render your briefingThe client advances the cursor only after a batch is processed, treats resync as a fresh snapshot, and never re fetches just to check. Read SKILL.md for the full workflow.
Prefer a terminal? One file, standard library only, zero dependencies. Download it and run it anywhere Python lives.
curl -sSL https://www.newsliar.com/liar.py -o liar
chmod +x liar
export LIAR_KEY=your_key
./liar statusThe CLI is called liar. A copy from before the rename still runs, but it prints a rename notice on every run. Switch when you can.
Four subcommands:
Auth resolves from the LIAR_KEY env var, the --api-key flag, or a key saved in ~/.liar_key. NEWSLIAR_KEY and ~/.newsliar_key work too, and key names from before the rename still work. The cursor file from before the rename still works and advances after every successful poll.
Running a Claude Code style harness? commands/newsliar.md in the skill bundle is a drop in /newsliar slash command. Install it and the CLI answers to /newsliar briefing like any other command.
Prefer your own loop? One endpoint, one key, cursor semantics. Start at cursor 0. Export the key you minted in section 02 above, then every command below authenticates the same way. Or skip the terminal: every endpoint below is runnable in your browser in the API playground, no signup needed.
export NEWSLIAR_KEY="paste-your-key-here"curl "https://wire.newsliar.com/v2/wire?cursor=0&limit=100" \
-H "Authorization: Bearer $NEWSLIAR_KEY"The rules of the road:
Story timelines. Every cluster has a full history: legs in chronological order plus an evolution summary with first seen and peak heat time.
curl "https://wire.newsliar.com/v2/wire/timeline?cluster_id=YOUR_CLUSTER_ID" \
-H "Authorization: Bearer $NEWSLIAR_KEY"Search. Full text search over headlines and entities, ranked by relevance blended with heat.
curl "https://wire.newsliar.com/v2/wire/search?q=semiconductors&limit=10&category=tech" \
-H "Authorization: Bearer $NEWSLIAR_KEY"Ask the wire. Natural language questions, parsed deterministically by the API with no LLM involved. Returns an extractive summary plus the matching clusters.
curl -X POST https://wire.newsliar.com/v2/wire/ask \
-H "Authorization: Bearer $NEWSLIAR_KEY" \
-H "Content-Type: application/json" \
-d '{"question": "what happened with the Fed today"}'Watchlists. Track entities, then filter the wire to clusters that mention them, ranked by heat. Watchlist management needs the admin token; any key can filter with one.
curl "https://wire.newsliar.com/v2/wire?watchlist=1&limit=50" \
-H "Authorization: Bearer $NEWSLIAR_KEY"Webhooks. Velocity spike and new cluster alerts, delivered with HMAC SHA256 signatures. Available in the API now, admin token required to manage subscriptions.
The full contract lives here. If anything on this page disagrees with the manual, the manual wins.
https://wire.newsliar.com/.well-known/newsliar.jsonSkeptical about the numbers? Good. The methodology page documents every signal from the actual code, including the known limitations. Read it before you trust a score.
Already live inside an agent? Put NewsLiar where you already work. Each card is the shortest honest path for that platform, using the real extension mechanism it ships with. No invented plugins, no magic servers.
mkdir -p ~/.openclaw/workspace/skills/newsliar
# copy SKILL.md, wire_client.py, briefing.py, interests.yaml inopenclaw gateway restartcurl -sSL https://www.newsliar.com/liar.py -o liar
chmod +x liar
export LIAR_KEY=your_key_here
./liar status---
description: NewsLiar wire access for this project's agent
globs: []
---
# NewsLiar
This project can read the NewsLiar news wire: clustered,
signal-scored stories for agents.
- CLI: ./liar (single-file Python, stdlib only)
- Auth: LIAR_KEY env var or ~/.liar_key
- ./liar briefing polls the wire and renders a briefing
- ./liar wire --since N --limit 100 polls without rendering
- Never paste the key into code or chat output.
mkdir -p ~/.claude/skills/newsliar
# copy SKILL.md, wire_client.py, briefing.py, interests.yaml inmkdir -p ~/.agents/skills/newsliar
# copy SKILL.md, wire_client.py, briefing.py, interests.yaml incodex exec "$newsliar brief me on tech news"