The core module contains the foundational classes and functions for building Nib menu bar applications.

Entry Point

Class / Function Description
App Main application class that manages the lifecycle of a menu bar app
run() Recommended entry point for function-based apps

UI Primitives

Class / Function Description
SFSymbol Displays Apple SF Symbol icons in the menu bar or views
MenuItem & MenuDivider Items for the right-click context menu on the status bar icon

State Management

Class / Function Description
State & Binding Reactive state descriptor and two-way data binding for class-based apps
Settings Persistent settings with sync cache and async UserDefaults persistence
UserDefaults Low-level persistent key-value storage using macOS UserDefaults

UI Configuration

Class / Function Description
SettingsPage & SettingsTab Tabbed preferences window following macOS conventions
FilePicker Native macOS open/save file dialogs

Quick Example

import nib

def main(app: nib.App):
    app.title = "My App"
    app.icon = nib.SFSymbol("star.fill")
    app.width = 300
    app.height = 200

    counter = nib.Text("0")

    def increment():
        counter.content = str(int(counter.content) + 1)

    app.build(
        nib.VStack(
            controls=[counter, nib.Button("Add", action=increment)],
            spacing=8,
            padding=16,
        )
    )

nib.run(main)