flare

Your AI limits, on the edge of the screen

flare is a notch for Quickshell on Hyprland. It shows how much of your Claude Code, Codex, Cursor, OpenCode, Antigravity and Kiro allowance is left, and which Claude sessions are running right now.

The notch on this page's left edge works. Hover a ring.

Install Read the docs Source on GitHub v1.0.0 · MIT · Rust and QML
install.sh

Install

$ git clone https://github.com/lunanoir21/flare-notch
$ cd flare-notch
$ ./install.sh

The script builds the flare binary if Rust 1.85 or newer is installed, and otherwise downloads the latest release build. It puts it in ~/.local/bin and runs flare doctor, which lists what flare can and cannot find on your machine. It also adds flare to your app launcher, opening the settings page.

The prebuilt binary on its own: flare-x86_64-linux.tar.gz (sha256), always the latest release.

Run the widget on its own with quickshell -p ui, or add it to the shell you already have:

import "path/to/flare-notch/ui" as Flare

ShellRoot {
    Flare.FlareHost {}
}
Quickshell 0.3+
and Qt 6.6 or newer.
Hyprland
flare is built and tested there. Jumping to a session's terminal uses hyprctl.
x86_64, glibc 2.39+
only for the prebuilt binary (Arch, Fedora 40+, Ubuntu 24.04+). Building from source has no such limit.
notch.style

Three looks

Picking one here changes the notch on this page.

Each look meets the screen edge one of three ways: bridge welds it on with inverse rounded corners, floating holds it off the edge as a panel, and flush runs a strip along the whole edge.

It can stay out of the way, too. With notch.reveal = "hover" it waits past the edge and slides in when the pointer gets there; with "shortcut", a key brings it in and sends it away.

~/.claude/sessions

Open sessions

Under the limits, the card lists the Claude Code sessions running right now: each one's name, project and age, and whether it is working, waiting on you or idle.

Click a row and the session's terminal comes to the front. The list is read from the records Claude Code keeps for itself; a session whose process has exited, or whose terminal no longer has a window, is left out, so what you see is what you can switch to.

flare's hover card beside the notch, showing two limits and three open sessions, one waiting on you
flare's own interface, drawn with sample data.
providers

What each one shows

Six tools, each read the way it keeps its own numbers: a rate limit as a ring, a pay-as-you-go tool as today's tokens, a credit plan as the credits it has left this month.

  • read directly
  • from flare’s own readings
  • not available
providerlimit ringreset timeusage todaylocal modesessionsheatmap
Claude Codelimits · tokens Read directly5h, weeklyRead directlyRead directlytokensRead directlystatus lineRead directlyjump to itRead directlyfrom logs
Codexlimits Read directlyprimary, weeklyRead directlyNot availableRead directlyrollout logNot availableFrom flare’s own readings
Cursorincluded usage Read directlyasks firstRead directlyNot availableNot availableNot availableFrom flare’s own readings
OpenCodetokens Not availableown API keysNot availableRead directlytokensRead directlyRead directlyhistoryRead directlyfrom db
Antigravityquotas · tokens Read directlyper modelRead directlyRead directlytokensRead directlyRead directlyhistoryRead directlyfrom db
Kirocredits Read directlymonthlyRead directlyRead directlycreditsRead directlycreditsRead directlyhistoryRead directlycredits
data.mode

Where the numbers come from

official

The default. Each provider's own usage endpoint, asked with the sign-in its CLI already keeps, the way Codenotch does it. Network reads keep their own pace: Claude once a minute, Codex, Cursor and Kiro every five.

local

Never opens a network connection. Reads only what each tool already wrote to disk, so a provider that keeps nothing there shows nothing.

Providerofficiallocal
Claude CodeIts usage endpoint, with the token in ~/.claude/.credentials.jsonA status line capture
CodexIts usage endpoint, with the session in ~/.codex/auth.jsonIts newest rollout log
CursorIts usage endpoint, with the editor's own session, after asking you onceNothing on disk to read
OpenCodeIts local database. It runs on your own API keys, so it shows tokens today, not a limit.
AntigravityEach model group's quota, from agy's status line through the bundled capture hook; tokens and models from the conversation databases in ~/.gemini/antigravity-cli.
KiroIts usage-limits endpoint, with the sign-in kiro-cli keeps; the month's credits and when they refillThe credits each request used, from ~/.kiro/sessions/cli

Credentials are read, never written and never printed. A reading that could not be refreshed is dimmed, not guessed.

qs ipc call flare

Keys

CallDoes
card claudeOpens a provider's card without the pointer; call it again to close
toggleSessionsOpens or folds the session list
toggleVisibleBrings the notch in or tucks it away
next, prevSteps aura to the next or previous provider
toggleOpens or closes the compact panel
settingsOpens the settings page
refreshReads now

In hyprland.conf:

bind = SUPER, U,       exec, qs ipc call flare card claude
bind = SUPER SHIFT, U, exec, qs ipc call flare toggleVisible
~/.config/flare/config.toml

Settings

Right-click the notch for its settings page, or change a key from a terminal. Both write the same file, and the widget picks up a change within a second.

$ flare config set notch.style aura
$ flare config set notch.edge right
$ flare config set data.mode local
$ flare config set ui.language tr

Every key is listed in the README.