资深订阅人Opencode Go和CommandCodeGoat到底应该买谁(详细对比)
苏淋
2026-08-30 09:33
1
省流版本:
复制此段HTML
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>OpenCode Go vs CommandCode GOAT · 全模型请求次数对比</title>
<meta name="description" content="统一 Opencode 平均 Token 口径,对比 OpenCode Go $10 vs CommandCode GOAT $10 全 25 模型 5h/周/月请求次数,附 Artificial Analysis Intelligence Index。">
<meta property="og:title" content="OpenCode Go vs CommandCode GOAT - 全模型次数对比">
<meta property="og:type" content="website">
<meta name="color-scheme" content="dark light">
<style>
:root{
--bg:#09090e;--panel:#121218;--panel2:#17171f;--raise:#1c1c26;--border:#262636;--border2:#32324a;
--text:#eceef4;--muted:#8b90a5;--faint:#5c6076;
--oc:#8b7cff;--oc-soft:rgba(139,124,255,.14);--oc-line:rgba(139,124,255,.35);
--goat:#2fd4b8;--goat-soft:rgba(47,212,184,.13);--goat-line:rgba(47,212,184,.32);
--green:#34d399;--amber:#fbbf24;--shadow:0 12px 40px rgba(0,0,0,.45);
--r:14px;
}
@media (prefers-color-scheme: light){
:root{--bg:#f5f6fa;--panel:#ffffff;--panel2:#fafafd;--raise:#f0f1f7;--border:#e5e7f0;--border2:#d8dbe8;
--text:#14161f;--muted:#5f6579;--faint:#9aa0b3;--oc-soft:rgba(124,92,255,.09);--oc-line:rgba(124,92,255,.25);
--goat-soft:rgba(20,184,166,.09);--goat-line:rgba(20,184,166,.25);--shadow:0 10px 32px rgba(30,32,60,.08)}
}
[data-theme="light"]{--bg:#f5f6fa;--panel:#ffffff;--panel2:#fafafd;--raise:#f0f1f7;--border:#e5e7f0;--border2:#d8dbe8;
--text:#14161f;--muted:#5f6579;--faint:#9aa0b3;--oc-soft:rgba(124,92,255,.09);--oc-line:rgba(124,92,255,.25);
--goat-soft:rgba(20,184,166,.09);--goat-line:rgba(20,184,166,.25);--shadow:0 10px 32px rgba(30,32,60,.08)}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{
font-family:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',Roboto,'PingFang SC','Hiragino Sans GB','Microsoft YaHei',sans-serif;
background:var(--bg);color:var(--text);min-height:100vh;font-size:14px;line-height:1.5;
-webkit-font-smoothing:antialiased;
}
a{color:inherit}
.wrap{max-width:1240px;margin:0 auto;padding:0 20px}
/* ── Header ─────────────────────────── */
header{padding:44px 0 8px;position:relative}
.eyebrow{display:inline-flex;align-items:center;gap:8px;font-size:12px;font-weight:600;letter-spacing:.05em;color:var(--muted);
background:var(--panel);border:1px solid var(--border);padding:6px 14px;border-radius:999px}
.eyebrow .live{width:7px;height:7px;border-radius:50%;background:var(--green);box-shadow:0 0 0 3px rgba(52,211,153,.18)}
h1{font-size:clamp(26px,4vw,38px);font-weight:800;letter-spacing:-.025em;line-height:1.12;margin:18px 0 10px}
.vs-tag{display:inline-flex;align-items:center;gap:10px;white-space:nowrap}
.vs-tag .side{padding:3px 12px;border-radius:10px;font-size:.62em;font-weight:700;letter-spacing:0}
.vs-tag .oc{background:var(--oc-soft);color:var(--oc);border:1px solid var(--oc-line)}
.vs-tag .goat{background:var(--goat-soft);color:var(--goat);border:1px solid var(--goat-line)}
.vs-tag .x{color:var(--faint);font-size:.5em;font-weight:600}
.lede{color:var(--muted);max-width:780px;font-size:14.5px}
.lede b{color:var(--text);font-weight:650}
.lede code{font-family:ui-monospace,'SF Mono',Consolas,monospace;font-size:12.5px;background:var(--raise);padding:2px 7px;border-radius:6px;border:1px solid var(--border)}
/* ── Stat cards ─────────────────────── */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin:28px 0 0}
.stat{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);padding:16px 18px;position:relative;overflow:hidden}
.stat::before{content:'';position:absolute;left:0;top:0;bottom:0;width:3px;border-radius:3px}
.stat.oc::before{background:var(--oc)} .stat.goat::before{background:var(--goat)}
.stat.plain::before{background:var(--border2)}
.stat .k{font-size:11.5px;font-weight:600;letter-spacing:.07em;text-transform:uppercase;color:var(--faint)}
.stat .v{font-size:21px;font-weight:750;margin-top:6px;letter-spacing:-.01em;font-variant-numeric:tabular-nums}
.stat .v small{font-size:12px;font-weight:450;color:var(--muted)}
.stat .s{font-size:12px;color:var(--muted);margin-top:3px}
/* ── Toolbar(两行)──────────────────── */
.toolbar{position:sticky;top:0;z-index:50;margin:22px 0 0;padding:10px 0;
background:color-mix(in srgb, var(--bg) 82%, transparent);backdrop-filter:blur(14px) saturate(1.3);
border-bottom:1px solid var(--border)}
.trow{display:flex;align-items:center;gap:10px;flex-wrap:wrap}
.trow + .trow{margin-top:10px}
.spacer{flex:1}
.search{position:relative;width:min(300px,100%)}
.search svg{position:absolute;left:11px;top:50%;transform:translateY(-50%);color:var(--faint);pointer-events:none}
.search input{width:100%;background:var(--panel);border:1px solid var(--border);color:var(--text);
padding:8px 30px 8px 34px;border-radius:10px;outline:none;font-size:13.5px;transition:border-color .15s, box-shadow .15s}
.search input::placeholder{color:var(--faint)}
.search input:focus{border-color:var(--oc);box-shadow:0 0 0 3px var(--oc-soft)}
.search .clr{position:absolute;right:6px;top:50%;transform:translateY(-50%);border:none;background:none;color:var(--faint);
cursor:pointer;font-size:15px;padding:4px 6px;border-radius:6px;display:none;line-height:1}
.search .clr:hover{color:var(--text);background:var(--raise)}
.seg{display:inline-flex;background:var(--raise);border:1px solid var(--border);border-radius:10px;padding:3px;gap:2px}
.seg button{border:none;background:transparent;color:var(--muted);font-size:12.5px;font-weight:600;padding:5px 14px;
border-radius:8px;cursor:pointer;transition:.14s;font-family:inherit}
.seg button:hover{color:var(--text)}
.seg button.on{background:var(--panel);color:var(--text);box-shadow:0 1px 4px rgba(0,0,0,.25);border:1px solid var(--border2)}
.seg button .u{font-size:10.5px;opacity:.65;font-weight:500;margin-left:2px}
.fgroup{display:inline-flex;align-items:center;gap:8px;flex-wrap:wrap}
.flabel{font-size:11.5px;font-weight:600;letter-spacing:.04em;color:var(--faint);text-transform:uppercase;flex-shrink:0}
.chip{border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:12.5px;font-weight:550;
padding:5px 12px;border-radius:999px;cursor:pointer;transition:.14s;font-family:inherit;white-space:nowrap}
.chip:hover{border-color:var(--border2);color:var(--text)}
.chip.on{background:var(--text);color:var(--bg);border-color:var(--text);font-weight:650}
.chip.count::after{content:attr(data-n);font-size:10.5px;opacity:.55;margin-left:5px}
.select{appearance:none;-webkit-appearance:none;background:var(--panel) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='10' height='6' viewBox='0 0 10 6'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%238b90a5' stroke-width='1.6' fill='none' stroke-linecap='round'/%3E%3C/svg%3E") no-repeat right 12px center;
border:1px solid var(--border);color:var(--text);font-size:12.5px;font-weight:550;padding:6px 30px 6px 12px;
border-radius:10px;cursor:pointer;font-family:inherit;transition:.14s}
.select:hover{border-color:var(--border2)}
.select:focus{outline:none;border-color:var(--oc);box-shadow:0 0 0 3px var(--oc-soft)}
.btn{border:1px solid var(--border);background:var(--panel);color:var(--muted);font-size:12.5px;font-weight:600;
padding:6px 13px;border-radius:10px;cursor:pointer;transition:.14s;font-family:inherit;display:inline-flex;align-items:center;gap:6px}
.btn:hover{color:var(--text);border-color:var(--border2);background:var(--raise)}
.btn.primary{background:var(--text);color:var(--bg);border-color:var(--text)}
.btn.primary:hover{opacity:.88}
.btn.done{border-color:var(--green);color:var(--green)}
/* ── Charts row ─────────────────────── */
.charts{display:grid;grid-template-columns:1.25fr .75fr;gap:12px;margin:18px 0 0}
.panel{background:var(--panel);border:1px solid var(--border);border-radius:var(--r);box-shadow:var(--shadow)}
.panel .phead{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:14px 18px 0;flex-wrap:wrap}
.panel .phead strong{font-size:13.5px;font-weight:700;letter-spacing:-.01em}
.panel .phead span{font-size:11.5px;color:var(--faint)}
.panel .pbody{padding:10px 14px 14px}
/* ── Table ──────────────────────────── */
.table-panel{margin:14px 0 0;overflow:hidden}
.tmeta{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:13px 18px;border-bottom:1px solid var(--border);flex-wrap:wrap}
.tmeta strong{font-size:13px;font-weight:700}
.tmeta .legend{display:flex;gap:14px;font-size:11.5px;color:var(--muted);align-items:center;flex-wrap:wrap}
.tmeta .legend i{width:9px;height:9px;border-radius:3px;display:inline-block;margin-right:5px;vertical-align:-1px}
.tscroll{overflow:auto;max-height:70vh}
table{width:100%;border-collapse:separate;border-spacing:0;font-size:13px;min-width:960px}
thead th{position:sticky;top:0;z-index:3;background:var(--panel2);color:var(--muted);font-weight:600;font-size:10.5px;
letter-spacing:.06em;text-transform:uppercase;padding:10px 12px;text-align:left;border-bottom:1px solid var(--border);
white-space:nowrap;user-select:none}
thead th.sortable{cursor:pointer}
thead th.sortable:hover{color:var(--text)}
thead th .arr{opacity:.35;font-size:9px;margin-left:3px}
thead th.sorted .arr{opacity:1;color:var(--oc)}
tbody td{padding:10px 12px;border-bottom:1px solid var(--border);white-space:nowrap;vertical-align:middle}
tbody tr:last-child td{border-bottom:none}
tbody tr{transition:background .1s}
tbody tr:hover{background:var(--oc-soft)}
th.c-name, td.c-name{position:sticky;left:0;z-index:2;background:var(--panel);min-width:210px;max-width:280px}
thead th.c-name{z-index:4;background:var(--panel2)}
tbody tr:hover td.c-name{background:linear-gradient(90deg,var(--panel),var(--panel2))}
.mname{font-weight:650;font-size:13px;letter-spacing:-.01em;display:flex;align-items:center;gap:7px}
.mname .free{font-size:9.5px;font-weight:700;letter-spacing:.04em;color:var(--green);background:rgba(52,211,153,.12);
border:1px solid rgba(52,211,153,.3);padding:1px 6px;border-radius:5px}
.msub{font-size:10.5px;color:var(--faint);margin-top:2px;font-weight:450}
.mono{font-family:ui-monospace,'SF Mono',Consolas,monospace;font-size:12px;font-variant-numeric:tabular-nums}
.dim{color:var(--muted)}
.aa{display:flex;align-items:center;gap:8px}
.aa .n{font-weight:700;font-variant-numeric:tabular-nums;min-width:30px;text-align:right}
.aa .track{width:52px;height:5px;border-radius:99px;background:var(--raise);overflow:hidden;flex-shrink:0}
.aa .track i{display:block;height:100%;border-radius:99px}
.tier-s{color:var(--green)} .tier-a{color:var(--goat)} .tier-b{color:var(--amber)} .tier-c{color:var(--muted)}
.cnt{font-weight:700;font-size:14px;font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.cnt-sub{font-size:10.5px;color:var(--faint);font-weight:450;margin-top:1px}
.gap-x{column-gap:12px}
.duel{display:flex;flex-direction:column;gap:4px;min-width:150px}
.duel .row{display:flex;align-items:center;gap:7px}
.duel .who{width:34px;font-size:9.5px;font-weight:700;letter-spacing:.05em;flex-shrink:0}
.duel .who.oco{color:var(--oc)} .duel .who.ggo{color:var(--goat)}
.duel .track{flex:1;height:6px;border-radius:99px;background:var(--raise);overflow:hidden}
.duel .track i{display:block;height:100%;border-radius:99px}
.duel .num{width:44px;text-align:right;font-size:11px;font-weight:650;font-variant-numeric:tabular-nums}
.badge-r{display:inline-flex;align-items:center;gap:5px;font-weight:700;font-size:11.5px;padding:3px 9px;border-radius:8px;font-variant-numeric:tabular-nums}
.badge-r.up{background:var(--goat-soft);color:var(--goat);border:1px solid var(--goat-line)}
.badge-r.down{background:var(--oc-soft);color:var(--oc);border:1px solid var(--oc-line)}
.badge-r.even{background:var(--raise);color:var(--muted);border:1px solid var(--border)}
.empty{padding:48px 20px;text-align:center;color:var(--faint);font-size:13.5px}
.empty b{color:var(--muted)}
/* ── Method / footer ────────────────── */
.method{margin:26px 0 0;padding:20px 22px;font-size:12.5px;color:var(--muted);line-height:1.85}
.method b{color:var(--text)}
.method code{font-family:ui-monospace,Consolas,monospace;font-size:11.5px;background:var(--raise);padding:2px 7px;border-radius:6px;border:1px solid var(--border)}
.method .links{display:flex;gap:16px;flex-wrap:wrap;margin-top:10px}
.method .links a{color:var(--oc);text-decoration:none;font-weight:600;font-size:12px}
.method .links a:hover{text-decoration:underline}
footer{padding:20px 0 44px;color:var(--faint);font-size:12px;text-align:center}
/* ── Responsive ─────────────────────── */
@media(max-width:980px){
.stats{grid-template-columns:repeat(2,1fr)}
.charts{grid-template-columns:1fr}
th.c-name,td.c-name{position:static}
.tscroll{max-height:none}
}
@media(max-width:640px){
header{padding-top:28px}
.stats{grid-template-columns:1fr}
.search{width:100%}
.trow{gap:8px}
}
@media print{
.toolbar,.charts,.btn{display:none!important}
body{background:#fff;color:#000}
.panel{box-shadow:none;border:1px solid #ddd}
}
</style>
</head>
<body>
<div class="wrap">
<header>
<span class="eyebrow"><span class="live"></span>统一口径 · Opencode 平均 Token + 缓存 · 2026-08-28 数据</span>
<h1><span class="vs-tag"><span class="side oc">OpenCode Go</span><span class="x">VS</span><span class="side goat">CommandCode GOAT</span></span><br>全模型请求次数对比</h1>
<p class="lede">
以 <b>Opencode 官方平均请求</b>(输入/缓存/输出)为统一基准,消除两家「典型请求」口径差异。
两者同为 <b>$10/月</b>:OpenCode 给 <code>5h $12 / 周 $30 / 月 $60</code>(per-model $15–$60),
GOAT 给 <code>5h $14 / 周 $35 / 月 $70</code>(per-model $20–$70)。
次数 = 有效额度 ÷ 单次成本,<b>有效额度 = 窗口 cap × (per-model 额度 ÷ 满额)</b>。
</p>
<div class="stats">
<div class="stat oc"><div class="k">OpenCode Go 月满额</div><div class="v">$60 <small>/ 月</small></div><div class="s">5h $12 · 周 $30 · per-model $15/$30/$60</div></div>
<div class="stat goat"><div class="k">GOAT 月满额</div><div class="v">$70 <small>/ 月</small></div><div class="s">5h $14 · 周 $35 · per-model $20–$70</div></div>
<div class="stat plain"><div class="k">对比模型</div><div class="v">25 <small>个 · 两家定价一致</small></div><div class="s">差异仅来自 per-model 额度分配</div></div>
<div class="stat plain"><div class="k">次数之王</div><div class="v">226,586 <small>次/月</small></div><div class="s">Muse Spark 1.2 Contributor @ OpenCode</div></div>
</div>
</header>
<!-- ══ Toolbar:两行 ══ -->
<div class="toolbar">
<div class="trow">
<div class="search">
<svg width="15" height="15" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round"><circle cx="11" cy="11" r="7"/><path d="m20 20-3.5-3.5"/></svg>
<input id="q" type="text" placeholder="搜索模型:mimo / deepseek / qwen…" autocomplete="off">
<button class="clr" id="qClr" title="清空">✕</button>
</div>
<div class="fgroup">
<span class="flabel">窗口</span>
<div class="seg" id="winSeg">
<button data-w="month" class="on">月</button>
<button data-w="week">周</button>
<button data-w="5h">5 小时</button>
</div>
</div>
<div class="spacer"></div>
<button class="btn" id="shareBtn" title="复制带当前筛选状态的链接">🔗 分享</button>
<button class="btn" id="exportBtn" title="导出当前结果为 CSV">⬇ CSV</button>
<button class="btn" id="themeBtn" title="切换明暗主题">🌓</button>
</div>
<div class="trow">
<div class="fgroup">
<span class="flabel">筛选</span>
<button class="chip on" data-f="all">全部</button>
<button class="chip" data-f="gt10k" data-n="13">月 >10K</button>
<button class="chip" data-f="winnerOC" data-n="8">OC 胜</button>
<button class="chip" data-f="winnerCC" data-n="13">GOAT 胜</button>
<button class="chip" data-f="strong" data-n="9">AA ≥52</button>
<button class="chip" data-f="onlyBoth" data-n="21">两家均有</button>
</div>
<div class="spacer"></div>
<select id="sort" class="select">
<option value="opM_desc">排序:OpenCode 月次数 ↓</option>
<option value="goatM_desc">排序:GOAT 月次数 ↓</option>
<option value="ratio_desc">排序:GOAT/OC 比值 ↓</option>
<option value="aa_desc">排序:AA Intelligence ↓</option>
<option value="cost_asc">排序:单次成本 ↑</option>
<option value="name_asc">排序:名称 A–Z</option>
</select>
</div>
</div>
<!-- ══ Charts ══ -->
<div class="charts">
<div class="panel">
<div class="phead"><strong>Intelligence × 月请求量</strong><span>气泡大小 = GOAT÷OC 比值 · 右上 = 又强又多</span></div>
<div class="pbody"><canvas id="scatter" style="width:100%;height:250px;display:block"></canvas></div>
</div>
<div class="panel">
<div class="phead"><strong>速览结论</strong><span>月窗口 · Opencode 口径</span></div>
<div class="pbody">
<div style="display:flex;flex-direction:column;gap:9px;font-size:12.5px;margin-top:2px">
<div style="display:flex;justify-content:space-between;gap:10px"><span class="dim">Muse 量大之王</span><b style="color:var(--oc)">OC 226K vs 75K</b></div>
<div style="display:flex;justify-content:space-between;gap:10px"><span class="dim">GLM-5.3-Flash</span><b style="color:var(--goat)">GOAT 21K vs 7.9K</b></div>
<div style="display:flex;justify-content:space-between;gap:10px"><span class="dim">DeepSeek V4 Flash</span><b style="color:var(--goat)">GOAT 75K vs 37K</b></div>
<div style="display:flex;justify-content:space-between;gap:10px"><span class="dim">最强模型</span><b>Grok 4.6 · AA 60.9</b></div>
<div style="display:flex;justify-content:space-between;gap:10px"><span class="dim">GOAT 胜率</span><b>13 / 21 个共有模型</b></div>
</div>
<div style="display:flex;gap:8px;margin-top:14px;flex-wrap:wrap">
<span class="badge-r up">GOAT 胜 13</span>
<span class="badge-r down">OC 胜 8</span>
<span class="badge-r even">持平 1</span>
</div>
</div>
</div>
</div>
<!-- ══ Table ══ -->
<div class="panel table-panel">
<div class="tmeta">
<strong id="countInfo">25 个模型</strong>
<div class="legend">
<span><i style="background:var(--oc)"></i>OpenCode Go</span>
<span><i style="background:var(--goat)"></i>CommandCode GOAT</span>
<span>点击表头排序 · 悬停查看高亮</span>
</div>
</div>
<div class="tscroll">
<table id="tbl">
<thead>
<tr>
<th class="c-name sortable" data-k="name">模型 <span class="arr">▾</span></th>
<th class="sortable" data-k="aa">AA Intelligence <span class="arr">▾</span></th>
<th>输入 / 缓存 / 输出</th>
<th class="sortable" data-k="cost_asc">单次成本 <span class="arr">▾</span></th>
<th class="sortable gap-x" data-k="opM">OpenCode Go <span class="arr">▾</span></th>
<th class="sortable gap-x" data-k="goatM">GOAT <span class="arr">▾</span></th>
<th class="sortable" data-k="ratio">GOAT ÷ OC <span class="arr">▾</span></th>
<th>次数对比(当前窗口)</th>
</tr>
</thead>
<tbody id="tbody"></tbody>
</table>
</div>
</div>
<div class="panel method" id="method">
<p><b>方法论</b> — 次数 = <code>有效额度 ÷ (输入×单价 + 缓存×单价 + 输出×单价) / 1M</code>。Opencode 均值取自 <code>opencode.ai/docs/zh-cn/go</code>(如 GLM-5.3-Flash:1000 in / 55,000 cache / 200 out);GOAT 的 per-model 额度取自 <code>commandcode.ai/docs/plans/goat</code> Monthly credits(GLM-5.3-Flash $40、Muse $20 …),换算 <code>5h = $14×allow/70、周 = $35×allow/70</code>;OpenCode 同理 <code>5h = $12×allow/60、周 = $30×allow/60</code>。两家模型定价一致。DeepSeek 分时计费按 Off-Peak 计算(Peak 为 01–04 & 06–10 UTC,价格翻倍)。</p>
<div class="links">
<a href="https://opencode.ai/docs/zh-cn/go/#使用限制" target="_blank" rel="noopener">OpenCode Go 数据源 ↗</a>
<a href="https://commandcode.ai/docs/plans/goat#usage-limits" target="_blank" rel="noopener">GOAT Plan 数据源 ↗</a>
<a href="https://commandcode.ai/docs/resources/pricing-limits" target="_blank" rel="noopener">Pricing & Limits ↗</a>
<a href="https://artificialanalysis.ai" target="_blank" rel="noopener">Artificial Analysis ↗</a>
</div>
</div>
<footer>数据更新 2026-08-28 · 单文件离线可用 · 计算口径如有出入以官方 Usage 页实时数据为准</footer>
</div>
<script>
const raw=[
{name:'Grok 4.6',aa:60.9,t:'390 / 32,500 / 120',cost:0.01775,op:['169','423','845'],goat:['225','563','1,126'],ga:20,oa:15,price:'$2.00 / $6.00 / $0.50',ratio:1.33},
{name:'GPT 5.6 Luna',aa:52.3,t:'1,000 / 50,000 / 220',cost:0.001464,op:['2,049','5,123','10,246'],goat:['2,732','6,831','13,661'],ga:20,oa:15,price:'$0.20 / $1.20 / $0.02',ratio:1.33},
{name:'GLM-5.3-Flash',aa:57.5,t:'1,000 / 55,000 / 200',cost:0.0019,op:['1,578','3,947','7,894'],goat:['4,210','10,526','21,052'],ga:40,oa:15,price:'$0.15 / $0.50 / $0.03',ratio:2.67},
{name:'GLM-5.3',aa:59.5,t:'700 / 52,000 / 150',cost:0.01516,op:['197','493','986'],goat:['263','658','1,319'],ga:20,oa:15,price:'$1.40 / $4.40 / $0.26',ratio:1.34},
{name:'GLM-5.2',aa:52.6,t:'700 / 52,000 / 150',cost:0.01516,op:['791','1,978','3,957'],goat:['923','2,308','4,617'],ga:70,oa:60,price:'$1.40 / $4.40 / $0.26',ratio:1.17},
{name:'GLM-5.1',aa:41.0,t:'700 / 52,000 / 150',cost:0.01516,op:['791','1,978','3,957'],goat:[null,null,null],ga:null,oa:60,price:'$1.40 / $4.40 / $0.26',ratio:null},
{name:'Kimi K3',aa:59.7,t:'1,050 / 76,500 / 300',cost:0.0306,op:['98','245','490'],goat:['130','326','653'],ga:20,oa:15,price:'$3.00 / $15.00 / $0.30',ratio:1.33},
{name:'Kimi K2.7 Code',aa:43.0,t:'870 / 55,000 / 200',cost:0.0120765,op:['993','2,484','4,968'],goat:['993','2,484','4,968'],ga:60,oa:60,price:'$0.95 / $4.00 / $0.19',ratio:1.00},
{name:'Kimi K2.6',aa:45.1,t:'870 / 55,000 / 200',cost:0.0104265,op:['1,150','2,877','5,754'],goat:[null,null,null],ga:null,oa:60,price:'$0.95 / $4.00 / $0.16',ratio:null},
{name:'LongCat-2.0',aa:null,t:'920 / 88,900 / 200',cost:0.0010494,op:['11,435','28,588','57,177'],goat:[null,null,null],ga:null,oa:60,price:'$0.30 / $1.20 / $0.006',ratio:null},
{name:'MiMo-V2.5',aa:38.0,t:'830 / 71,500 / 295',cost:0.0003989,op:['30,075','75,188','150,376'],goat:['15,037','37,594','75,188'],ga:30,oa:60,price:'$0.14 / $0.28 / $0.0028',ratio:0.50},
{name:'MiMo-V2.5-Pro',aa:42.9,t:'790 / 86,000 / 305',cost:0.000920825,op:['3,258','8,144','16,289'],goat:['4,344','10,859','21,719'],ga:20,oa:15,price:'$0.435 / $0.87 / $0.0036',ratio:1.33},
{name:'MiniMax M3',aa:45.4,t:'510 / 56,000 / 190',cost:0.003741,op:['3,207','8,019','16,038'],goat:['2,512','6,281','12,563'],ga:47,oa:60,price:'$0.30 / $1.20 / $0.06',ratio:0.78},
{name:'MiniMax M2.7',aa:38.9,t:'300 / 55,000 / 125',cost:0.00354,op:['3,389','8,474','16,949'],goat:[null,null,null],ga:null,oa:60,price:'$0.30 / $1.20 / $0.06',ratio:null},
{name:'Muse Spark 1.2 Contributor',aa:56.8,t:'620 / 71,400 / 300',cost:0.0002648,op:['45,317','113,293','226,586'],goat:['15,105','37,764','75,528'],ga:20,oa:60,price:'$0.10 / $0.20 / $0.002',ratio:0.33},
{name:'Qwen3.8 Max',aa:58.1,t:'420 / 66,000 / 200',cost:0.01854,op:['161','404','809'],goat:['215','539','1,078'],ga:20,oa:15,price:'$2.00 / $6.00 / $0.25',ratio:1.33},
{name:'Qwen3.8 Flash',aa:null,t:'600 / 58,000 / 200',cost:0.001112,op:['5,395','13,489','26,978'],goat:['3,597','8,992','17,985'],ga:20,oa:30,price:'$0.15 / $0.47 / $0.016',ratio:0.67},
{name:'Qwen3.7 Max',aa:46.7,t:'420 / 66,000 / 200',cost:0.03555,op:['337','843','1,687'],goat:['185','463','928'],ga:33,oa:60,price:'$2.50 / $7.50 / $0.50',ratio:0.55},
{name:'Qwen3.7 Plus',aa:39.4,t:'500 / 57,000 / 190',cost:0.002784,op:['4,310','10,775','21,551'],goat:['2,370','5,926','11,853'],ga:33,oa:60,price:'$0.40 / $1.60 / $0.04',ratio:0.55},
{name:'Qwen3.6 Plus',aa:40.5,t:'500 / 57,000 / 190',cost:0.00367,op:['3,269','8,174','16,348'],goat:['1,798','4,495','8,991'],ga:33,oa:60,price:'$0.50 / $3.00 / $0.05',ratio:0.55},
{name:'DeepSeek V4 Pro',aa:53.2,t:'750 / 82,000 / 290',cost:0.002873,op:['1,044','2,610','5,221'],goat:['1,392','3,480','6,961'],ga:20,oa:15,price:'$0.66 / $1.98 / $0.022',ratio:1.33},
{name:'DeepSeek V4 Flash',aa:52.0,t:'410 / 71,300 / 310',cost:0.0007939,op:['7,557','18,893','37,787'],goat:['15,115','37,787','75,574'],ga:60,oa:30,price:'$0.22 / $0.66 / $0.007',ratio:2.00},
{name:'DeepSeek V4 Flash Vision Exp',aa:null,t:'410 / 71,300 / 310',cost:0.0007939,op:['3,778','9,446','18,893'],goat:['5,038','12,595','25,191'],ga:20,oa:15,price:'$0.22 / $0.66 / $0.007',ratio:1.33},
{name:'Hy4 preview',aa:null,t:'830 / 71,500 / 295',cost:0.00443317,op:['1,353','3,383','6,767'],goat:['902','2,255','4,511'],ga:20,oa:30,price:'$0.834 / $2.50 / $0.042',ratio:0.67},
{name:'Hy3',aa:42.2,t:'830 / 71,500 / 295',cost:0.0027899,op:['4,301','10,752','21,505'],goat:['5,018','12,545','25,089'],ga:70,oa:60,price:'$0.14 / $0.58 / $0.035',ratio:1.17},
];
raw.forEach(m=>m.got=m.goat[0]!==null);
let curWin='month',curFilter='all',curSort='opM_desc',curQ='';
const WIDX={month:2,week:1,'5h':0};
const fmt=v=>v===null?'—':v;
function aaTier(aa){return aa===null?null:aa>=58?'s':aa>=52?'a':aa>=40?'b':'c';}
const aaColor={s:'var(--green)',a:'var(--goat)',b:'var(--amber)',c:'var(--muted)'};
function filtered(){
return raw.filter(m=>{
if(curQ && !m.name.toLowerCase().includes(curQ))return false;
if(curFilter==='gt10k' && parseInt(m.op[2].replace(/,/g,''))<=10000)return false;
if(curFilter==='winnerOC' && !(m.ratio!==null&&m.ratio<1))return false;
if(curFilter==='winnerCC' && !(m.ratio!==null&&m.ratio>1))return false;
if(curFilter==='strong' && (m.aa===null||m.aa<52))return false;
if(curFilter==='onlyBoth' && !m.got)return false;
return true;
});
}
function sorted(list){
const num=s=>parseInt(String(s).replace(/,/g,''))||-1;
const c={opM_desc:(a,b)=>num(b.op[2])-num(a.op[2]),goatM_desc:(a,b)=>num(b.goat[2])-num(a.goat[2]),
ratio_desc:(a,b)=>(b.ratio??-1)-(a.ratio??-1),aa_desc:(a,b)=>(b.aa??-1)-(a.aa??-1),
cost_asc:(a,b)=>a.cost-b.cost,name_asc:(a,b)=>a.name.localeCompare(b.name)};
return [...list].sort(c[curSort]||c.opM_desc);
}
function render(){
const list=sorted(filtered());
const tb=document.getElementById('tbody');
const maxOp=Math.max(...raw.map(m=>parseInt(m.op[2].replace(/,/g,''))));
const wi=WIDX[curWin];
if(!list.length){tb.innerHTML='<tr><td colspan="8"><div class="empty">没有匹配的模型 — 试试 <b>清空搜索</b> 或切换回 <b>全部</b></div></td></tr>';}
else{
tb.innerHTML=list.map(m=>{
const ti=aaTier(m.aa);
const ocV=m.op[wi],goV=m.goat[wi];
const r=m.ratio;
const rCls=r===null?'even':r>1?'up':r<1?'down':'even';
const rTxt=r===null?'— 独占':(r>1?'▲ ':'▼ ')+(r>=10?r.toFixed(1):r.toFixed(2))+'×';
const w1=Math.max(3,parseInt(m.op[2].replace(/,/g,''))/maxOp*100);
const w2=m.got?Math.max(3,parseInt(m.goat[2].replace(/,/g,''))/maxOp*100):0;
const free=m.name.includes('Contributor')?'<span class="free">CONTRIBUTOR</span>':'';
return `<tr>
<td class="c-name"><div class="mname">${m.name}${free}</div><div class="msub">${m.price} · 额度 OC $${m.oa} / GOAT ${m.ga?'$'+m.ga:'—'}</div></td>
<td>${ti?`<div class="aa"><span class="n tier-${ti}">${m.aa.toFixed(1)}</span><span class="track"><i style="width:${m.aa/61*100}%;background:${aaColor[ti]}"></i></span></div>`:'<span class="dim mono">—</span>'}</td>
<td class="mono dim">${m.t}</td>
<td class="mono">$${m.cost.toFixed(4)}</td>
<td class="gap-x"><div class="cnt" style="color:var(--oc)">${fmt(ocV)}</div><div class="cnt-sub">${m.op.join(' / ')}</div></td>
<td class="gap-x">${m.got?`<div class="cnt" style="color:var(--goat)">${fmt(goV)}</div><div class="cnt-sub">${m.goat.join(' / ')}</div>`:'<span class="dim">— 不在 GOAT</span>'}</td>
<td><span class="badge-r ${rCls}">${rTxt}</span></td>
<td><div class="duel">
<div class="row"><span class="who oco">OC</span><span class="track"><i style="width:${w1}%;background:linear-gradient(90deg,var(--oc),#b7a9ff)"></i></span><span class="num">${fmt(m.op[2])}</span></div>
<div class="row"><span class="who ggo">GOAT</span><span class="track"><i style="width:${w2}%;background:linear-gradient(90deg,var(--goat),#7be9d4)"></i></span><span class="num">${m.got?fmt(m.goat[2]):'—'}</span></div>
</div></td>
</tr>`;}).join('');
}
const winName={month:'月',week:'周','5h':'5 小时'}[curWin];
document.getElementById('countInfo').textContent=`${list.length} 个模型 · ${winName}窗口 · 统一 Opencode 口径`;
document.querySelectorAll('thead th.sortable').forEach(th=>{
th.classList.toggle('sorted',th.dataset.k.replace('_asc','_desc')===curSort||th.dataset.k===curSort);
});
}
/* 交互 */
const qEl=document.getElementById('q'),qClr=document.getElementById('qClr');
qEl.addEventListener('input',()=>{curQ=qEl.value.toLowerCase().trim();qClr.style.display=curQ?'block':'none';render();});
qClr.onclick=()=>{qEl.value='';curQ='';qClr.style.display='none';render();qEl.focus();};
document.querySelectorAll('#winSeg button').forEach(b=>b.onclick=()=>{
curWin=b.dataset.w;
document.querySelectorAll('#winSeg button').forEach(x=>x.classList.toggle('on',x===b));
render();
});
document.querySelectorAll('.chip[data-f]').forEach(p=>p.onclick=()=>{
curFilter=p.dataset.f;
document.querySelectorAll('.chip[data-f]').forEach(x=>x.classList.toggle('on',x===p));
render();
});
document.getElementById('sort').onchange=e=>{curSort=e.target.value;render();};
document.querySelectorAll('thead th.sortable').forEach(th=>{
th.tabIndex=0;
const go=()=>{const k=th.dataset.k;curSort=k==='name'?'name_asc':k.includes('_asc')?k:k+'_desc';
if(k==='aa'||k==='ratio')curSort=k+'_desc';if(k==='cost_asc')curSort='cost_asc';
document.getElementById('sort').value=curSort;render();};
th.onclick=go;th.onkeydown=e=>{if(e.key==='Enter')go();};
});
/* 主题 */
const themeBtn=document.getElementById('themeBtn');
function setTheme(t){document.documentElement.setAttribute('data-theme',t);localStorage.setItem('cmp-theme',t);}
themeBtn.onclick=()=>setTheme(document.documentElement.getAttribute('data-theme')==='light'?'dark':'light');
const saved=localStorage.getItem('cmp-theme')||(matchMedia('(prefers-color-scheme: light)').matches?'light':'dark');
if(saved==='light')setTheme('light');
/* CSV */
document.getElementById('exportBtn').onclick=()=>{
let csv='Model,AA Index,Tokens(in/cache/out),Cost per req,OC 5h,OC Week,OC Month,GOAT 5h,GOAT Week,GOAT Month,GOAT/OC\n';
sorted(filtered()).forEach(m=>{csv+=`"${m.name}",${m.aa??''},"${m.t}",${m.cost},"${m.op.join(' / ')}","${m.goat.map(x=>x??'').join(' / ')}",${m.ratio??''}\n`;});
const a=document.createElement('a');a.href=URL.createObjectURL(new Blob([''+csv],{type:'text/csv'}));
a.download=`opencode-vs-goat-${curWin}.csv`;a.click();
};
/* 分享 */
document.getElementById('shareBtn').onclick=()=>{
const url=location.origin==='null'?location.href:location.href.split('#')[0];
const h=`#sort=${curSort}&filter=${curFilter}&win=${curWin}&q=${encodeURIComponent(curQ)}`;
const full=url.split('#')[0]+h;history.replaceState(null,'',full);
navigator.clipboard?.writeText(full).then(()=>{
const b=document.getElementById('shareBtn');b.textContent='✅ 已复制';b.classList.add('done');
setTimeout(()=>{b.textContent='🔗 分享';b.classList.remove('done');},1400);
});
};
try{
const p=new URLSearchParams(location.hash.slice(1));
if(p.get('sort')&&['opM_desc','goatM_desc','ratio_desc','aa_desc','cost_asc','name_asc'].includes(p.get('sort'))){curSort=p.get('sort');document.getElementById('sort').value=curSort;}
if(p.get('filter')&&document.querySelector(`.chip[data-f="${p.get('filter')}"]`)){curFilter=p.get('filter');document.querySelectorAll('.chip[data-f]').forEach(x=>x.classList.toggle('on',x.dataset.f===curFilter));}
if(p.get('win')&&WIDX[p.get('win')]){curWin=p.get('win');document.querySelectorAll('#winSeg button').forEach(x=>x.classList.toggle('on',x.dataset.w===curWin));}
if(p.get('q')){curQ=p.get('q').toLowerCase();qEl.value=curQ;qClr.style.display=curQ?'block':'none';}
}catch(e){}
/* 散点图 */
function drawScatter(){
const c=document.getElementById('scatter');if(!c)return;
const dpr=window.devicePixelRatio||1,W=c.clientWidth,H=250;
c.width=W*dpr;c.height=H*dpr;
const ctx=c.getContext('2d');ctx.setTransform(dpr,0,0,dpr,0,0);ctx.clearRect(0,0,W,H);
const cs=getComputedStyle(document.documentElement);
const txt=cs.getPropertyValue('--muted').trim(),faint=cs.getPropertyValue('--faint').trim();
const pad={l:44,r:14,t:14,b:26};
const x0=35,x1=61,ly0=Math.log10(400),ly1=Math.log10(240000);
const X=a=>pad.l+(a-x0)/(x1-x0)*(W-pad.l-pad.r);
const Y=v=>H-pad.b-(Math.log10(v)-ly0)/(ly1-ly0)*(H-pad.t-pad.b);
ctx.strokeStyle=cs.getPropertyValue('--border').trim()||'#262636';ctx.lineWidth=1;
ctx.font='10px sans-serif';ctx.fillStyle=faint;
for(let a=40;a<=60;a+=5){ctx.beginPath();ctx.moveTo(X(a),pad.t);ctx.lineTo(X(a),H-pad.b);ctx.stroke();ctx.textAlign='center';ctx.fillText(a,X(a),H-8);}
[1000,10000,100000].forEach(v=>{ctx.beginPath();ctx.moveTo(pad.l,Y(v));ctx.lineTo(W-pad.r,Y(v));ctx.stroke();ctx.textAlign='right';ctx.fillText(v>=1000?(v/1000)+'K':v,pad.l-6,Y(v)+3);});
ctx.textAlign='left';ctx.fillStyle=txt;ctx.fillText('月请求 →',pad.l+4,pad.t+2);
raw.forEach(m=>{
if(m.aa===null)return;const v=parseInt(m.op[2].replace(/,/g,''));
const x=X(m.aa),y=Y(v),r=m.ratio===null?4:Math.min(9,Math.max(3.5,Math.abs(Math.log(m.ratio||1))*9+3.5));
ctx.beginPath();ctx.arc(x,y,r,0,7);
ctx.fillStyle=m.ratio===null?'rgba(139,144,165,.55)':m.ratio>1?'rgba(47,212,184,.88)':'rgba(139,124,255,.88)';
ctx.fill();ctx.strokeStyle='rgba(255,255,255,.5)';ctx.lineWidth=1;ctx.stroke();
});
[['Grok 4.6',60.9,845],['Muse Spark 1.2C',56.8,226586],['GLM-5.3-Flash',57.5,7894]].forEach(([n,a,v])=>{
ctx.fillStyle=txt;ctx.font='10.5px sans-serif';ctx.textAlign='left';ctx.fillText(n,X(a)+8,Y(v)-7);
});
}
drawScatter();
window.addEventListener('resize',drawScatter);
const _setTheme=setTheme;
const origSetTheme=themeBtn.onclick;
themeBtn.addEventListener('click',()=>setTimeout(drawScatter,60));
render();
</script>
</body>
</html>
由于出生OpencodeGo从5美金到10美金,让我非常的confusing,于是我就在想到底哪个更合适一点,搜了半天就这两家CommandCode和Opencode,但是其实这两家各有千秋我并没看出来到底哪个更合适一点,当然,这是AI的回答:

当然只看AI回答是片面的,我的评价是这样,如果预算充足呢或者本身就一个月要订阅好几份的套餐的话CommandCode肯定是最值的,因为大多数情况下cmdc给的都比oc多,但是如果说就是作为一个学生党或者对模型要求没那么高的话,那么我更推荐的是go因为muse给的是真足,当然了,opencode确确实实是越来越少了给的,新的GLM5.3Flash竟然只给15美金,疑似忘本,但是不得不说在某些情况下爱是最有价值的套餐
当然,各取所需,我觉得应该按每个人的需求来,上面那段HTML可以直观的进行对比,然后再各取所取就好了LOL
最新回复 (1)
-
彼岸云端 08-30 10:242楼纯用DeepSeek v4 flash的情况下应该是不是command比较划算
* 帖子来源Linux.do
附近帖子
- ↑办了一张电话卡
- ↑FREE存号越封越少,新注册号又秒封
- ↑zcode现在还能够领取吗
- ↑gg 退款到账了
- ↑【完整教程】一个人如何拍与女朋友的两人合影?
- 📍 资深订阅人Opencode Go和CommandCodeGoat到底应该买谁(详细对比)
- ↓[吐槽] 注意 UU 远程自动升级安装包正在吃掉你的硬盘空间
- ↓请问现在48Team怎么换主号啊?
- ↓gg 总算是给我退款了😮💨
- ↓有没有INFP的佬友w?
- ↓tibo最新的推特是不是明天又要重置了