agentleFS
Ranchero-SoftwareRanchero-Software/NetNewsWire/CLAUDE.md

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
  1. Very specific:

    Run all tests: Use the NetNewsWire.xctestplan which includes tests from all modules

    line 15
  2. Distinctive:

    Prefer idiomatic modern Swift.

    line 67
  3. Very specific:

    Prefer if let x and guard let x over if let x = x and guard let x = x.

    line 69

≈ “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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
CLAUDE.md

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

Testing

  • Run all tests: Use the NetNewsWire.xctestplan which includes tests from all modules
  • Individual test runs follow same xcodebuild pattern with test action instead of build

Setup

  • First-time setup: Run ./setup.sh to configure development environment and code signing
  • Manual setup: Create SharedXcodeSettings/DeveloperSettings.xcconfig in 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 xcbeautify for 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.

Download now (ZIP)

Trending

Steady talk.about the whole repository

Dec 2025: 0 mentionsJan 2026: 1 mentionFeb 2026: 0 mentionsMar 2026: 2 mentionsApr 2026: 2 mentionsMay 2026: 1 mentionJun 2026: 0 mentionsJul 2026: 2 mentionsAug 2026: 1 mentionSep 2026: 1 mentionOct 2026: 2 mentionsNov 2026: 0 mentions
Dec 2025Jun 2026Nov 2026
Mentions a month of the Ranchero-Software/NetNewsWire repository that our weekly crawl found. There is no adoption data for this file yet.

Who's talking about Ranchero-Software/NetNewsWire

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

37 more on GitHub

On Bluesky · 2

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.