Kagi News stores all preferences in your browser’sDocumentation Index
Fetch the complete documentation index at: https://mintlify.com/kagisearch/kite-public/llms.txt
Use this file to discover all available pages before exploring further.
localStorage, so they persist across sessions without requiring an account. Every setting takes effect immediately — no save button needed. If you sign in with a Kagi account you can optionally sync settings across all your devices; see Sync for details.
Settings groups
Settings are organized into tabs in the Settings modal. Each tab maps to a logical group that is also used as the sync category.Appearance
Appearance
Controls the visual theme, text size, and layout of the app.
| Setting | Type | Default | Description |
|---|---|---|---|
theme | 'system' | 'light' | 'dark' | 'system' | Color scheme. system follows the OS dark-mode preference and updates automatically when it changes. |
fontSize | 'xs' | 'small' | 'normal' | 'large' | 'xl' | 'normal' | Global text size. Scales all type from 10 px (xs) up to 20 px (xl) at the base size. |
layoutWidth | 'normal' | 'wide' | 'full' | 'normal' | Maximum width of the content area on larger screens. Normal = 732 px, Wide = 1024 px, Full = edge-to-edge. Desktop only. |
Display
Display
Controls how stories are listed and opened within each category.
| Setting | Type | Default | Description |
|---|---|---|---|
storyCount | number (3–12) | 12 | Number of stories shown per category. Clamped to the range 3–12. |
storyExpandMode | 'always' | 'doubleClick' | 'never' | 'doubleClick' | When all stories in a category expand. always = immediately on load; doubleClick = on double-click of the category header; never = never auto-expand. |
storyOpenMode | 'multiple' | 'single' | 'multiple' | Whether multiple stories can be open simultaneously. single collapses the previous story when you open a new one. |
categoryHeaderPosition | 'top' | 'bottom' | 'bottom' | Where category navigation tabs appear on mobile devices. |
mapsProvider | 'auto' | 'kagi' | 'google' | 'openstreetmap' | 'apple' | 'auto' | Which map service opens when you click a location link in a story. auto picks the best option for the device. |
useLatestUrls | boolean | false | When enabled, share URLs use /latest/ so bookmarks always point to the current batch rather than a specific dated batch. |
Language
Language
Controls the interface language and how story content is translated or displayed.
| Setting | Type | Default | Description |
|---|---|---|---|
language | Language code | 'en' | Interface language — used for all buttons, labels, and UI strings. Supported: en, fr, de, es, pt, pt-BR, it, nl, ja, zh-Hans, zh-Hant, hi, uk, ar, he, ca, fi, ko, lb, nb, pl, ru, sv, th, tr, et. |
dataLanguage | 'default' | 'source' | 'custom' | <lang code> | 'default' | Content translation mode. default = smart mode (source language for country-specific categories, browser language for others); source = always show original language; custom = translate into your chosen languages; a specific code = translate everything into that language. |
contentLanguages | SupportedLanguage[] | [] | Ordered list of languages you can read, used only when dataLanguage is 'custom'. The first entry is the primary translation target; additional entries are languages you can also read without translation. |
Categories
Categories
Controls which news categories are visible and how they are presented.
Default enabled categories (first-time setup):
| Setting | Type | Default | Description |
|---|---|---|---|
categoryOrder | string[] | [] | Ordered list of category IDs. Drag categories in the settings panel to reorder. |
enabledCategories | string[] | See below | Category IDs that are active and visible in the news feed. |
disabledCategories | string[] | See below | Category IDs that are hidden. |
singlePageMode | 'disabled' | 'sequential' | 'mixed' | 'random' | 'disabled' | Layout mode for the feed. disabled uses the default tabbed view; sequential scrolls all stories grouped by category; mixed interleaves stories round-robin across categories; random shuffles all stories. |
world, usa, business, tech, science, sports, gaming, onthisday.New categories added to the platform are automatically placed in the disabled list until you enable them.Content Filters
Content Filters
Controls which topics are hidden or blurred in the news feed.
You can export your filter configuration as a JSON file and import it on another device. The export file is named
| Setting | Type | Default | Description |
|---|---|---|---|
contentFilter | 'default' | 'family' | 'none' | 'default' | Global content safety level. family applies additional filtering suitable for mixed audiences; none turns off built-in filtering. |
| Filter keywords | string[] | [] | Custom keyword list. Stories matching any keyword are filtered according to the mode and scope below. You can add multiple keywords at once by separating them with commas. |
| Filter presets | Toggleable presets | none active | Pre-built keyword groups for common topics (e.g. politics, sports, conflicts). Toggle presets on or off — their keywords are managed automatically. |
filterMode | 'hide' | 'blur' | 'hide' | What happens to matched stories. hide removes them from the list; blur shows a blurred placeholder that can be revealed on click. |
filterScope | 'title' | 'summary' | 'all' | 'all' | Which parts of a story are checked against keywords. title checks the headline only; summary checks the headline and summary; all checks all content. |
| Show filtered count | boolean | true | Display a badge on each category showing how many stories were filtered out. |
kite-content-filters-YYYY-MM-DD.json.Sections
Sections
Controls which sections are shown inside an open story card.
| Section key | Default | Description |
|---|---|---|
showSource | true | Show the list of source articles. |
showSummaryBullets | true | Show the bullet-point summary. |
showDetailedSummary | true | Show the detailed prose summary. |
showPerspectives | false | Show differing perspectives on the story. |
showQuestions | false | Show AI-generated Q&A for the story. |
showTimeline | false | Show a chronological timeline of events. |
showTechnicalDetails | false | Show technical details (for science/tech stories). |
Reading Level (Kagi subscribers only)
Reading Level (Kagi subscribers only)
Automatically simplifies story text to a chosen reading level. Available to Kagi subscribers.
The
| Setting | Type | Default | Description |
|---|---|---|---|
globalReadingLevel | 'normal' | 'simple' | 'very-simple' | 'normal' | Default reading level for all categories. simple targets B1 proficiency; very-simple targets A2 with basic vocabulary. |
categoryReadingLevels | Record<string, ReadingLevel> | {} | Per-category overrides. Map of category ID to reading level. When a category has an override it takes precedence over the global setting. Set to 'use-global' to remove the override. |
onthisday category does not support reading level simplification.How settings are saved
Settings are persisted tolocalStorage immediately when changed. Most settings use a when_not_default strategy — only non-default values are written, keeping storage compact. Array settings such as categoryOrder and contentLanguages always write their full value. When syncing is active, each change is debounced and uploaded to the server within a few seconds.
To reset everything to factory defaults, open the browser console and run: