Islet

skill
Guvenlik Denetimi
Basarisiz
Health Uyari
  • License — License: MIT
  • Description — Repository has a description
  • Active repo — Last push 0 days ago
  • Low visibility — Only 5 GitHub stars
Code Basarisiz
  • network request — Outbound network request in calendar.js
  • os.homedir — User home directory access in claude-bridge.js
  • fs module — File system access in claude-bridge.js
  • fs module — File system access in downloads.js
  • child_process — Shell command execution capability in hooks/hook-auth.js
  • os.homedir — User home directory access in hooks/hook-auth.js
  • process.env — Environment variable access in hooks/hook-auth.js
  • fs module — File system access in hooks/hook-auth.js
  • network request — Outbound network request in hooks/islet-hook.js
  • child_process — Shell command execution capability in icons.js
  • process.env — Environment variable access in icons.js
  • fs module — File system access in icons.js
Permissions Gecti
  • Permissions — No dangerous permissions requested

Bu listing icin henuz AI raporu yok.

SUMMARY

A Dynamic-Island-style notch for Windows 10 and 11: music, Claude Code and Codex, notifications and battery in one black pill.

README.md

Islet

A Dynamic-Island-style notch for Windows 10 and 11

Music · Claude Code and Codex · notifications · battery · weather, all in one small black pill at the top of your screen.

Latest release
MIT license
Windows 10 / 11
Electron 45
228 tests passing



Islet open: Codex and Claude sessions on the left, Spotify in the middle, time and battery on the right
Closed pill with album art, Claude dot and audio wave
Pill
A WhatsApp message shown as a notch pop-up
Notification
Enlarged album art over a blurred backdrop
Album view

Features · Install · Usage · Claude Code & Codex · Settings · How it works · 📘 Full guide (PDF)


Islet sits at the top centre of your screen. Hover to open it, click anywhere else to close it. When nothing is happening it shrinks to a plain black pill with one dot.

The open notch, left to right: agent sessions → music → time and battery → tools.

✨ What's new

  • 👋 Version 2.1: a welcome screen that asks before Islet changes anything, an installer with setup screens, authenticated agent hooks, a wave for the player on show and lighter background work.
  • 📦 Version 2.0: 14 reliability fixes, a ready-made installer and redrawn player controls.
  • 🌌 Black hole charger animation: an Interstellar-style black hole plays when the charger goes in (CHARGING INITIATED) or out (RUNNING ON BATTERY). You can pick Cinematic or Subtle, or turn it off.
  • 💬 Full notification text: pop-ups are wider, grow up to about 7 lines and stay on screen longer for long messages.
  • 🔒 Lock screen: Windows' own banners come back while the PC is locked, so you still see messages there.
  • 🛡️ Sturdier: Alt+F4 no longer kills the notch, and a broken config.json is never overwritten. This round also fixed calendar exceptions, shelf duplicates, banner recovery, UTF-8 output and more.

🚀 Features

🎵 Music

  • Spotify, or any player using Windows media controls (YouTube in a browser, VLC…)
  • Album art, title and artist; the accent colour is taken from the art
  • Prev / play-pause / next, click to seek, scroll to change Spotify's own volume
  • Like the song (Alt+Shift+B)
  • A live wave drawn from the audio of the player on show (24 FFT bands). For a browser, that includes all its tabs
  • Timed lyrics from lrclib.net and an enlarged album view

🤖 Claude Code and Codex

  • Both agents in one column, newest first
  • Each session shows working, needs you or done
  • The last 3 actions: tools used, edited files, replies, plus your prompts for Codex
  • Allow / Deny Claude Code permission requests right in the notch
  • Click a project to open its folder

🔔 Notifications

  • Every Windows toast except Spotify's becomes a notch pop-up with the real app logo
  • Full message text, sized to fit
  • Windows' bottom-right banners are off while Islet runs and restored on quit
  • Do Not Disturb, with an optional daily schedule

🔋 Battery and system

  • 🌌 Black hole animation when the charger goes in or out
  • A green edge glow and a light streak along the bottom while charging
  • A one-time low-battery warning
  • Mic, camera and screen-capture dots
  • Hides behind fullscreen apps

