AI Architecture Analysis
This repository is indexed by RepoMind. By analyzing jarv/newsgoat in our AI interface, you can instantly generate complete architecture diagrams, visualize control flows, and perform automated security audits across the entire codebase.
Our Agentic Context Augmented Generation (Agentic CAG) engine loads full source files into context on-demand, avoiding the fragmentation of traditional RAG systems. Ask questions about the architecture, dependencies, or specific features to see it in action.
Repository Overview (README excerpt)
Crawler viewNewsGoat NewsGoat is a terminal-based RSS reader written in Go using the bubbletea TUI framework. It's inspired by Newsbeuter/Newsboat and provides a vi-like interface for reading RSS feeds. Why create another terminal-based RSS reader? I’ve been using terminal-based RSS readers for about 15 years. The first program I used was Newsbeuter, but around 2017 its maintainer announced it would no longer be maintained, so I switched to its fork, Newsboat. Over time, I grew frustrated with frequent crashes and started looking for alternatives. A similar terminal-based RSS reader written in Go called nom looked interesting, but it didn’t offer the feed organization I wanted. Meanwhile, “vibe coding” was catching on, and it seemed like a fun excuse to see how quickly I could build my own news reader in Go with exactly the features I wanted. After about a day of prompting, tweaking, and vibing through the process, here’s the result—enjoy! Features • **Folder organization**: Organize feeds into collapsible folders. Feeds can belong to multiple folders. • **Feed grouping**: Feeds are grouped by the feed URL. • **Feed info**: Quickly query info for every feed including cache-control, last-updated, etc. Press i to view feed info. • **Error logs**: Error logs are shown directly in the UI for feed troubleshooting. Press l to view logs. • **Task management**: Refresh task control separate in the app with a way to see what is queued, running and failures. Press t to view tasks. • **Flexible sorting**: Option to put feeds with unread items at the top. Press c to configure. • **Auto-discovery**: Automatic feed discovery when adding URLs. Press u to add a youtube link and automatically subscribe to the channel's feed. Feed Auto Discovery Watch individual files or directories in a GitHub/GitLab repository It is possible to monitor individual files (or directories) in GitHub/GitLab by subscribing to that files commit history. There is first-class support for this by parsing any GitHub/GitLab link when you press u to add a URL and will subscribe to the feed. The name of the feed will be displayed as the path to the file. If or is set in the environment, it will use that as part of fetch for private repositories. Youtube Subscribe to a YouTube channel with RSS by pressing u to add a YouTube URL. This will extract the and subscribe to the channel RSS feed. Design Principles • **Beautiful and compact**: Compact design and tactful use of emojis. • **Opinionated**: It was built with one (my own) preferred configuration for Newsboat in mind, it is not as configurable as the alternatives. • **A good "netizen"**: It follows rachelbythebay feed reader best practices. • sends conditional responses • respects and will use the local cache instead instead of a conditional response • sets a useful user-agent • **Database-backed with plain text editing**: Feed URLs are stored in a local database but can be edited using your favorite text editor in a familiar plain text format (similar to Newsboat) • **Configuration in the UI**: For what little configuration there is, it is set in the UI instead of through a configuration file Alternatives • The original terminal-based newsreader newsbeuter. • Newsbeuter was archived, and I think was forked as newsboat and re-written in Rust. • nom is a similar terminal-based news reader (also written in Go). • feedr a different look but looks like a really nice alternative, written in Rust. If you know of any other terminal-based RSS readers worth mentioning here please add them! Configure NewsGoat runs with a local SQLite database at . Simply run: You can add and manage feeds through the UI (see "Add Feed URLs" section below). Development Setup • Install mise for tool version management • Clone the repository • Enable git hooks: This will configure git to run the linter before each commit. Building Linting The project uses golangci-lint for code quality: The linter runs automatically on every commit via a pre-commit hook. To bypass temporarily (not recommended): Install Quick Install (Recommended) Install with a single command (macOS and Linux): This will automatically detect your OS and architecture and install the latest version to . Manual Install Download the latest release for your platform from the releases page: macOS (Apple Silicon / Intel) **Apple Silicon** **Intel** Linux (amd64 / arm64) **amd64** **arm64** Add Feed URLs There are three ways to add feed URLs to NewsGoat: • Via Command Line Add a feed URL directly from the command line with automatic feed discovery: NewsGoat will automatically discover the RSS/Atom feed URL from the provided URL. For example: • will find the feed link in the page • will discover the YouTube RSS feed • In the Application (Interactive) Press in the feed list view to open an interactive prompt where you can: • Type or paste a URL (optionally followed by folders) • Format: or or • Press Enter to add (with automatic feed discovery) • Press Esc to cancel Examples: • • • 3. Edit URLs in Your Editor Press (Shift+U) in the feed list view to open a temporary file in your with your current feeds. **How it works:** • NewsGoat creates a temporary file populated with all your current feeds • Edit the file in your preferred editor (set via environment variable) • When you save and exit, NewsGoat updates the database with your changes • The temporary file is automatically deleted after syncing **File format:** • Add one feed URL per line • Optionally add folders after the URL: • Use quotes for folder names with spaces: • Lines starting with are treated as comments • Feeds not in the file will be hidden (but not deleted from the database) Example format: Organizing Feeds with Folders NewsGoat supports organizing feeds into folders: • **Multiple folders**: Feeds can belong to multiple folders and will appear under each one • **Collapsible**: Press Enter on a folder to expand/collapse its contents • **Visual hierarchy**: F…