npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

tabby-claude-status-gse

v1.0.1

Published

Visual tab color indicators for Claude Code status in Tabby terminal

Downloads

228

Readme

Tabby Claude Status Plugin

Visual tab color indicators for Claude Code status in Tabby terminal.

Overview

This plugin integrates with Claude Code's hooks system to provide real-time visual feedback about Claude's state through tab color changes:

| Status | Color | Meaning | |--------|-------|---------| | Working | 🟠 Amber (#f59e0b) | Claude is processing | | Question | 🔵 Blue (#3b82f6) | Waiting for user input/permission | | Done | 🟢 Green (#22c55e) | Task completed | | Error | 🔴 Red (#ef4444) | Error occurred | | Idle | ⬜ None | Default state |

Architecture

┌─────────────────────┐     ┌──────────────────────┐     ┌─────────────────┐
│   Claude Code       │────>│  Hook Script         │────>│  Tabby Plugin   │
│   (hooks system)    │     │  (PowerShell)        │     │  (decorator)    │
└─────────────────────┘     └──────────────────────┘     └─────────────────┘
        │                            │                           │
   Emits events              Outputs escape              Parses sequences
   (JSON via stdin)          sequences to                Sets tab.color
                             terminal

Installation

1. Build the Plugin

cd tabby-claude-status
npm install
npm run build

2. Install the Plugin

Copy the built plugin to Tabby's plugins directory:

Windows:

Copy-Item -Recurse dist "$env:APPDATA\tabby\plugins\tabby-claude-status"

Linux/macOS:

cp -r dist ~/.config/tabby/plugins/tabby-claude-status

3. Install the Hook Script

The hook script should already be installed at ~/.claude/hooks/claude-status-hook.ps1.

4. Configure Claude Code Hooks

The hooks should already be configured in ~/.claude/settings.json. The configuration adds the status hook to these events:

  • Stop - Task completed
  • UserPromptSubmit - User submitted a prompt
  • Notification - Permission prompts and other notifications
  • PreToolUse - Before tool execution
  • PostToolUse - After tool execution

5. Restart Tabby

Restart Tabby to load the plugin.

Configuration

The plugin can be configured in Tabby's settings. Add to your Tabby config:

claudeStatus:
  enabled: true
  colors:
    working: '#f59e0b'
    question: '#3b82f6'
    done: '#22c55e'
    error: '#ef4444'
  clearOnFocus: false
  doneAutoResetMs: 3000
  debugMode: false

Options

| Option | Type | Default | Description | |--------|------|---------|-------------| | enabled | boolean | true | Enable/disable the plugin | | colors.working | string | #f59e0b | Tab color when Claude is working | | colors.question | string | #3b82f6 | Tab color when waiting for input | | colors.done | string | #22c55e | Tab color when task is done | | colors.error | string | #ef4444 | Tab color on error | | clearOnFocus | boolean | false | Clear color when tab is focused | | doneAutoResetMs | number | 3000 | Auto-reset done status after ms (0 to disable) | | debugMode | boolean | false | Enable debug logging |

Testing

You can test the plugin manually by emitting escape sequences:

# Turn tab amber (working)
Write-Host -NoNewline "$([char]0x1b)]777;claude-status;1;working;{}$([char]0x07)"

# Turn tab blue (question)
Write-Host -NoNewline "$([char]0x1b)]777;claude-status;1;question;{}$([char]0x07)"

# Turn tab green (done)
Write-Host -NoNewline "$([char]0x1b)]777;claude-status;1;done;{}$([char]0x07)"

# Turn tab red (error)
Write-Host -NoNewline "$([char]0x1b)]777;claude-status;1;error;{}$([char]0x07)"

# Clear tab color (idle)
Write-Host -NoNewline "$([char]0x1b)]777;claude-status;1;idle;{}$([char]0x07)"

Escape Sequence Protocol

Format: \x1b]777;claude-status;VERSION;STATUS;METADATA\x07

| Component | Description | |-----------|-------------| | \x1b] | OSC introducer | | 777 | Private-use OSC code | | claude-status | Protocol identifier | | VERSION | Protocol version (currently 1) | | STATUS | Status name (working/question/done/error/idle) | | METADATA | JSON object with context | | \x07 | String terminator (BEL) |

Development

# Watch mode for development
npm run watch

# Build for production
npm run build

For local testing without installing:

TABBY_PLUGINS=$(pwd) tabby --debug

License

MIT