@aarestu/pi-vikey1.1.0
Pi Coding Agent (pi.dev) extension to access LLM models via Vikey.ai (Claude 3.7, DeepSeek R1/V3, GPT-4o, Gemini 2.0, Qwen, etc.)
Untested on omp
This is a pi package. No one has reported whether it works on omp yet. If you try it, add your result below.
Reports 0
No reports yet.
Readme
pi-vikey โ Ekstensi Vikey.ai untuk Pi Coding Agent
Ekstensi resmi untuk menghubungkan Pi Coding Agent (pi.dev) dengan Vikey.ai โ AI inference gateway dengan pembayaran lokal Indonesia (QRIS/IDR).
Dengan ekstensi ini, Anda bisa mengakses model LLM unggulan langsung dari Pi CLI:
| Provider | Model Unggulan |
|---|---|
| ๐ฃ Anthropic | Claude 3.7 Sonnet, Claude 3.5 Sonnet/Haiku |
| ๐ต DeepSeek | DeepSeek R1 (Reasoner), DeepSeek V3 |
| ๐ข OpenAI | GPT-4o, GPT-4o-mini, o3-mini, o1 |
| ๐ด Google | Gemini 2.0 Flash, Gemini 2.0 Pro |
| ๐ก Open Source | Qwen 2.5 Coder 32B, Llama 3.3 70B |
๐ Website: https://vikey.ai/
๐ Dokumentasi API: https://api.vikey.ai/docs
Daftar Isi
- Persyaratan
- Instalasi Cepat
- Setup API Key
- Verifikasi
- Penggunaan
- Perintah Interaktif
- Struktur Proyek
- Instalasi Manual
- Pengembangan
- FAQ
Persyaratan
- Pi Coding Agent (
>= 0.85.0) โ Install Pi - Node.js
>= 18(untuk script setup CLI) - API Key Vikey.ai โ Daftar di vikey.ai โ Dashboard โ API Keys
Instalasi Cepat
Opsi A: Via npm (Direkomendasikan)
# Install global
npm install -g @aarestu/pi-vikey
# Setup provider (opsional โ ekstensi sudah auto-register saat dipasang)
pi-vikey setup
# Set API key (satu pintu)
pi # buka TUI
/login vikey # tempel API key -> tersimpan di ~/.pi/agent/auth.json
Opsi B: Manual (Clone / Download)
# Clone repositori
git clone https://github.com/aarestu/pi-vikey.git
cd pi-vikey
# Install dependensi
npm install
# Build
npm run build
# Jalankan setup
node scripts/setup.js
# Atau langsung ke .pi/extensions (global)
cp -r dist ~/.pi/agent/extensions/pi-vikey
# Set API key (satu pintu) โ di dalam pi:
# /login vikey
Opsi C: Ekstensi Global Pi
# Clone repo
git clone https://github.com/aarestu/pi-vikey.git
cd pi-vikey
npm install && npm run build
# Pasang sebagai ekstensi global Pi
mkdir -p ~/.pi/agent/extensions/pi-vikey
cp -r dist/* ~/.pi/agent/extensions/pi-vikey/
# Atau symlink untuk development
ln -s "$(pwd)" ~/.pi/agent/extensions/pi-vikey
Kemudian restart Pi atau ketik /reload.
Setup API Key
Cara utama โ satu pintu lewat /login vikey:
pi # buka Pi TUI
/login vikey # pilih provider vikey, lalu tempel API key Anda
Kredensial tersimpan otomatis di ~/.pi/agent/auth.json dan langsung dipakai oleh
provider, perintah /vikey*, dan refresh daftar model. Tidak perlu environment variable.
# Verifikasi kredensial tersimpan
pi auth check --provider vikey
# Ganti / hapus kredensial
/login vikey # jalankan lagi untuk mengganti
/logout vikey # hapus kredensial
Alternatif (headless / CI)
Environment variable tetap didukung sebagai fallback, dipakai hanya jika belum
ada kredensial tersimpan dari /login:
# Linux / macOS
export VIKEY_API_KEY="sk-vikey-..."
# Windows (PowerShell)
$env:VIKEY_API_KEY="sk-vikey-..."
Urutan prioritas: kredensial /login vikey โ VIKEY_API_KEY โ OPENAI_API_KEY.
Verifikasi
# Cek koneksi ke Vikey.ai
node scripts/test-connection.js
# Atau lewat Pi
pi --model vikey/gpt-4o -p "Halo, siapa kamu?"
# Cek daftar model dari Pi
pi -e ./dist/index.js --list-models | grep vikey
Jika berhasil, Anda akan melihat daftar model yang tersedia dari Vikey.ai.
Penggunaan
Memilih Model
# Lewat CLI argument
pi --model vikey/claude-3-7-sonnet
# Lewat TUI โ tekan Ctrl+P atau ketik /model, lalu pilih Vikey.ai
Mode Reasoning
Model dengan dukungan reasoning (Claude 3.7 Sonnet, DeepSeek R1, o3-mini, o1):
# Default (low reasoning)
pi --model vikey/claude-3-7-sonnet
# Medium reasoning
pi --model vikey/deepseek-reasoner
Perintah Interaktif
Di dalam TUI Pi (pi tanpa argumen), ketik:
| Perintah | Deskripsi |
|---|---|
/vikey |
Info status ekstensi & API key |
/vikey-models |
Daftar model live dari API Vikey.ai |
/vikey-test |
Tes koneksi & latensi ke Vikey.ai |
/vikey-usage |
Pemakaian API key: request, token & total biaya |
/vikey-setup |
Setup otomatis models.json |
Pemakaian vs Saldo
/vikey-usage # atau: npm run usage
Menampilkan (dari API, memakai API key):
# Pemakaian Vikey.ai (API key)
**Key aktif ini:**
โข Total request: 0 (sukses 0, gagal 0)
โข Token: 0 (input 0 / output 0)
โข Total biaya: 0
**API key akun ini (3):**
| Nama | Key | Pemakaian | Limit | Status |
| localku | `vk-f...a07b` | 363 | โ | aktif |
| sunahmuslim | `vk-e...fec6` | 2.686 | โ | aktif |
| restu-pc โ aktif | `vk-2...4a7e` | 0 | โ | aktif |
โ ๏ธ Saldo akun tidak bisa dibaca dengan API key. Endpoint saldo Vikey (
https://app.vikey.ai/api/user/billing) hanya menerima access token dashboard (hasil login web), bukan API key. Untuk melihat saldo, buka dashboard Vikey.
Contoh Output /vikey
โจ Vikey.ai Provider Extension for Pi Coding Agent
โข Base URL: https://api.vikey.ai/v1
โข API Key Status: โ
Terdeteksi (sk-v...ABCd)
โข Total Model Terdaftar: 15 model
โข Path models.json: C:\Users\user\.pi\agent\models.json
Perintah yang tersedia:
โข /vikey-models โ Daftar model live dari API Vikey.ai
โข /vikey-test โ Menguji koneksi & latensi ke server Vikey.ai
โข /vikey-usage โ Pemakaian, token & biaya API key
โข /vikey-setup โ Otomatis sinkronisasi model ke ~/.pi/agent/models.json
Contoh penggunaan model langsung:
โข pi --model vikey/claude-3-7-sonnet
โข pi --model vikey/deepseek-reasoner
โข pi --model vikey/gpt-4o
Struktur Proyek
pi-vikey/
โโโ package.json # Package manifest (bin โ dist/bin/cli.js)
โโโ tsconfig.json # TypeScript config (build)
โโโ tsconfig.test.json # TypeScript config (type-check tests)
โโโ vitest.config.ts # Vitest config (unit tests + coverage)
โโโ src/
โ โโโ index.ts # Composition root โ registrasi provider & commands
โ โโโ catalog/ # Katalog model (single source of truth)
โ โ โโโ types.ts # Tipe domain (VikeyModelDefinition, dll)
โ โ โโโ catalog.ts # Data katalog + konstanta provider
โ โ โโโ provider.ts # buildProviderConfig() โ models.json / registerProvider
โ โ โโโ format.ts # Render markdown daftar model
โ โโโ config/ # Konfigurasi
โ โ โโโ apiKey.ts # API key: /login vikey (auth.json) + env fallback
โ โ โโโ paths.ts # Path models.json (global / project)
โ โ โโโ modelsJson.ts # Read/write/merge models.json
โ โโโ api/ # HTTP client
โ โ โโโ client.ts # testVikeyConnection (fetch injectable)
โ โ โโโ models-fetch.ts # fetchRemoteModelIds โ GET /v1/models live
โ โ โโโ refresh.ts # refreshModels handler (live + persist + fallback)
โ โโโ commands/ # Handler perintah murni + wiring pi
โ โ โโโ status.ts # /vikey
โ โ โโโ list.ts # /vikey-models
โ โ โโโ test.ts # /vikey-test
โ โ โโโ usage.ts # /vikey-usage
โ โ โโโ setup.ts # /vikey-setup
โ โ โโโ register.ts # Registrasi ke pi.registerCommand
โ โโโ cli/ # CLI mandiri (TS, dikompilasi ke dist)
โ โ โโโ args.ts # Parse argumen (murni)
โ โ โโโ setup.ts # npm run setup
โ โ โโโ test-connection.ts # npm run test:conn
โ โ โโโ usage.ts # npm run usage
โ โโโ bin/ # Executable `pi-vikey`
โ โโโ cli.ts # Dispatch setup|test
โโโ tests/
โ โโโ unit/ # Unit test (terpisah dari src, mirror struktur)
โ โโโ api/ # client.test.ts
โ โโโ catalog/ # catalog / provider / format
โ โโโ cli/ # args
โ โโโ commands/ # status / test / setup
โ โโโ config/ # apiKey / paths / modelsJson
โ โโโ util/ # mask
โโโ scripts/
โ โโโ setup.js # Shim โ dist/cli/setup.js (backward-compat)
โ โโโ test-connection.js # Shim โ dist/cli/test-connection.js
โ โโโ generate-example.js # Regenerasi models.example.json dari katalog
โโโ models.example.json # Template konfigurasi (dihasilkan otomatis)
โโโ README.md # Dokumentasi (Indonesia)
โโโ README.en.md # Dokumentasi (English)
Arsitektur & Prinsip
- Single Responsibility โ setiap modul punya satu alasan untuk berubah: data katalog, mapping provider, HTTP/client, persistence, presentasi, dan wiring dipisah.
- Daftar model live dari API โ daftar efektif diambil dari
GET /v1/modelsviarefreshModels; katalog statis hanya fallback + sumber enrichment metadata. - Single Source of Truth โ katalog statis hanya di
src/catalog/catalog.ts;registerProvider,models.json, danmodels.example.jsonsemuanya diturunkan dari sana (lihatnpm run generate:example). - Dependency Injection โ handler/CLI menerima dependensi (fetch, persist, tester) yang bisa di-stub di unit test.
- Errors as values โ hasil operasi I/O dikembalikan sebagai
Resultterstruktur, tidak melempar exception untuk alur normal.
Cara Kerja Daftar Model (Live dari API)
- Buka
pi(TUI) โ background refresh:GET /v1/modelsโ daftar menggantikan katalog statis โ snapshot disimpan ke~/.pi/agent/models-store.json. - Sesi berikutnya /
--list-modelsโ fase offline: snapshot terakhir di-restore tanpa fetch. - Model baru di gateway muncul otomatis tanpa update ekstensi (heuristik metadata:
context window default 128k/16k; reasoning terdeteksi dari pola id seperti
r1,o3,reasoner,thinking). - Katalog statis hanya dipakai saat offline pertama kali atau API gagal.
- Kredensial: pi memprioritaskan credential tersimpan (
/login), lalu envVIKEY_API_KEY.
Instalasi Manual (Tanpa Ekstensi)
Jika tidak ingin menggunakan ekstensi, Anda bisa langsung mengedit ~/.pi/agent/models.json secara manual dengan isi dari models.example.json.
- Buka
~/.pi/agent/models.json(buat jika belum ada) - Tambahkan konfigurasi provider
vikey(lihatmodels.example.json) - Set
VIKEY_API_KEYenvironment variable - Restart Pi
Pengembangan
# Clone
git clone https://github.com/aarestu/pi-vikey.git
cd pi-vikey
# Install
npm install
# Build TypeScript
npm run build
# Watch mode
npm run watch
# Type-check (src + tests)
npm run typecheck
# Jalankan unit test
npm test
# Unit test + laporan coverage
npm run test:coverage
# Test dengan Pi langsung
pi -e ./dist/index.js
# Test connection
npm run test:conn
# Regenerasi models.example.json dari katalog
npm run generate:example
Menambahkan Model Baru
Edit src/catalog/catalog.ts dan tambahkan entri baru ke array VIKEY_MODEL_CATALOG:
{
id: "model-id-baru",
name: "Nama Model Baru",
category: "openai",
contextWindow: 128000,
maxTokens: 16384,
input: ["text"],
reasoning: false,
recommended: false,
description: "Deskripsi model."
}
Kemudian:
npm run build
npm run generate:example # sinkronkan models.example.json
npm test # pastikan tes katalog tetap hijau
FAQ
Q: Apa itu Vikey.ai?
Vikey.ai adalah AI inference gateway yang menyediakan akses ke berbagai model LLM (Claude, GPT, DeepSeek, Gemini, Qwen) dengan endpoint OpenAI-compatible dan pembayaran lokal Indonesia (QRIS/IDR).
Q: Berapa biaya penggunaan?
Lihat harga terbaru di https://vikey.ai/pricing.
Q: Bagaimana cara mendapatkan API Key?
Daftar di vikey.ai โ Dashboard โ API Keys โ Buat API Key baru.
Q: Bisa pakai OPENAI_API_KEY?
Ya. Jika VIKEY_API_KEY tidak diset, ekstensi akan mencari OPENAI_API_KEY sebagai fallback.
Q: Model tidak muncul di menu /model?
Pastikan VIKEY_API_KEY sudah diset dengan benar dan jalankan /reload di Pi.
Lisensi
MIT โ lihat file LICENSE untuk detail.
Kontribusi
Kami menyambut kontribusi! Silakan buka issue atau kirim Pull Request.
Dibuat oleh aarestu