# pi-kimchi-login

Pi extension that registers the **Kimchi** LLM provider (`kimchi-dev`) with browser login, API key, and subscription flows—so you can use Kimchi from plain **pi** without a built-in `kimchi-dev` block in `models.json`.

Auth flow matches [getkimchi/kimchi](https://github.com/getkimchi/kimchi) (`app.kimchi.dev/cli-auth` → localhost callback → `castai_v1_…` token).

## Install

**Local (dev):**

```bash
cd /path/to/Kimchi-login
npm install
pi install /path/to/Kimchi-login
# or
pi -e /path/to/Kimchi-login/src/index.ts
```

**Kimchi harness** (`~/.config/kimchi/harness/settings.json`):

```json
{
  "packages": ["npm:pi-kimchi-login"]
}
```

After you confirm models work, remove the built-in provider from `~/.config/kimchi/harness/models.json` (delete `providers.kimchi-dev`). Keep other providers (e.g. `ollama`).

**Plain pi** (`~/.pi/agent/settings.json`):

```json
{
  "extensions": ["/absolute/path/to/Kimchi-login/src/index.ts"]
}
```

Or publish to npm and `pi install npm:pi-kimchi-login` for [pi packages](https://pi.dev/packages).

## Usage

1. `/login`
2. **Use a subscription**
3. Pick **Kimchi** (browser login at app.kimchi.dev)

If you use **Kimchi CLI**, pi reuses the same token from `~/.config/kimchi/config.json` on each session (avoids a separate browser login with a different account).

API key (optional): `/login` → **Use an API key** → `kimchi-dev`, or set `KIMCHI_API_KEY`.

Use **`kimchi-dev/…`** models (not a duplicate `kimchi` provider in `models.json`).

Optional: `KIMCHI_WEB_APP_URL` (default `https://app.kimchi.dev`).

## Publish checklist

1. Set `repository.url` in `package.json` to your git remote.
2. `npm publish` (or publish via pi.dev/packages workflow).
3. Users: `pi install npm:pi-kimchi-login@<version>`.

## License

Apache-2.0 (aligned with Kimchi CLI auth code this reimplements).