Coding-Agent

Pi

Pi, jetzt durch Europa.

Ein paar Zeilen TypeScript registrieren Melious als Custom-Provider. Hot-reload-fähig, code-first, keine JSON-Config zu pflegen.

~/.pi/agent/extensions/melious.ts
import type { ExtensionAPI } from class="s">"@mariozechner/pi-coding-agent";

export default function (pi: ExtensionAPI) {
  pi.registerProvider(class="s">"melious", {
    name: class="s">"Melious",
    baseUrl: class="s">"https:class="cclass="s">">//api.melious.ai/v1",
    apiKey: class="s">"MELIOUS_API_KEY",
    api: class="s">"openai-completions",
    models: [
      {
        id: class="s">"<MODEL_ID>",
        name: class="s">"<Display Name>",
        reasoning: false,
        input: [class="s">"text"],
        cost: { input: 0, output: 0, cacheRead: 0, cacheWrite: 0 },
        contextWindow: 128000,
        maxTokens: 4096
      }
    ]
  });
}
Über

What is Pi?

Pi ist ein minimaler, MIT-lizenzierter Terminal-Coding-Harness. Spricht mehrere Provider out of the box und lässt dich eigene über TypeScript-Extensions einbinden statt über Config-Dateien. Sessions sind baumstrukturiert, die Agent-Oberfläche basiert auf Primitiven (Extensions, Skills, Prompt-Templates, AGENTS.md-Context), und /model wechselt das aktive Modell jederzeit. Auf Melious zeigen ist eine einzige Extension-Datei in ~/.pi/agent/extensions/.

Zur offiziellen Website pi.dev
Setup

Wie nutze ich Pi mit Melious?

  1. Pi installieren

    Pi wird als npm-Package ausgeliefert. Nach der Installation ist pi im PATH und bereit für den ersten Start.

    Shell
    npm install -g @mariozechner/pi-coding-agent
  2. Melious als Provider registrieren

    Eine TypeScript-Extension in ~/.pi/agent/extensions/ ablegen (oder .pi/extensions/ pro Projekt). Pi findet sie beim Start und unterstützt /reload für Hot-Edits. Die Async-Factory unten holt unseren aktuellen Modell-Katalog und registriert alle Chat-Modelle auf einmal. Keine manuellen Updates, wenn sich der Katalog ändert.

    ~/.pi/agent/extensions/melious.ts
    import type { ExtensionAPI } from class="s">"@mariozechner/pi-coding-agent";
    
    export default async function (pi: ExtensionAPI) {
      const apiKey = process.env.MELIOUS_API_KEY;
      if (!apiKey) return;
    
      const res = await fetch(class="s">"https:class="cclass="s">">//api.melious.ai/v1/models?include_meta=true", {
        headers: { Authorization: class="s">`Bearer ${apiKey}` },
      });
      const { data } = await res.json();
    
      pi.registerProvider(class="s">"melious", {
        name: class="s">"Melious",
        baseUrl: class="s">"https:class="cclass="s">">//api.melious.ai/v1",
        apiKey: class="s">"MELIOUS_API_KEY",
        api: class="s">"openai-completions",
        models: data
          .filter((m: any) => m._meta?.type === class="s">"chat")
          .map((m: any) => ({
            id: m.id,
            name: m._meta?.display_name ?? m.id,
            reasoning: m._meta?.capabilities?.reasoning ?? false,
            input: m._meta?.capabilities?.vision ? [class="s">"text", class="s">"image"] : [class="s">"text"],
            cost: {
              input: m._meta?.pricing?.input_per_1m ?? 0,
              output: m._meta?.pricing?.output_per_1m ?? 0,
              cacheRead: 0,
              cacheWrite: 0,
            },
            contextWindow: m._meta?.context_length ?? 128000,
            maxTokens: m._meta?.max_output_tokens ?? 4096,
          })),
      });
    }
  3. Pi starten

    Key exportieren, dann starten. /model wechselt das aktive Modell mitten in der Session. pi --list-models zeigt, was registriert wurde, pi --provider melious filtert auf uns.

    Shell
    export MELIOUS_API_KEY=sk-mel-<YOUR_API_KEY>
    pi
Bereit?

Drei Schritte von hier.

Hol dir einen Melious-Key. Wähl dein Tool. Folg der Anleitung. Gleicher Client, antwortet jetzt aus Europa.