Add a feed by URL
Paste any site URL. CODA resolves documented patterns (YouTube channel / playlist, Reddit subreddit, Mastodon profile, GitHub releases) directly; for everything else it asks the §4 Worker’s /discover endpoint to scan the page for <link rel="alternate"> tags and probe common feed paths. When a site publishes nothing feed-shaped (many newsrooms, including GMA Network), the Worker scans the page for its repeating headline-link pattern and offers a synthesized Atom feed; refine it with a CSS class selector if auto-detection misses.
Facebook, Instagram, X (Twitter), and TikTok do not publish public RSS feeds in 2026. CODA refuses those URLs with an explanation; if you run your own RSSHub or RSS-Bridge instance, configure its base URL below and CODA will build a ready-to-add candidate feed. CODA will never silently route your URLs through a public bridge instance.
Bridge URL (optional)
If you operate your own RSSHub or RSS-Bridge instance (self-hosted or rented), enter its base URL here. CODA builds a ready-to-add candidate feed when you paste a Facebook, Instagram, X, or TikTok URL. Leave blank to disable bridge suggestions entirely.
Import subscriptions (OPML)
Drop an OPML 2.0 file from Inoreader, Feedly, NetNewsWire, Reeder, or any other reader. The parsed feed list appears below; uncheck anything dormant or unwanted before committing.
Automated dormancy detection (the “17 of your 89 feeds haven’t published in 2+ years” signal) needs per-feed last-publish metadata from the §4 Worker. Until that lands, triage is manual — every feed visible, every feed togglable.
Export current subscriptions
Downloads coda-subscriptions.opml with whatever’s currently stored at coda/subs/subscriptions.json on the active adapter.
Optional intelligence surfaces
Off by default. CODA ships no credentials for any AI, OCR, TTS, or translation provider. When you turn this on, future PRs will surface buttons for summarisation (BYO LLM key), on-device OCR and transcription, read-aloud TTS, and translation against a self-hosted LibreTranslate endpoint. Article text only leaves your device when you press a button, and the first remote request per session shows a one-line confirmation naming the destination.
Heads up: enabling a provider in a later PR will send the open article’s text to the destination you configure. CODA will name the hostname before the first request of each session, and every surface has its own off-by-default checkbox.
No providers are wired in this PR. The queue (per ROADMAP §17.11) is: Groq · Cerebras · Mistral · Gemini · OpenRouter · HuggingFace · Tesseract OCR · Whisper.cpp transcription · ElevenLabs/OpenAI TTS · LibreTranslate translation · Cloudflare Workers AI (self-hosted only) · ordered fallback (self-hosted only).