🌤️ Info

  • Weather by city (Open-Meteo, no API key)
  • The next event from a private calendar (ICS) link
  • Browser download progress
  • A timer, started from the tray

🧰 Tools

  • Clipboard history: the last 5 texts, kept in memory only
  • File shelf: drop files in, drag them out
  • Ctrl+Alt+N cycles pill / open / hidden
  • Ctrl+Alt+M moves Islet to the next monitor

📦 Install

You need: Windows 10 1903+ or 11 · Windows PowerShell 5.1 (built into Windows)

Download the installer

Get Islet-Setup-<version>.exe from the latest release and run it. It adds a Start menu entry and installs to %LOCALAPPDATA%\Programs\islet. Islet doesn't update itself, so to update, install the new version.

[!NOTE]
The installer is unsigned. SmartScreen may warn about it, and Smart App Control may block it. If it's blocked, run from source instead.

Run from source

You also need: Node.js 22 or 24 (a supported LTS release) · Git

git clone https://github.com/goprocker/Islet.git
cd Islet
npm install
npm start

Code changes apply on restart. To build your own installer, run npm run dist, then run dist\Islet Setup <version>.exe.

[!TIP]
Run npm run dist from PowerShell. It fails under Git Bash.

Only one copy of Islet runs at a time, so quit the npm start copy before installing.

On first run, a welcome screen asks about Start with Windows, notifications and the agent hooks. Islet changes none of them until you click Continue. Right-click the tray icon for the menu.

🖱️ Usage

