Skip to main content

Documentation Index

Fetch the complete documentation index at: https://kagi.micr.dev/llms.txt

Use this file to discover all available pages before exploring further.

kagi summarize

Summarize URLs or text content using either the paid public API or the subscriber web Summarizer. Summarize demo

Synopsis

kagi summarize [OPTIONS]

Description

The kagi summarize command provides access to two different summarization systems:
  1. Public API Mode - Uses Kagi’s paid Universal Summarizer API (requires KAGI_API_TOKEN)
  2. Subscriber Mode - Uses your Kagi subscription’s web-based Summarizer (requires KAGI_SESSION_TOKEN)
The two modes have different capabilities, pricing models, and output options. Choose the mode that best fits your use case.

Authentication Modes

Public API Mode (Default)

Requires: KAGI_API_TOKEN Uses the documented Universal Summarizer API endpoint. This is a paid service that consumes API credit. Features:
  • Multiple summary engines (cecil, agnes, etc.)
  • Caching support
  • Structured JSON output
  • Consistent API behavior
Cost: Consumes API credit per request

Subscriber Mode

Requires: KAGI_SESSION_TOKEN + --subscriber flag Uses the subscriber web product’s summarization feature. This is included with your Kagi subscription. Features:
  • Multiple summary lengths (headline to long)
  • Multiple summary types (summary, keypoints, eli5)
  • Translation support
  • Web product integration
Cost: Included with subscription (no additional charges)

Options

Content Input (One Required)

--url <URL>

URL of the page to summarize. Example:
kagi summarize --url https://example.com/article

--text <TEXT>

Raw text to summarize. Example:
kagi summarize --text "Long text content to summarize..."
Note: Choose either --url or --text, not both.

Mode Selection

--subscriber

Use subscriber web Summarizer instead of public API. Requires: KAGI_SESSION_TOKEN Example:
kagi summarize --subscriber --url https://example.com

Public API Options

--engine <ENGINE>

Summarization engine to use (public API only). Values:
  • cecil - Balanced summarization (default)
  • agnes - Alternative engine
  • Additional engines as documented
Example:
kagi summarize --url https://example.com --engine cecil

--cache <BOOL>

Enable/disable response caching (public API only). Values: true, false Default: true Example:
kagi summarize --url https://example.com --cache false

Subscriber Mode Options

--length <LENGTH>

Summary length (subscriber mode only). Values:
  • headline - Briefest (1-2 sentences)
  • overview - Short summary (3-5 sentences)
  • digest - Medium length (paragraph)
  • medium - Detailed (multiple paragraphs)
  • long - Most comprehensive
Example:
kagi summarize --subscriber --url https://example.com --length digest

--summary-type <TYPE>

Style of summary (subscriber mode only). Values:
  • summary - Standard summary
  • keypoints - Bullet point key points
  • eli5 - Explain Like I’m 5 (simplified)
Example:
kagi summarize --subscriber --url https://example.com --summary-type keypoints

Universal Options

--target-language <LANG>

Target language for summary output. Example:
kagi summarize --url https://example.com --target-language es

Output Format

Public API Output

{
  "meta": {
    "id": "1",
    "node": "us-east",
    "ms": 10
  },
  "data": {
    "output": "The summarized text...",
    "tokens": 42
  }
}

Subscriber Mode Output

{
  "meta": {
    "version": "202603091651.stage.c128588",
    "trace": "abc123"
  },
  "data": {
    "thread_id": "thread-1",
    "state": "done",
    "output": "The summarized text...",
    "markdown": "The summarized text..."
  }
}

Examples

Public API Examples

# Basic URL summarization
kagi summarize --url https://www.rust-lang.org

# With specific engine
kagi summarize --url https://example.com --engine cecil

# Disable caching
kagi summarize --url https://example.com --cache false

# Text summarization
kagi summarize --text "Long text content here..."

Subscriber Mode Examples

# Basic subscriber summarization
kagi summarize --subscriber --url https://www.rust-lang.org

# Key points format
kagi summarize --subscriber --url https://example.com --summary-type keypoints

# Short length
kagi summarize --subscriber --url https://example.com --length overview

# Full options
kagi summarize --subscriber --url https://example.com --summary-type keypoints --length digest --target-language en

Processing Examples

# Extract just the summary text
kagi summarize --url https://example.com | jq -r '.data.output'

# Save to file
kagi summarize --url https://example.com > summary.json

# Batch process URLs
cat urls.txt | while read url; do
  kagi summarize --subscriber --url "$url" > "summaries/$(basename $url).json"
  sleep 1
done

Mode Comparison

FeaturePublic APISubscriber Mode
Token RequiredKAGI_API_TOKENKAGI_SESSION_TOKEN
CostAPI creditIncluded with subscription
EnginesMultiple (cecil, agnes, etc.)Web product default
LengthsStandardheadline, overview, digest, medium, long
TypesStandardsummary, keypoints, eli5
CachingOptionalN/A
FlagNone (default)--subscriber

Common Patterns

Research Pipeline

#!/bin/bash
# Summarize articles for research

URLS=(
  "https://example.com/article1"
  "https://example.com/article2"
)

for url in "${URLS[@]}"; do
  echo "Processing: $url"
  kagi summarize --subscriber --url "$url" --summary-type keypoints | jq -r '.data.output'
  echo "---"
  sleep 1
done

Quick Reference

# Quick overview of a page
kagi summarize --subscriber --url "$URL" --length overview | jq -r '.data.output'

# Detailed reading
kagi summarize --subscriber --url "$URL" --length long | jq -r '.data.output'

# Key points only
kagi summarize --subscriber --url "$URL" --summary-type keypoints | jq -r '.data.output'

Exit Codes

CodeMeaning
0Success - summary generated
1Error - see stderr for details
Common errors:
  • Missing required token
  • Invalid URL
  • Network error
  • Rate limiting

Troubleshooting

”this command requires KAGI_API_TOKEN”

You’re using public API mode without an API token. Either:
  • Set API token: kagi auth set --api-token '...'
  • Or use subscriber mode: add --subscriber flag

”this command requires KAGI_SESSION_TOKEN”

You’re using --subscriber mode without a session token. Set it:
kagi auth set --session-token 'https://kagi.com/search?token=...'

“—length requires —subscriber”

The --length option only works with subscriber mode:
# Wrong
kagi summarize --url https://example.com --length digest

# Right
kagi summarize --subscriber --url https://example.com --length digest

“—engine is only supported for the paid public summarizer API”

The --engine option only works with public API mode:
# Right (public API)
kagi summarize --url https://example.com --engine cecil

# Wrong (subscriber mode doesn't support engine selection)
kagi summarize --subscriber --url https://example.com --engine cecil

Empty output

  • Verify URL is accessible and not blocked
  • Check that content is text-based (not just images/video)
  • Try different summary type or length

See Also