Kagi Universal Summarizer
Summarize any URL or block of text using Kagi's Universal Summarizer API. Handles articles, papers, PDFs, video transcripts, forum threads, and more. Supports multiple summarization engines and can translate output to 28 languages.
This skill uses a Go binary for fast startup and zero runtime dependencies. The binary can be downloaded pre-built or compiled from source.
Setup
Requires a Kagi account with API access enabled. Uses the same KAGI_API_KEY as all other kagi-* skills.
- Create an account at https://kagi.com/signup
- Navigate to Settings → Advanced → API portal: https://kagi.com/settings/api
- Generate an API Token
- Add funds at: https://kagi.com/settings/billing_api
- Add to your shell profile (
~/.profileor~/.zprofile):export KAGI_API_KEY="your-api-key-here" - Install the binary — see Installation below
Pricing
Token-based, billed per 1,000 tokens processed. Cached requests are free.
| Plan | Price per 1k tokens |
|---|---|
| Standard (Cecil / Agnes) | $0.030 |
| Kagi Ultimate subscribers | $0.025 (automatically applied) |
| Muriel (enterprise-grade) | higher — check API pricing page |
Usage
# Summarize a URL
{baseDir}/kagi-summarizer.sh https://example.com/article
# Summarize raw text
{baseDir}/kagi-summarizer.sh --text "Paste your article text here..."
# Pipe text from stdin
cat paper.txt | {baseDir}/kagi-summarizer
echo "Long text..." | {baseDir}/kagi-summarizer.sh --type takeaway
# Choose engine
{baseDir}/kagi-summarizer.sh https://arxiv.org/abs/1706.03762 --engine muriel
# Get bullet-point takeaways instead of prose
{baseDir}/kagi-summarizer.sh https://example.com/article --type takeaway
# Translate summary to another language
{baseDir}/kagi-summarizer.sh https://example.com/article --lang DE
{baseDir}/kagi-summarizer.sh https://example.com/article --lang JA
# JSON output
{baseDir}/kagi-summarizer.sh https://example.com/article --json
# Combined options
{baseDir}/kagi-summarizer.sh https://arxiv.org/abs/1706.03762 --engine muriel --type takeaway --lang EN --json
Options
| Flag | Description |
|---|---|
--text <text> | Summarize raw text instead of a URL |
--engine <name> | Summarization engine (see below, default: cecil) |
--type <type> | Output type: summary (prose) or takeaway (bullets) |
--lang <code> | Translate output to a language code (e.g. EN, DE, FR, JA) |
--json | Emit JSON output |
--no-cache | Bypass cached responses |
--timeout <sec> | HTTP timeout in seconds (default: 120) |
Engines
| Engine | Description |
|---|---|
cecil | Friendly, descriptive, fast summary (default) |
agnes | Formal, technical, analytical summary |
muriel | Best-in-class, enterprise-grade model — highest quality, slower |
Language Codes
Common codes: EN English · DE German · FR French · ES Spanish · IT Italian · PT Portuguese · JA Japanese · KO Korean · ZH Chinese (simplified) · ZH-HANT Chinese (traditional) · RU Russian · AR Arabic
Full list: BG CS DA DE EL EN ES ET FI FR HU ID IT JA KO LT LV NB NL PL PT RO RU SK SL SV TR UK ZH ZH-HANT
If no language is specified, the output language follows the document's own language.
Output
Default (text)
Prints the summary to stdout. Token usage and API balance are printed to stderr:
The paper "Attention Is All You Need" introduces the Transformer architecture,
a novel approach to sequence transduction tasks that relies entirely on
attention mechanisms, dispensing with recurrence and convolutions...
[API Balance: $9.9800 | tokens: 1243]
JSON (--json)
{
"input": "https://arxiv.org/abs/1706.03762",
"output": "The paper introduces the Transformer...",
"tokens": 1243,
"engine": "muriel",
"type": "takeaway",
"meta": {
"id": "abc123",
"node": "us-east",
"ms": 4821,
"api_balance": 9.98
}
}
When to Use
- Use kagi-summarizer when you have a URL or document and need a concise summary without reading it yourself
- Use
--type takeawayfor structured bullet points — ideal for research papers, long articles, or meeting notes - Use
--engine murielwhen quality matters most (longer documents, academic papers, technical reports) - Use
--langwhen you need the summary in a language different from the source - Use kagi-fastgpt instead when you have a question that requires synthesizing information from multiple sources via live web search
- Use kagi-search instead when you need raw search results to scan or compare
Installation
Option A — Download pre-built binary (no Go required)
OS=$(uname -s | tr '[:upper:]' '[:lower:]')
ARCH=$(uname -m)
case "$ARCH" in
x86_64) ARCH="amd64" ;;
aarch64|arm64) ARCH="arm64" ;;
esac
TAG=$(curl -fsSL "https://api.github.com/repos/joelazar/kagi-skills/releases/latest" | grep '"tag_name"' | cut -d'"' -f4)
BINARY="kagi-summarizer_${TAG}_${OS}_${ARCH}"
mkdir -p {baseDir}/.bin
curl -fsSL "https://github.com/joelazar/kagi-skills/releases/download/${TAG}/${BINARY}" \
-o {baseDir}/.bin/kagi-summarizer
chmod +x {baseDir}/.bin/kagi-summarizer
# Verify checksum (recommended)
curl -fsSL "https://github.com/joelazar/kagi-skills/releases/download/${TAG}/checksums.txt" | \
grep "${BINARY}" | sha256sum --check
Pre-built binaries are available for Linux and macOS (amd64 + arm64) and Windows (amd64).
Option B — Build from source (requires Go 1.26+)
cd {baseDir} && go build -o .bin/kagi-summarizer .
Alternatively, just run {baseDir}/kagi-summarizer.sh directly — the wrapper auto-builds on first run if Go is available.
The binary has no external dependencies — only the Go standard library.