54 lines
2.4 KiB
TOML
54 lines
2.4 KiB
TOML
# Claude Companion — a Claude Code companion for Noctalia v5.
|
|
# Not a chat client: the terminal does the agentic work; this is the shell-side
|
|
# body — senses, hands, and an attention pulse. See README.md for the design.
|
|
|
|
id = "lowcache/claude-companion"
|
|
name = "Claude Companion"
|
|
version = "1.0.1"
|
|
# Oldest plugin API level this plugin needs (the [[panel]] kind, ui controls,
|
|
# plugin IPC dispatch, the barWidget/onIpc surface). Bump when adopting a newer API.
|
|
plugin_api = 3
|
|
author = "lowcache"
|
|
license = "MIT"
|
|
icon = "robot"
|
|
description = "Claude Code companion: /claude launch + a telemetry-driven attention pulse."
|
|
# The compositor CLI is one-of: the shim detects and speaks whichever of niri /
|
|
# Hyprland / Sway is running Noctalia (so exactly one of niri/hyprctl/swaymsg is
|
|
# present). See README "Requirements".
|
|
dependencies = ["claude", "python3", "niri", "hyprctl", "swaymsg", "playerctl", "notify-send", "nmcli", "ps", "tr", "timeout"]
|
|
tags = ["ai", "productivity", "bar", "desktop", "panel", "launcher", "niri", "hyprland", "sway"]
|
|
|
|
# The attention pulse — the visual centerpiece. Reads agent state from
|
|
# noctalia.state ("claude.state") and from hook signals (onIpc), reflects it in the
|
|
# bar as a glyph + a sine-breath brightness glow (folded in from the barpulse
|
|
# A/B prototype; barpulse.luau stays in-repo as the experiment record, unregistered).
|
|
[[widget]]
|
|
id = "pulse"
|
|
entry = "pulse.luau"
|
|
|
|
# The presence orb — the ambient desktop half of the pulse. A softly breathing disc
|
|
# that mirrors the bar dot's rollup (published to noctalia.state "claude.pulse"); pure
|
|
# view, no hooks of its own. Per-frame motion via setNeedsFrameTick/onFrameTick.
|
|
[[desktop_widget]]
|
|
id = "orb"
|
|
entry = "orb.luau"
|
|
|
|
# The answer panel — full-length scrollable surface for /claude ? quick-ask answers
|
|
# (a notification toast clips long bodies; it carries only a preview). Opens on
|
|
# a click on the bar pulse, from the "Show last answer" launcher row, or via
|
|
# `noctalia msg panel-toggle lowcache/claude-companion:answer`.
|
|
[[panel]]
|
|
id = "answer"
|
|
entry = "answer.luau"
|
|
width = 460
|
|
height = 420
|
|
|
|
# /claude — launch a real Claude Code session in the terminal, or a one-shot ask.
|
|
# The single backend chokepoint (invoke/parse) is inlined here: v5 has no plugin
|
|
# module system, and this is the only entry that talks to a model.
|
|
[[launcher_provider]]
|
|
id = "claude"
|
|
entry = "claude.luau"
|
|
prefix = "claude"
|
|
glyph = "robot"
|