Skip to main content
PORTFOLIO
All projects

Case study · 2024 — Present

Hone Intelligence — AI Clipboard for macOS

Local-first clipboard history with a Rust core and dual-process AI safety

Independent builder · Independent

Personal product
SwiftSwiftUIRustSQLite FTS5GoWorkOS

The problem

The problem

Clipboard history tools either spy in the cloud or lack AI transforms. Power users need both speed and privacy, plus a safety net so secrets never leak to a model.

Outcomes

  • Unlimited history with SQLite FTS5 search, Smart Context ranking, and a Cmd+K command palette
  • AI features (OpenAI, Anthropic, Perplexity) via BYOK or an optional WorkOS-gated Go proxy for orgs
  • Two-layer content safety: Swift-side policy plus Rust-side regex redaction before anything reaches a model

Architecture

SwiftUI app bridged to a Rust core (`hone_lib`) over a C FFI boundary — Rust owns SQLite (WAL + FTS5, 12 migrations), clipboard capture (NSPasteboard/NSEvent via objc2), and AI provider calls (reqwest + SSE streaming).

Secrets live in the macOS Keychain; sensitive-content detection (SSN/credit-card/API-key patterns) runs before paste and before any AI call. A separate Go service (`hone-auth`) handles WorkOS magic-code sign-in and role-based access for the optional org proxy.

Product

Tags, pinboards, favorites, snippets with placeholder expansion, paste queue, copy-merge, and paste transforms.

Chat workspace with vision analysis and cited Perplexity web search; a plugin marketplace with permission tiers; 30+ themes on a Liquid Glass design system.

Key tradeoffs

Platform

Chose: Native macOS first (Swift + Rust)

Rejected: Electron cross-platform v1

Clipboard capture, performance, and OS permissions are better as a native citizen; Rust keeps the data/AI core portable if a Windows port ever happens.

AI safety boundary

Chose: Redact before the model, not after

Rejected: Trust the provider / client-side warning only

Clipboard content routinely contains secrets — the redaction has to sit between capture and any network call, not as a post-hoc check.

What was hard

  • Permission model and silent capture reliability
  • Keeping the Swift/Rust FFI boundary safe under concurrent clipboard events

What I would change

  • Windows when macOS retention is proven

Artifacts