opencode-zen-oauth1.2.11
OpenCode Zen provider for pi via console device-flow OAuth (workspace member login)
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
opencode-zen-oauth
English | Tiếng Việt
Dùng OpenCode Zen trong pi — khỏi cần API key. Bạn là member (không phải owner) của workspace? Extension này sinh ra cho bạn.
Cài đặt
pi install npm:opencode-zen-oauth
Vì sao có extension này
Console v2 của OpenCode giấu API key với member, còn token OAuth đem gọi thẳng thì bị từ chối ngoài client chính chủ. Ba bức tường, một extension gỡ hết:
- Khỏi quản lý key.
/login opencode-zenhiện trang device-code, bạn approve một lần trên browser, pi tự lưu và tự refresh token. - An toàn theo workspace. Approve xong về terminal chọn workspace (cứ để trang web ở "All workspaces"). Mọi request tự gắn đúng header org,
/modelchỉ hiện model mà workspace đó cho phép. Xài thêm workspace nữa?/opencode-zen switch-orglà xong, khỏi login lại (chỉ có hiệu lực trong session; muốn giữ sau restart thì login lại). - Danh sách model tự cập nhật. Model list refresh từ chính workspace — model bị disable hay ngoài whitelist của admin tự biến mất, context limit và giá/1M token map tự động. Discovery mà trục trặc, pi vẫn hiện list cũ thay vì trắng trang.
Gateway thỉnh thoảng trả 502/503? Extension tự retry với backoff trước khi bạn kịp thấy lỗi. Claude đời mới (Haiku 5.5, Sonnet/Opus 5.x, Fable 5) được gửi đúng dạng adaptive thinking mà gateway yêu cầu.
Đăng nhập
/login opencode-zen # device code + link hiện trong TUI
Approve trên browser, quay lại terminal chọn workspace, xong. Model nằm dưới opencode-zen/ trong /model. Không cần cài opencode — tất cả chạy qua HTTPS tới opencode.ai.
Dự phòng: set OPENCODE_API_KEY để dùng Zen API key thay vì OAuth.
Models
Ví dụ thật từ một workspace (list của bạn tùy theo workspace):
| id | input | output | cache read | inputs |
|---|---|---|---|---|
glm-5.3-flash |
$0.15 | $0.50 | $0.03 | text, image |
deepseek-v4.1-flash |
$0.30 | $1.20 | $0.006 | text, image |
big-pickle |
$0 | $0 | $0 | text |
mimo-v2.6-flash-free |
$0 | $0 | $0 | text |
Giá/1 triệu token, tính vào workspace đã chọn. Các dòng zero-cost là
free tier của Zen: extension gửi đúng identity headers mà gateway yêu cầu
(xem src/free-tier.ts) và request đi qua nguyên bản, nên tool calling
chạy native trên các model đó. Route cũng được re-derive từ mã mỗi lần
đọc, nên cache danh sách model cũ (models-store.json) không ghim sai
protocol được.
Bảo mật
- Extension không bao giờ in hay log token và workspace ID của bạn.
- Đừng tự paste token hay workspace ID vào chat — pi lưu session file những gì bạn gõ. Lỡ lộ thì revoke trong console OpenCode rồi
/login opencode-zenlại.
Cấu trúc
index.ts— entry point pi load; re-exportsrc/extension.tssrc/extension.ts— ráp provider và đăng kýsrc/auth.ts— login device-flow, chọn workspace, refresh tokensrc/models.ts— map model từ console sang pi, wire protocol từng routesrc/retry.ts— retry có giới hạn cho lỗi transient và option bị từ chốisrc/commands.ts— lệnh/opencode-zen(status, switch-org)src/free-tier.ts— identity headers cho free-tiertest/— bộ test bun với fetch giả (bun test)test/— test suite bun với fetch mock (bun test)
License
MIT
Changelog
Xem CHANGELOG.md và GitHub releases.
