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.
Social feeds & sign-in (optional)
Facebook, Instagram, X, and TikTok keep their posts behind a sign-in, so they have no open feed to subscribe to. If you’d like CODA to build a feed from one anyway, switch this on. To include posts that only show when you’re signed in, you can paste your own browser session below — it stays on this device, goes only to your own fetch proxy, and is never shared. Leaving it blank still tries public posts, and you can clear it any time.
Where do I find my sign-in?
Sign in to the site in another browser tab. Open your browser menu → Developer tools → Application (or Storage) → Cookies, choose the site, and copy the values you see. Paste them here as name=value; name=value. If that feels like a lot, you can skip it — public pages still work, and the bridge option above is the easy route.
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).