Action How
Open / close Hover the notch / move away or click elsewhere
Cycle pill → open → hidden Ctrl+Alt+N
Next monitor Ctrl+Alt+M, or tray → Show on screen
Volume / seek Scroll over the music side / click the progress bar
Album view Click the album art
Like Heart button, shown for Spotify (sends Spotify's Alt+Shift+B)
Clipboard / shelf / DND Buttons in the tools column
Timer / settings Tray → Timer / Settings…
Quit Tray → Quit (Alt+F4 is ignored on purpose)

🤖 Claude Code and Codex

The welcome screen offers to install the hooks. Tray → Connect to Claude Code and Codex removes or adds them later. Adding saves a backup next to each file, and only Islet's own handlers are ever removed.

[!IMPORTANT]
The hooks run with node, so Node.js must be on your PATH, even with the installed app. They also point at the copy of Islet that installed them. If you move that folder or switch between source and the installed app, untick and tick the option again in the copy you're using.

Hook event Notch shows
UserPromptSubmit, PostToolUse 🟣 Working, plus the latest actions
PermissionRequest, permission Notification 🟠 Needs you; Claude Code requests get Allow / Deny
Stop, any other Notification ✅ Done
SessionStart (Codex) A new session
SessionEnd The session leaves the list
More details
  • Claude Code: hooks go into ~/.claude/settings.json (backup: settings.json.islet-backup). hooks/islet-hook.js POSTs each event to 127.0.0.1:47321/claude.
  • Codex: if ~/.codex exists, hooks are also added to ~/.codex/hooks.json (backup: hooks.json.islet-backup). Codex asks you to trust new hooks, so approve Islet's once, through the prompt Codex shows or /hooks.
  • A Claude Code permission request is held for permissionWaitSeconds (default 8). If you don't answer in the notch, the terminal asks as usual. Set it to 0 to never hold.
  • Codex permission requests show "Needs you", but you answer them in Codex.
  • With both agents running, the status line says Claude · or Codex ·, and Codex chips have a blue dot.
  • Without hooks, Islet guesses the status from the newest transcript in ~/.claude/projects.

⚙️ Settings

Stored in %APPDATA%\islet\config.json and edited from the settings window. Hand edits are picked up within 2 s. A file that can't be read is left alone, not overwritten.

All 20 settings
Key Default Meaning
size normal compact, normal or large
accent album album (colour from the art) or #rrggbb
idleHide false Shrink to a thin line when nothing is happening
powerAnim true Black hole animation when the charger goes in or out
powerAnimStyle cinematic cinematic or subtle
hideInFullscreen true Hide while a fullscreen app is in front
notifications true Show Windows notifications in the notch
hideWindowsBanners true Turn off Windows' banners while Islet runs (they come back on the lock screen)
dnd, dndFrom, dndTo off Do Not Disturb, with an optional daily HH:MM window
permissionWaitSeconds 8 How long to hold a permission request for Allow / Deny (0–24)
lyrics true Fetch lyrics from lrclib.net
weatherCity "" e.g. Chennai; empty turns weather off
weatherUnit C C or F
calendarIcsUrl "" Private iCal link
downloadsFolder "" Empty means your Downloads folder
clipboardHistory true Keep the last 5 copied texts in memory
displayId null Screen to show on (set by Ctrl+Alt+M or the tray)
spotifyClientId "" Optional Spotify Web API (Premium only)

🧠 How it works

main.js ── window, tray, hotkeys, powerMonitor, config, IPC
 ├─ helpers.ps1           one PowerShell that runs the three watchers below
 ├─ media.ps1             Windows media session → JSON every second; play/seek/next
 ├─ spotify-audio.ps1/.cs process-loopback capture of Spotify → 24 FFT bands, volume
 ├─ system.ps1            mic / camera / screen use, fullscreen detection
 ├─ notifications.js      reads wpndatabase.db (node:sqlite, read-only); toggles banners
 ├─ icons.js              real app logos (Store manifests, shortcuts, exe icons)
 ├─ claude-bridge.js      HTTP server for Claude Code + Codex hooks; installs/removes them
 ├─ calendar.js  weather.js  lyrics.js  downloads.js  shelf-file.js  spotify-web.js
 └─ preload.js ── renderer/  (index.html, notch.css, notch.js, blackhole.js)
                  settings/  (settings window)
Design notes
  • The window is frameless, transparent and always on top. It ignores the mouse except while the pointer is over the notch.
  • Notch states are CSS classes on #notch: open, toast, hidden, quiet, idle, charging. With reduced motion on, the animations stay still.
  • The black hole is drawn with Canvas 2D (renderer/blackhole.js) and driven by Electron powerMonitor events, with no polling. It only animates while playing.
  • C# runs through Add-Type inside PowerShell, so no unsigned exe ships, which keeps it working with Smart App Control on.
  • Windows has no notification-listener API for unpackaged apps, so Islet reads the notification database read-only.
  • To hide Windows' banners, Islet sets ShowBanner = 0 under HKCU\…\Notifications\Settings\<app id>. The previous values are saved in %APPDATA%\islet\banners.json and put back on quit or at the lock screen.

🛠️ Develop

npm test     # 27 test files, node --test
node_modules\electron\dist\electron.exe . --remote-debugging-port=9333   # then chrome://inspect

Useful page globals: setOpen(true), render().

🔐 Privacy

Everything runs on your PC. Network calls go only to lrclib.net (title and artist, when lyrics are on), Open-Meteo (the city name), your ICS link, and Spotify if you connect it. Clipboard history never touches disk, and the shelf stores file paths only. The hook server listens on 127.0.0.1 only.

🩺 Troubleshooting

Problem Fix
Banners still bottom-right Start Islet normally, not from a sandboxed shell, which can't write the registry. Sign out and in once if needed.
Banners stay off after a crash Start Islet and quit it from the tray, or turn off the setting.
Codex column is empty Approve Islet's hooks in Codex (/hooks).
Agent status stops updating Check that node is on your PATH. If Islet moved, untick and tick Connect to Claude Code and Codex.
npm run dist fails Run it from PowerShell, not Git Bash.
Installer blocked Smart App Control; run from source.
Installed app ignores code changes Rebuild with npm run dist and reinstall.
Second launch does nothing Only one copy runs; the second launch opens the running copy's settings.

🗑️ Uninstall

  1. Tray → untick Connect to Claude Code and Codex and Start with Windows.
  2. Tray → Quit (puts Windows banners back).
  3. Installed app: Settings → Apps → Islet → Uninstall. From source: delete the folder.
  4. Delete %APPDATA%\islet.

🤝 Contributing

Issues and pull requests are welcome. See the contributing guide and Code of Conduct. Report security problems through the security policy, not a public issue.


Islet · Made by Gopinath · Code under MIT · Guide PDF © 2026 Gopinath, all rights reserved

Yorumlar (0)

Sonuc bulunamadi