[FEATURE]: app: "Free" badge in model picker is limited to the opencode provider
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- 機能追加
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- typescript
- 領域
- frontend
調査の方向性
packages/app/src/providers/models/models.tsxを読み、無料モデルの判定を、packages/tui/src/component/model-options.tsxにあるプロバイダーに依存しない判定と比較してください。すべてのコスト階層で入力コストがゼロの場合に説明どおりの動作となるよう、Desktopバッジの条件を更新してください。任意のプロバイダーの入力コストがゼロのモデルにFreeバッジが表示され、ルーティングや課金に変更がない状態になれば完了です。
索引モデルが issue の本文から書いたものです。
説明
Feature hasn't been suggested before.
- I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request
What: In OpenCode Desktop, the "Free" badge next to a model name in the model picker is only shown for models served by the opencode provider, even when models on other providers have zero cost.
The check is hard-coded to the provider in packages/app/src/providers/models/models.tsx:
export const isFreeModel = (model: { provider: { id: string }; cost?: { input: number } }) =>
model.provider.id === "opencode" && (!model.cost || model.cost.input === 0)
The TUI uses a provider-agnostic check in packages/tui/src/component/model-options.tsx (cost.length > 0 && cost.every((c) => c.input === 0)), so the same model shows a "Free" tag in the terminal but no badge in Desktop.
Request: Show the "Free" badge based on cost alone (zero input cost across all cost tiers), regardless of provider, matching the TUI behavior.
Why it's useful: Users with self-hosted or free endpoints (e.g. a LiteLLM proxy in front of free/university models) configure cost.input: 0 on those models, but Desktop gives them no visual marker in the picker. Currently the only workaround is putting "Free" in the model display name, which is inconsistent with how built-in providers are labeled.
Expected result: Any model whose input cost is zero shows the same "Free" badge as OpenCode's own free models. No routing or billing behavior changes.
Environment: OpenCode Desktop 2.1.4 (desktop-ssh), server on Linux x86_64 (Debian 13).
- 主要言語
- TypeScript
- スター
- 221k
- フォーク
- 29.6k
- 平均マージ
- 4時間 55分
- マージ済み PR(30日)
- 500
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
anomalyco/opencode のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 66/100
anomalyco/opencode#59886 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 65/100
anomalyco/opencode#59826 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
anomalyco/opencode#59677 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 68/100
anomalyco/opencode#59589 · コメント 1 件 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 61/100
anomalyco/opencode#59557 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
anomalyco/opencode の issue をすべて見る
似ている issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
gnosis/gnosis_vpn#661 ·
メンテナーはふだん 1 日以内に返信
-
content-freshness: staleOwnedContent doc comments still say 'complete receipt' (follow-up to #7912)オープンtriage:bug-verified
難易度 1/5 1時間未満 初心者へのやさしさ 92/100
メンテナーはふだん 1 日以内に返信
-
fix: reject sourceStorage/packagedStorage bucket that differs from the stack default (fail loud)オープン
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
Eyevinn/open-videocore#1300 ·
メンテナーはふだん 1 日以内に返信
-
nextjs-tracking
難易度 2/5 1〜3時間 初心者へのやさしさ 67/100
cloudflare/vinext#4390 ·
メンテナーはふだん 1 日以内に返信
-
kind/bug
難易度 2/5 1〜3時間 初心者へのやさしさ 82/100
kubernetes-sigs/headlamp#8175 ·
メンテナーはふだん 2 日以内に返信