> ## Documentation Index
> Fetch the complete documentation index at: https://docs.triw.io/llms.txt
> Use this file to discover all available pages before exploring further.

# DeepSeek Harness

> Instal dsh dan tambahkan Triw sebagai custom model API di UI harness.

DeepSeek Harness (`dsh`) adalah harness agent berbasis plugin milik DeepSeek dengan web UI. Provider dikonfigurasi di UI dan disimpan pada profil aktif.

## Kebutuhan sistem

| Item | Catatan |
| - | - |
| Node | 20+ |
| pnpm | wajib untuk instalasi global |
| OS | macOS, Linux, Windows (disarankan WSL) |

## Instalasi

```bash theme={null}
npm install -g pnpm          # lewati bila pnpm sudah ada
pnpm add -g @deepseek-ai/dsh
dsh --version
```

Menjalankan:

```bash theme={null}
dsh            # memuat profil default dan membuka web UI
```

## Konfigurasi

Di UI harness: **Settings → Models → Custom model API**.

| Field | Nilai |
| - | - |
| Provider ID | `triw` (huruf kecil, permanen setelah disimpan) |
| Base URL | `https://router.triw.io/v1` |
| API protocol | `OpenAI Chat Completions` |
| Credential | key `sk-...` Triw Anda |
| Model | satu id dari `GET /v1/models`, mis. `claude-sonnet-4-5` |

Protokol dipetakan ke nilai tersimpan di `cordis.patch.yml` pada profil aktif:

| Label UI | Nilai tersimpan |
| - | - |
| OpenAI Chat Completions | `openai-completions` |
| OpenAI Responses | `openai-responses` |
| Anthropic Messages | `anthropic-messages` |
| Gemini API | `google-generative-ai` |

Satu provider hanya berbicara satu protokol. Triw melayani chat-completions dan Anthropic messages — bila butuh keduanya, daftarkan dua provider (`triw` dan `triw-anthropic`). Kredensial disimpan di `$DSH_HOME/.credentials.yaml`, bukan di file profil.

## Verifikasi

Mulai sesi dan kirim `balas dengan satu kata: ready`. Lalu pastikan panggilannya muncul di **Logs** Triw.

## Troubleshooting

| Gejala | Penyebab | Perbaikan |
| - | - | - |
| `pnpm: command not found` | pnpm belum ada | `npm install -g pnpm` |
| Provider tidak terlihat | Tersimpan di profil lain | Pindah profil, atau tambahkan ulang di profil aktif |
| 404 | Protokol tidak cocok dengan route | Chat Completions untuk `/v1/chat/completions` |
| 401 | Kredensial ditolak setelah URL diubah | Masukkan ulang key; kredensial bersifat write-only |


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.