# Agent Loader Extension

A custom loading indicator for the Pi coding agent with animated spinners and dynamic color palettes.

## Features

- **50+ Spinner Sequences**: Beautiful Unicode animations including braille spinners, orbital patterns, progress bars, and more
- **Dynamic Color Palettes**: Random HSL-based colors with subtle, harmonious variations (±7.5° hue, ±30-60% saturation/lightness)
- **Creative Verb Phrases**: 100+ whimsical loading messages inspired by Claude Code (e.g., "Thinking", "Cogitating", "Vibecoding Internally")
- **Interactive Commands**: Preview, pick, and randomize loaders on-demand

## Example loader frames
- ✢ ✣ ✤ ✥
- ┤ ┘ ┴ └ ├ ┌ ┬ ┐
- ∿ ≋ ∿ ≋ 
- ◌ ◎ ◉ ● ◉ ◎
- ✶ ✸ ✹ ✺ ✹ ✷

## Installation

1. Ensure this extension is in your `~/.pi/agent/extensions/` directory
2. Pi will auto-discover the extension via the `package.json` file
3. Restart Pi if it's already running

## Usage

The loader automatically activates during agent flows:

- `agent_start`: Initializes random spinner + palette
- `agent_end`: Restores default indicator
- `tool_call`/`tool_result`: Updates working message with tool context

### Commands

| Command           | Description                                         |
| ----------------- | --------------------------------------------------- |
| `/loader-info`    | Show current loader sequence and interval           |
| `/loader-random`  | Randomize loader for current session                |
| `/loader-preview` | Preview all available sequences and sample palettes |
| `/loader-pick`    | Interactive picker for sequence and interval        |

## Customization

Edit `agent-loader.ts` to:

- Add new spinner sequences to `SPINNER_SEQUENCES`
- Add new verb phrases to `SPINNER_VERBS`
- Adjust color generation amplitudes in `generateRandomPaletteColors()`
- Modify animation intervals (default: 90-150ms)
- Example frame strings are available in `index.ts` under `EXAMPLE_FRAMES`

## Color Generation

Palettes use HSL loops with:

- **Hue**: ±7.5° (15° total range)
- **Saturation**: 30-70% ±30-60%
- **Lightness**: 40-80% ±30-60%

This creates subtle, pastel-like variations while maintaining visual harmony.

## Dependencies

- `@mariozechner/pi-coding-agent` (peer dependency)
