Skip to content

construct-computer/notch

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

NotchConstruct

A macOS companion app for Construct that lives in your MacBook's notch. Chat with your AI agent from anywhere — hover over the notch to check status, click to expand the full chat interface.

Features

  • Three-state notch UI — Collapsed pill blends with the hardware notch, compact bar appears on hover, full chat panel expands on click
  • Real-time agent chat — Send messages, see streaming responses, track tool execution and activity
  • Voice input — Speech-to-text via ElevenLabs for hands-free interaction
  • Screenshot sharing — Capture your screen and share it with the agent
  • Slash commands/new to start a fresh session, /clear to clear chat history
  • Settings — User profile, agent config, connection status, subscription & usage, all synced with the web app
  • Device-code auth — Link with your Construct account securely through the webapp (no OAuth in the native app)
  • Menu bar controls — Quick access to open notch, new/clear chat, settings, and sign out
  • Keyboard shortcutsCtrl+Space to toggle the panel, Esc to dismiss

Requirements

  • macOS 14.0 (Sonoma) or later
  • Xcode 16.0+
  • XcodeGen

Setup

# Clone the repo
git clone [email protected]:construct-computer/notch.git
cd notch

# Run setup (installs xcodegen if needed and generates the Xcode project)
./setup.sh

# Open in Xcode
open NotchConstruct.xcodeproj

Build and run with Cmd+R in Xcode. The app runs as a menu bar agent (no Dock icon).

Project Structure

NotchConstruct/
├── App/                    # App entry point, AppDelegate, lifecycle
├── Agent/                  # AgentViewModel, event handling, WebSocket events
├── Notch/                  # Notch UI: panel, shape, content view, detector
├── Views/                  # Reusable views: chat, input, activity, loader
├── Settings/               # Settings window: user, connections, subscription, general
├── Services/               # API client, auth, WebSocket, voice, screen capture
├── Models/                 # Data models: user, messages, API responses, config
├── Utilities/              # Constants, keychain helper
└── Resources/              # Assets, Info.plist, entitlements, loader animations

Architecture

  • SwiftUI + AppKit — SwiftUI views hosted in a borderless NSPanel overlay
  • @Observable — Reactive state management with Swift's Observation framework
  • Three-state morphingNotchShape animates between collapsed, compact, and expanded with spring physics
  • WebSocket — Real-time connection to the Construct agent with auto-reconnect and keepalive
  • Device-code auth — Polling-based account linking through the webapp

Auth Flow

  1. Click "Link with Webapp" in the app
  2. A 6-character code is displayed
  3. Open the link in your browser (you must be logged into Construct)
  4. Enter the code to approve
  5. The app receives a JWT and connects automatically

License

Proprietary — Construct Computer, Inc.

About

Notch companion for macos

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors