Any notch you want. Just ask your agent.

NotchNull is the notch you rebuild by asking. Tell Claude Code or Codex, on your own Mac, what it should be: new widgets, colors, animations, tabs, even its Settings page. Your agent edits the files or the source, checks a render, and your notch changes.

Open source · Works with the Claude Code and Codex already on your Mac · macOS 14+

Terminal
Tue 9:41 AM
NotchNull: Your agent wrote three JSON files in ~/.notchnull/widgets, each a command and a view. Saved, they are live.

“A panel with CI, my focus hours and site traffic.”

Your agent wrote three JSON files in ~/.notchnull/widgets, each a command and a view. Saved, they are live.

Other notch apps ship their notch. NotchNull ships yours. Like Arch Linux, it is a small, fast base you shape into anything, except you never read the wiki: your agent did. Widgets, colors, animations, tabs, the Settings page, the Swift source. Ask, and it is rebuilt.

Ask for it. Your agent builds it.

The notchnull skill teaches Claude Code and Codex the whole notch: widget files, settings.json, the CLI, and a render command, so the agent checks its own work before it tells you it is done.

  1. You ask

    In plain words, in the agent you already use.

    “Add a CI widget for this repo, and show a red wing beside the notch while it’s failing.”
    Claude Code, with the notchnull skill
  2. It writes a file

    A widget, a setting, a wing. Saved, it is live.

    ~/.notchnull/widgets/ci.json

    {
      "title": "CI",
      "refresh": 60,
      "command": "gh run list --json … --jq …",
      "view": {
        "type": "value",
        "value": "{{data.failing | count}}",
        "label": "failing workflows"
      },
      "wing": {
        "when": "{{data.failing | count}}",
        "tint": "red",
        "trailingText": "{{data.failing | count}} failing"
      }
    }
  3. It checks the render

    The notch drawn to a PNG, so it sees what you will.

    notchnull render ci.png --wing
    Terminal
    Tue 9:41 AM
    The CI wing beside the notch: a red seal and “1 failing”
Widgets
A shell command and a view tree of values, gauges, lists, sparklines and buttons. Errors show in the card, never a silent blank.
Wings
Anything beside the camera while a condition holds: a failing check, a running deploy. It goes away on its own.
settings.json
Every setting in one file, synced both ways with the Settings window. Unknown keys and bad values are reported.
CLI and local API
notchnull show, open, widget data, settings set. Or POST to 127.0.0.1 with your token.
Render
notchnull render draws the notch with your files, so an agent can judge its own work before telling you it is done.
The source
When files are not enough, the skill shows the agent how to change the Swift app itself and rebuild it. GPL-3.0.

Start here. Install the skill from Settings › Build, then paste this into your agent.

Use the notchnull skill: add a widget with my open pull requests, and show a red wing beside the notch while CI is failing.

Start with a preset. Change everything else.

Setup opens the first time you launch NotchNull: classic notch or floating island, Minimal, Balanced or Complete, and one of twelve looks. None of it is fixed. Each one is a file, and after you pick, your agent can change anything.

  • Terminal
    Tue 9:41 AM
    Classic notch: Grows out of the camera housing, with music and activities in its wings.

    Classic notch

    Grows out of the camera housing, with music and activities in its wings.

  • Terminal
    Tue 9:41 AM
    Island: For screens, or resolutions, without a notch: a clock pill and two satellites inside the menu bar.

    Island

    For screens, or resolutions, without a notch: a clock pill and two satellites inside the menu bar.

  1. The Minimal preset: Music, your widgets and what matters today. Nothing slides out unless it needs you.

    Minimal

    Music, your widgets and what matters today. Nothing slides out unless it needs you.

  2. The Balanced preset: The everyday set: agents, music, clipboard, downloads that clean themselves, your widgets.

    Balanced

    The everyday set: agents, music, clipboard, downloads that clean themselves, your widgets.

  3. The Complete preset: Everything NotchNull does, the way it ships: every tab, every activity, Mac stats.

    Complete

    Everything NotchNull does, the way it ships: every tab, every activity, Mac stats.

Then ask for anything. Your agent can change all of it.

Widgets

“A card with today’s Stripe revenue.”

A command and a view tree, one file in widgets/.

Wings

“A red dot by the camera while prod is down.”

Beside the notch while a condition holds, gone when it stops.

Look

“Plum, a pink accent, rounder corners.”

Body, tint, accent, Liquid Glass and roundness.

Motion

“Slower, and no bounce.”

Spring speed and bounce, and the light it gives off.

Layout

“Make it a floating island, and a wider panel.”

Notch or island, tabs, Home rows, and any size you type.

Activities

“Stop showing me when it’s charging.”

Which events slide out, one switch each.

Settings page

“Add a section with my widgets’ options.”

The Settings window is SwiftUI in the repo, and the skill shows where.

Anything else

“A radial gauge, and a tab for my servers.”

New views, tabs and integrations: your agent changes the source and rebuilds.

It also watches your agents.

Built in, before you change a thing: Claude Code, Codex and opencode limits at a glance, an alert the second an agent needs you, and the final message when a turn ends.

Terminal
Tue 9:41 AM
The Agents tab: Claude Code, Codex and opencode usage with live sessions
Limits as % left
Claude Code and Codex 5-hour and weekly limits, reset times, and a pace forecast that warns before you run out. GLM, Kimi, MiniMax, OpenCode Go and Copilot plans show up too.
Needs you
The notch lights up the moment an agent asks for permission or asks you a question, with the project, its terminal and the question itself. Several at once stack in one banner. Click to jump to the exact terminal.
Done, with the summary
When a turn ends you see the agent's final message and how long it took.
Live sessions
Every running Claude Code, Codex and opencode session, detected from their transcripts. Tokens today, by the hour.

One panel. Everything you reach for.

Hover the notch and it opens: Home, what it told you lately, your agents, Control Center, your widgets, downloads counting down, a file tray and clipboard history.

Terminal
Tue 9:41 AM
The Home tab of the NotchNull panel

Make it yours: notch and panel size, roundness, a black, tinted or Liquid Glass body, accent color, animation speed and bounce, tab order, Home rows, which activities appear, and anything else your agent can write.

Things slide out of the notch, then tuck back in.

Every activity is the same black surface morphing out of the hardware. Nothing pops; everything condenses into place.

  • Island mode in the notch

    Island mode

    No notch on the screen, or a resolution that leaves it out? It floats as an island with a clock, and its satellites grow into a music card and a Control Center with battery, toggles and sliders on hover.

  • Downloads that expire in the notch

    Downloads that expire

    Each new download asks how long to keep it, from 10 minutes to 30 days. Then it goes to the Trash, with Undo.

  • Any player in the notch

    Any player

    Spotify, Music, and videos in your browser. Artwork, scrubbing, output volume.

  • Volume & brightness in the notch

    Volume & brightness

    A one-line HUD in the notch that can replace the system one.

  • Dev boards in the notch

    Dev boards

    ESP32, Arduino, CH340 and FTDI boards announce themselves with their serial port.

  • Every device in the notch

    Every device

    Bluetooth headphones with AirPods battery, keyboards, mice, controllers, drives, displays, AirDrop.

  • Power in the notch

    Power

    Charging, unplugged, low battery — and a battery color for Low Power, Automatic and High Power, red at 10% or less.

  • Downloads & screenshots in the notch

    Downloads & screenshots

    Progress while it downloads, a preview when a screenshot lands, one click to keep it.

  • Timers & meetings in the notch

    Timers & meetings

    Countdowns in the wings and your next meeting with a Join button.

  • Drop zone in the notch

    Drop zone

    Drag a file toward the notch to park it in the Tray, copy it or AirDrop it.

  • Clipboard history in the notch

    Clipboard history

    Encrypted on your Mac, with real previews of images and files.

It reads your agents. So you can read it.

NotchNull looks at your transcripts, your clipboard and your Claude login. That is exactly why it is open source.

No telemetry
No analytics, no accounts, no server.
One request
Your Claude usage, fetched with the login already on your Mac. The token is never refreshed or stored.
Encrypted clipboard
History is sealed with AES-GCM; password managers are skipped.
Read the source
GPL-3.0. Every file NotchNull reads and writes is listed in PRIVACY.md.
See every file it reads and writes

Thirty seconds to a notch of your own.

Download NotchNull

Open source · Works with the Claude Code and Codex already on your Mac · macOS 14+ · GPL-3.0

  1. 1

    Download NotchNull.zip and move the app to Applications.

  2. 2

    It is not notarized by Apple yet, so right-click it → Open the first time, or run:

    xattr -dr com.apple.quarantine /Applications/NotchNull.app
  3. 3

    Grant only the permissions you want. Every one is optional.