---
slug: "pi-quotes"
source_type: "readme"
source_url: "https://cdn.jsdelivr.net/gh/danielkhoo/pi-quotes@main/README.md"
repo: "https://github.com/danielkhoo/pi-quotes"
source_file: "README.md"
branch: "main"
---
# Pi Quotes

Simple editable quotes for Pi's working spinner

Before

```
⠋ Working...
```

After

```
⠋ Working...  Simplicity is prerequisite for reliability. — Edsger W. Dijkstra
```

![pi-quotes inline mode](https://github.com/danielkhoo/pi-quotes/raw/HEAD/images/inline.png)

## Why

Pi's built-in `Working...` indicator is functional but minimalist. Like mirrors in an elevator, `pi-quotes` provides a fun distraction that makes the wait seem shorter.

![pi-quotes multiline mode](https://github.com/danielkhoo/pi-quotes/raw/HEAD/images/multiline.png)

## Install

```bash
pi install npm:pi-quotes
```

Or install from GitHub:

```bash
pi install git:github.com/danielkhoo/pi-quotes
```

## Usage

Inline mode, the default:

```text
⠋ Working... Optimism is an occupational hazard of programming. Feedback is the treatment. — Kent Beck
```

Multiline mode:

```text
⠋ Working...
  Optimism is an occupational hazard of programming. Feedback is the treatment. — Kent Beck
```

Multiline mode attempts to center the quote using the current terminal width.

### Commands

```text
/quotes              Enable quotes and show the current mode
/quotes inline       Put the quote on the same line as Working...
/quotes multiline    Put the quote on the next line and attempt to center it
/quotes edit         Edit your user-owned quotes file
/quotes path         Show the path to your user-owned quotes file
/quotes reload       Reload quotes from disk immediately
/quotes off          Restore Pi's default Working... message
/quotes on           Re-enable quotes
```

Mode and on/off changes are saved to `$PI_CODING_AGENT_DIR/pi-quotes/config.json` and restored on the next Pi start.

## Custom Quotes

Quotes are stored in an editable file. `/quotes edit` opens Pi's built-in editor UI. Use one quote per line. Blank lines and lines starting with `#` are ignored.

After editing, quotes are saved and reloaded automatically. If you edit the file outside of Pi, changes are picked up automatically at the start of the next agent run or apply them immediately with `/quotes reload`

To see the editable file path run `/quotes path`

## Notes

`pi-quotes` intentionally uses `ctx.ui.setWorkingMessage()`, not a widget. That means it modifies the built-in working loader message directly. Multiline centering is best-effort: it accounts for wide (CJK/emoji) characters and uses the terminal width when the message is set, but it is not fully responsive after Pi wraps long lines or the terminal resizes.

File paths follow Pi's own config resolution (via `getAgentDir()`), so `PI_CODING_AGENT_DIR` overrides — including `~` expansion — behave exactly like they do for Pi itself.

## Dependencies

- `@earendil-works/pi-coding-agent` (peer)

## License

MIT © 2026 Daniel Khoo
