A macOS menu bar app for ambient social presence at physical venues. See who's at your cafe, coworking space, or bar — and connect with them.
Cityscape sits in your menu bar and uses WiFi to detect what venue you're at. When you "go live," you appear as a glowing dot on an ambient board visible to others at the same spot. Wave at someone to start a conversation over iMessage.
- WiFi-based presence — no GPS tracking, no check-ins, no manual location sharing
- Ambient board — SpriteKit visualization with floating dots, physics, and glow effects
- Ghost mode — 15-minute arrival buffer so you're not instantly visible
- Openness levels — "Come say hi" / "Ping me first" / "Just vibing"
- iMessage integration — waves connect you via iMessage, not a proprietary chat
- macOS 14 (Sonoma) or later
- Location permission (required for WiFi SSID access on macOS 14+)
./run.shBuilds the Swift package, creates a .app bundle, kills any running instance, and launches.
To package a signed DMG:
./package.shRequires DEVELOPER_ID, TEAM_ID, NOTARY_APPLE_ID, and NOTARY_PASSWORD environment variables.
- Swift 5.9, SwiftUI + SpriteKit
- CoreLocation + CoreWLAN for WiFi/venue detection
- WebSocket (Phoenix Channels) for real-time presence
- Sign in with Apple for identity
See DESIGN.md for the full visual specification — colors, typography, spacing, motion, and accessibility compliance.
MIT — see LICENSE.