README.md

July 18, 2026 · View on GitHub

English | 简体中文

Harbor

Harbor

Local-first reading and curation for macOS — capture, read, organize, and chat with your knowledge, all on your Mac.

Harbor Demo: Immersive Reading, Highlights, Bilingual, AI Summary & Chat

Watch full video (MP4 · 55s)


Features

  • 🌊 Capture: Extract article text from URLs, subscribe to RSS/Atom/JSON feeds (dedup, conditional requests, parallel sync), import OPML and read-later exports (Pocket / Instapaper), import local PDFs and images
  • 📖 Read: Three-column layout, text selection with highlights & notes, bilingual reading, serif fonts with typography controls, reading progress tracking
  • 📂 Organize: Tags, tree folders, favorites, SQLite FTS5 full-text search (CJK + Latin), keyboard navigation
  • 🤖 AI (Bring Your Own Key): Summarize, translate, chat and remix with AI — results saved locally for offline access
  • 🏠 Local-First: All data (library, highlights, notes, reading positions) stored locally; AI is opt-in, explicit, and never auto-sends

⚓ Part of a nautical family: Harbor is where knowledge docks, Beacon lights up expiring certificates before they bite, and TokenAtlas charts your AI coding voyage.

Installation

Download

  1. Download Harbor.dmg from Releases

  2. Open the DMG and drag Harbor to Applications

  3. First launch: This version is not notarized by Apple. Right-click Harbor in Applications → Open, or run in Terminal:

    xattr -dr com.apple.quarantine /Applications/Harbor.app
    

Homebrew

brew install --cask can4hou6joeng4/tap/harbor

Auto-Update

Check for updates via Harbor → Check for Updates... in the menu bar. Updates are distributed through Sparkle with EdDSA signature verification.

AI Setup (Bring Your Own Key)

Go to Settings in Harbor, choose a provider, and enter your API key (stored in Keychain only):

  • Anthropic: Default endpoint api.anthropic.com
  • OpenAI: Official or compatible endpoints (Azure, Groq, Together, etc.)
  • Custom: Any OpenAI-compatible service with custom base URL

AI features:

  • Summarize: Structured summary of the article
  • Translate: Paragraph-by-paragraph translation with preserved IDs
  • Chat & Remix: Streaming AI responses, saved to library

All AI results are stored locally and remain accessible offline.

Tech Stack

  • Swift 6 + SwiftUI for native macOS experience
  • GRDB for local SQLite persistence with FTS5 search
  • Sparkle for automatic updates
  • SSE streaming for real-time AI responses

Development

Requirements

  • macOS 13.0+
  • Xcode 16.0+
  • Swift 6.0+

Build

# Clone the repository
git clone https://github.com/can4hou6joeng4/Harbor.git
cd Harbor

# Build and run
swift build
swift run

# Or open in Xcode
open Package.swift

Test

swift test

Package

./script/package_app.sh

This generates a DMG with code signing and notarization (requires Apple Developer credentials).

Contributing

Contributions are welcome! Please read CONTRIBUTING.md first (if you have contribution guidelines).

License

GPL v3 — see LICENSE for details.

Acknowledgments

Built with inspiration from:


Made with ❤️ for knowledge workers who value privacy and local control