NetNewsWire
CLAUDE.md10k starsChanged 5 months agoMITView on GitHub
Prefer idiomatic modern Swift. Prefer if let x and guard let x over if let x = x and guard let x = x. Don’t use ... or … in Logger messages. Guard statements should always put the return in a separate line. Don’t do force unwrapping of optionals. Just because unit tests pass doesn’t mean a given bug is fixed. It may not have a test. It may not even be testable — it may require manual testing.
We split this CLAUDE.md into the rules it gives an agent
3 rules. About 0 are common, 1 is distinctive, and 2 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
2
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 15
Run all tests: Use the NetNewsWire.xctestplan which includes tests from all modules
- Distinctive: line 67
Prefer idiomatic modern Swift.
- Very specific: line 69
Prefer if let x and guard let x over if let x = x and guard let x = x.
≈ “Common” is an estimate: at least 1 in 5 of the 25,680 CLAUDE.md files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
Build and Development Commands
Building and Testing
- Full build and test:
./buildscripts/build_and_test.sh- Builds both macOS and iOS targets and runs all tests - Quiet build and test:
./buildscripts/quiet_build_and_test.sh- Same as above with less verbose output - Manual Xcode builds:
- macOS:
xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire -destination "platform=macOS,arch=arm64" build - iOS:
xcodebuild -project NetNewsWire.xcodeproj -scheme NetNewsWire-iOS -destination "platform=iOS Simulator,name=iPhone 17" build
- macOS:
Testing
- Run all tests: Use the
NetNewsWire.xctestplanwhich includes tests from all modules - Individual test runs follow same xcodebuild pattern with
testaction instead ofbuild
Setup
- First-time setup: Run
./setup.shto configure development environment and code signing - Manual setup: Create
SharedXcodeSettings/DeveloperSettings.xcconfigin parent directory
Project Architecture
High-Level Structure
NetNewsWire is a multi-platform RSS reader with separate targets for macOS and iOS, organized as a modular architecture with shared business logic.
Key Modules (in /Modules)
- RSCore: Core utilities, extensions, and shared infrastructure
- RSParser: Feed parsing (RSS, Atom, JSON Feed, RSS-in-JSON)
- RSWeb: HTTP networking, downloading, caching, and web services
- RSDatabase: SQLite database abstraction layer using FMDB
- Account: Account management (Local, Feedbin, Feedly, NewsBlur, Reader API, CloudKit)
- Articles: Article and author data models
- ArticlesDatabase: Article storage and search functionality
- SyncDatabase: Cross-device synchronization state management
- Secrets: Secure credential and API key management
Platform-Specific Code
- Mac/: macOS-specific UI (AppKit), preferences, main window management
- iOS/: iOS-specific UI (UIKit), settings, navigation
- Shared/: Cross-platform business logic, article rendering, smart feeds
Key Architectural Patterns
- Account System: Pluggable account delegates for different sync services
- Feed Management: Hierarchical folder/feed organization with OPML import/export
- Article Rendering: Template-based HTML rendering with custom CSS themes
- Smart Feeds: Virtual feeds (Today, All Unread, Starred) implemented as PseudoFeed protocol
- Timeline/Detail: Classic three-pane interface (sidebar, timeline, detail)
Extension Points
- Share extensions for both platforms
- Safari extension for feed subscription
- Widget support for iOS
- AppleScript support on macOS
- Intent extensions for Siri shortcuts
Development Notes
- Uses Xcode project with Swift Package Manager for module dependencies
- Requires
xcbeautifyfor formatted build output in scripts - API keys are managed through buildscripts/updateSecrets.sh (runs during builds)
- Some features disabled in development builds due to private API keys
- Code signing configured through SharedXcodeSettings for development
- Documentation and technical notes are located in the
Technotes/folder
Code Formatting
Prefer idiomatic modern Swift.
Prefer if let x and guard let x over if let x = x and guard let x = x.
Don’t use ... or … in Logger messages.
Guard statements should always put the return in a separate line.
Don’t do force unwrapping of optionals.
Things to Know
Just because unit tests pass doesn’t mean a given bug is fixed. It may not have a test. It may not even be testable — it may require manual testing.
Trending
Steady talk.about the whole repository
Who's talking about Ranchero-Software/NetNewsWire
- dkhamsing/open-source-ios-apps“Queue”GitHub · Apr 19, 2016 · 4 reactions
- @sapphic.moe“netnewswire! github.com/Ranchero-Sof...”Bluesky · May 8, 2026 · 3 likes
- NixOS/nixpkgs“net-news-wire: 6.1.9 -> 6.2”GitHub · Nov 5, 2025 · 2 reactions
- A Hacker News story“NetNewsWire is a free and open source RSS reader for Mac, iPhone, and iPad”Hacker News · Aug 21, 2024 · 2 points
- FreshRSS/FreshRSS“[Feature] Make the API Password feature more discoverable ”GitHub · Jan 8, 2022 · 2 reactions
The biggest 5 of 51 mentions linking to the repository that our crawl found. Each line is their own headline.
See all 51
Talked about on GitHub, Hacker News, the web, Bluesky and Stack Overflow (51 times).
On GitHub · 42
- Apr 19, 2016Queue — dkhamsing/open-source-ios-apps4 reactions · 3 comments
- Nov 5, 2025net-news-wire: 6.1.9 -> 6.2 — NixOS/nixpkgs2 reactions
- Jan 8, 2022[Feature] Make the API Password feature more discoverable — FreshRSS/FreshRSS2 reactions · 1 comment
- Nov 7, 2025Markdown Support in RSS Feeds — lqdev/luisquintanilla.me1 reaction · 1 comment
- Oct 24, 2025Update Request: net-news-wire 6.1.9 → 6.1.10 — NixOS/nixpkgs1 reaction · 1 comment
37 more on GitHub
- May 24, 2025FeedType: reduce the inspection prefix length & throw early for insufficient data — nmdias/FeedKit1 reaction · 1 comment
- Aug 2, 2024feat: add no_shorts option for YouTube feeds — glanceapp/glance1 reaction · 1 comment
- Apr 20, 2020Test and add Netnewswire to the list of supported clients — FreshRSS/FreshRSS1 reaction · 6 comments
- Oct 23, 2026Task lead (app/reader): Viaduct — reacher-z/Awesome-REA0 reactions
- Oct 2, 2026net-news-wire: 7.1.3 -> 7.1.5 — NixOS/nixpkgs0 reactions · 1 comment
- Sep 7, 2026RSS部分修改 — poco-ai/Agentero0 reactions · 1 comment
- Aug 14, 2026Document NetNewsWire-style Reader API sync architecture — AllanZyne/ReadFlux0 reactions
- Jul 27, 2026EPIC: Library view quality pass — every view mode as good as the sidebar — dtubb/fichero0 reactions · 10 comments
- Jul 25, 2026NetNewsWire — expo/expo-brownfield-examples0 reactions · 1 comment
- Apr 30, 2026chore: update flake.lock, sources, uv.lock, and crate2nix — gkze/nixcfg0 reactions
- Mar 15, 2026运营报告 2026-03-15 06:33 UTC — kisrea-team/LogUp0 reactions
- Jan 30, 2026net-news-wire: 6.2 -> 7.0.5 — NixOS/nixpkgs0 reactions · 12 comments
- Jul 2, 2025[lld] crash linking OSS https://github.com/Ranchero-Software/NetNewsWire — llvm/llvm-project0 reactions · 1 comment
- Mar 28, 2025NetNewsWire:免费开源的 macOS RSS 阅读器,让阅读更高效! — jaywcjlove/quick-rss0 reactions · 1 comment
- Mar 2, 2025NetNewsWire — ThatGuySam/doesitarm0 reactions · 1 comment
- Jan 12, 2025net-news-wire: 6.1.8 -> 6.1.9 — NixOS/nixpkgs0 reactions
- Jan 1, 2025net-news-wire: 6.1.5 -> 6.1.8 — NixOS/nixpkgs0 reactions · 1 comment
- Nov 21, 2024Interoperability Bounties ($800/nip-23 addition to RSS readers) — nostrability/nostrability0 reactions · 4 comments
- Oct 20, 2024Rename Feed — jocmp/capyreader0 reactions
- Oct 20, 2024Add Feed — jocmp/capyreader0 reactions
- Oct 5, 2024Move RSWeb to local library — gvsucis/art-at-gvsu-ios0 reactions
- Jul 8, 2024Updated Label for NetNewsWire — Installomator/Installomator0 reactions
- May 30, 2024重新捡起 RSS:RSSHub + FreshRSS 建立我的信息流 — ericvlog/note0 reactions
- Apr 29, 2024我的年度工具折腾之旅 — guevara/read-it-later0 reactions
- Feb 17, 2024我的年度工具折腾之旅 — guevara/read-it-later0 reactions
- Oct 26, 2023Integrate PLCrashReporter's text formatter for new crash logs — CleanCocoa/CrashReporter0 reactions
- Jun 7, 2023NetNewsWire icon gets the no entry sign — siracusa/SwitchGlass-Issues0 reactions · 9 comments
- May 16, 2022Clipped toolbar items are always disabled on macOS — Ranchero-Software/RSCore0 reactions
- Dec 31, 2021[BUG] Large emojis for WordPress blogs (again) — FreshRSS/FreshRSS0 reactions · 14 comments
- Aug 15, 2021Need to reimplement spacebar handling — ViennaRSS/vienna-rss0 reactions · 3 comments
- Apr 9, 2021Hints sometimes don't appear in web view in NetNewsWire — nchudleigh/vimac0 reactions
- Jan 24, 2021Unknown error for feed — FreshRSS/FreshRSS0 reactions · 7 comments
- Sep 3, 2020Fix warning due to application extension API only checkbox — Ranchero-Software/OAuthSwift0 reactions
- Jul 27, 2020Cannot add Articles RSS feed to NetNewsWire — gsong-archive/personal-site-gatsby0 reactions · 2 comments
- May 25, 2020Setup workflow that pulls Xcode signing out of the repo — codeRIT/brickhack-mobile-ios0 reactions
- Jan 29, 2020<span>s whose parents are <li>s shouldn't be converted to <p>s — postlight/parser0 reactions · 2 comments
- Jan 10, 2020Parse feeds encoded with GB2312 — Ranchero-Software/RSParser0 reactions · 6 comments
On Hacker News · 3
- Aug 21, 2024NetNewsWire is a free and open source RSS reader for Mac, iPhone, and iPad2 points
- Dec 16, 2024How to Support NetNewsWire1 point
- Jan 25, 2022How to Support NetNewsWire1 point
On the web · 3
- Mar 18, 2026feed name visibility · Issue #5201 · Ranchero-Software ... — google.com
- Apr 23, 2021No feedback on adding feed from share sheet · Issue #3049 — google.com
- Jul 10, 2020nextCloud News integration possible? · Issue #2247 — google.com
On Bluesky · 2
- May 8, 2026netnewswire! github.com/Ranchero-Sof... — @sapphic.moe3 likes and reposts
- Apr 6, 2026It might be easier to vibe modify a polished open source app like github.com/Ranchero-Sof... — @thyu.bsky.social1 likes and repost
On Stack Overflow · 1
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

