avenoxai GitHub avatar

avenoxstatusline

avenoxai

A lightweight 132-line bash status line for Claude Code with an animated ASCII pet that reflects session state.

Stars

4

7-day growth

No data

Forks

0

Open issues

0

License

MIT

Last updated

2026-07-30

AI repository intelligence
FR-AI / ANALYSIS

Why it is worth attention

It replaces a Node-based status line with a pure shell script, uses wall-clock time for stateless animation, and its pet mood acts as a visual gauge for context usage, approvals, and effort.

Who it is for

  • Claude Code users wanting a lightweight status line
  • Developers who prefer minimal dependencies (bash, git, jq)
  • Users concerned about resource overhead from Node.js
  • Bash script enthusiasts interested in creative stateless animation

Use cases

  • Monitor Claude Code session context, rate limits, and git status at a glance
  • Receive visual alerts from pet mood changes (e.g., flailing when near compact)
  • Display a custom project badge via SL_BADGE_CMD
  • Verify behavior without installing using demo.sh

Strengths

  • Only 132 lines of bash, no npm/node or build step
  • Two external dependencies (git, jq) that users likely already have
  • Pet mood derived from real session state, not decorative
  • Stateless animation using wall-clock time avoids process management

Considerations

  • Tied to Claude Code – not a general-purpose status line
  • Requires `jq` which may need separate installation on some systems
  • ASCII art and animation are limited to what a single shell script can produce

README quick start

avenoxstatusline

A two-line status line for Claude Code with an ASCII pet.

132 lines of bash. No npm, no node, no build step.

ʕ•ᴥ•ʔ☕  Opus 5 · high · think   5h 41% · 7d 63%
▓▓▓▓░░░░ 62%  ⎇ main*  ● serai:vegrun

Why another one

There are plenty of good Claude Code status lines. Two things make this one different.

1. It's a shell script, not a package

Your status line re-runs every few seconds, forever. Every render is a fresh process. Spawning a Node runtime on that loop is a strange thing to do to your laptop.

This is one bash file with two dependencies you already have (git, jq). Install is a curl and one line of JSON. There is nothing to update, nothing to audit, and nothing in node_modules.

2. The pet is a gauge, not an ornament

The bear's mood is derived from session state, so you can read how the session is doing without reading any numbers:

StatePetMeaning
context ≥ 90%ʕ⊙ᴥ⊙ʔ‼ red, flailingyou are about to compact
context ≥ 75%ʕ•﹏•ʔ💦 yellow, sweatingstart wrapping up
pending approvalsʕ•ᴥ•ʔ❗ yellow, alertsomething is waiting on you
effort xhigh / maxʕ◣_◢ʔ⚡ locked inthe expensive gear is engaged
context ≥ 50%ʕ◔ᴥ◔ʔ focusedworking
otherwiseʕ•ᴥ•ʔ idleblinks, glances, leans

Peripheral vision does the monitoring. You only look directly at the line when the bear changes.

And when nothing is wrong, it does things. Roughly every 10 seconds it pulls a ~4-second stunt — nap, dance, wave, table flip (and sets the table back), flower, coffee, sparkle, hug, wander.


The trick: animating a stateless script

Claude Code runs the status line command fresh on every render. There is no process to hold a frame counter in, so conventional animation is impossible.

So the frames are indexed by wall-clock time instead of by state:

T=${SL_TICK:-$(date +%s)}
frame() { local -a a=("${@:2}"); PET="${a[$(( $1 % ${#a[@]} ))]}"; }

frame "$T" "ʕ•ᴥ•ʔ" "ʕ•ᴥ•ʔ" "ʕ-ᴥ-ʔ" "ʕ◕ᴥ◕ʔ"   # idle: blinks

Each render independently computes which frame it is right now. The script stays completely stateless and the pet still walks through its frames as time passes. Stunts use the same idea at two scales: T % 10 picks the position within a stunt, (T / 10) % 9 picks which stunt

Description

Two-line Claude Code status line with a state-driven ASCII pet. 132 lines of bash, no npm.

Related repositories

Similar projects matched by category, topics, and programming language.

bjan
Featured
bjan GitHub avatar

claudemux

Claudemux is a lightweight, dependency-minimal message bus that lets multiple Claude Code sessions communicate in real-time over tmux, enabling one session to ask another a question and receive the answer without manual intervention.

AI & Machine LearningAI Agents
9
0xwilliamortiz
Featured
0xwilliamortiz GitHub avatar

openclaude-improved

OpenClaude is an open-source CLI coding agent that runs on any platform and supports a wide range of LLM providers, offering the same tools and workflows as Claude Code.

AI & Machine LearningLarge Language Models
577
l0ng-ai
Featured
l0ng-ai GitHub avatar

tty7

tty7 is a fast, GPU-accelerated terminal workbench with persistent sessions, built-in input tools, SSH support, and coding agent awareness.

Developer ToolsCLI & Terminal
359