# pi-end-turn

A tiny [pi](https://github.com/mariozechner/pi-coding-agent) package that adds an `end_turn` tool.

If your billing is per-message (rather than per-token), you can reduce costs by using the `end_turn` tool for the model's final reply. Have the model call `end_turn` as its last action and place the final user-facing markdown in the tool's `text` parameter; the user can then reply with the next prompt as a tool response instead of sending another user message, which would incur an additional charge.

## What it does

This package registers a single tool:

- `end_turn` — finish the current response and return control to the user

The tool is intended to be used as the agent's final action for a turn. Its prompt guidance tells the model to call it exactly once per turn, including for normal conversational replies.

## Installation

### From npm

```bash
pi install npm:pi-end-turn
```

### From GitHub

```bash
pi install git:github.com/armedi/pi-end-turn
```

### From a local checkout

```bash
pi install /absolute/path/to/pi-end-turn
# or
pi install ./relative/path/to/pi-end-turn
```

## Usage

After installation, pi loads the extension from `package.json`:

```json
{
  "pi": {
    "extensions": ["./index.ts"]
  }
}
```

No extra configuration is required.

Once loaded, the package makes the `end_turn` tool available to the model.

## Development

Install the package locally in pi while developing:

```bash
pi install .
```

Or run pi with the package for a single session:

```bash
pi -e .
```
