[{"data":1,"prerenderedAt":3602},["ShallowReactive",2],{"header-counts":3,"footer-counts":6,"playbook-ai-coding\u002Fwrite-tests-with-ai":9,"playbook-tools-ai-coding\u002Fwrite-tests-with-ai":1024},{"tools":4,"reviews":5},75,34,{"tools":4,"reviews":5,"playbooks":7,"news":8},33,27,{"id":10,"title":11,"body":12,"category":990,"cover":990,"description":991,"extension":992,"lastVerified":993,"meta":994,"navigation":276,"path":1009,"published":993,"relatedTools":1010,"seo":1014,"seoTitle":1015,"stem":1016,"tags":1017,"updated":993,"__hash__":1023},"playbook\u002Fplaybook\u002Fai-coding\u002Fwrite-tests-with-ai.md","让 AI 帮你写好单元测试：从 0 覆盖到 80%",{"type":13,"value":14,"toc":972},"minimark",[15,19,32,34,37,42,53,56,60,66,69,73,79,82,85,92,227,231,509,513,633,637,750,754,757,763,776,779,829,843,847,898,902,905,920,923,926,963,968],[16,17,18],"h2",{"id":18},"一句话结论",[20,21,22,23,27,28,31],"p",{},"让 AI 写单元测试，已经从「能生成几行」进化到「能跑到 80% 覆盖」。但",[24,25,26],"strong",{},"前提是给对提示词","——无脑「帮我写测试」生成的东西往往只覆盖 happy path、边界缺失、mock 乱飞。用",[24,29,30],{},"三段式提示词","（覆盖目标 → 边界条件 → mock 策略），并让 AI 自查测试质量，效果立竿见影。",[16,33,30],{"id":30},[20,35,36],{},"不要只说「给这个函数写测试」。把任务拆成三段喂给 AI：",[38,39,41],"h3",{"id":40},"第-1-段覆盖目标","第 1 段：覆盖目标",[43,44,49],"pre",{"className":45,"code":47,"language":48},[46],"language-text","给 src\u002Futils\u002Fformat.ts 里的 formatPrice \u002F formatDate \u002F slugify 写单元测试。\n目标：行覆盖 ≥ 90%，每个导出函数至少一个用例。\n","text",[50,51,47],"code",{"__ignoreMap":52},"",[20,54,55],{},"明确覆盖率数字，AI 才会主动补分支。",[38,57,59],{"id":58},"第-2-段边界条件","第 2 段：边界条件",[43,61,64],{"className":62,"code":63,"language":48},[46],"重点覆盖以下边界：\n- formatPrice：0、负数、超大数、undefined、null、NaN\n- formatDate：非法日期字符串、时区、闰秒\n- slugify：中文、空格、特殊字符、空串\n",[50,65,63],{"__ignoreMap":52},[20,67,68],{},"边界是 AI 最容易漏的，显式列出来它才会补。",[38,70,72],{"id":71},"第-3-段mock-策略","第 3 段：mock 策略",[43,74,77],{"className":75,"code":76,"language":48},[46],"- 涉及 fetch \u002F 外部 API 的，用 vi.mock 隔离，不要真发请求\n- 涉及 Date.now() 的，用 vi.useFakeTimers() 固定时间\n- 涉及文件系统的，用临时目录或 mock fs\n- 不要为了覆盖率 mock 掉被测函数本身\n",[50,78,76],{"__ignoreMap":52},[20,80,81],{},"mock 策略写清楚，生成的测试才「可信」而非「自欺欺人」。",[16,83,84],{"id":84},"框架适配",[20,86,87,88,91],{},"三段式结构通用，差异只在",[24,89,90],{},"断言风格和 runner 命令","：",[93,94,95,117],"table",{},[96,97,98],"thead",{},[99,100,101,105,108,111,114],"tr",{},[102,103,104],"th",{},"框架",[102,106,107],{},"安装",[102,109,110],{},"测试文件约定",[102,112,113],{},"关键 API",[102,115,116],{},"跑命令",[118,119,120,148,175,202],"tbody",{},[99,121,122,128,133,138,143],{},[123,124,125],"td",{},[24,126,127],{},"Vitest",[123,129,130],{},[50,131,132],{},"npm i -D vitest",[123,134,135],{},[50,136,137],{},"*.test.ts",[123,139,140],{},[50,141,142],{},"describe\u002Fit\u002Fexpect\u002Fvi",[123,144,145],{},[50,146,147],{},"vitest run",[99,149,150,155,160,165,170],{},[123,151,152],{},[24,153,154],{},"Jest",[123,156,157],{},[50,158,159],{},"npm i -D jest",[123,161,162],{},[50,163,164],{},"*.test.js",[123,166,167],{},[50,168,169],{},"describe\u002Ftest\u002Fexpect\u002Fjest",[123,171,172],{},[50,173,174],{},"jest",[99,176,177,182,187,192,197],{},[123,178,179],{},[24,180,181],{},"Pytest",[123,183,184],{},[50,185,186],{},"pip install pytest",[123,188,189],{},[50,190,191],{},"test_*.py",[123,193,194],{},[50,195,196],{},"def test_* \u002F assert",[123,198,199],{},[50,200,201],{},"pytest",[99,203,204,209,212,217,222],{},[123,205,206],{},[24,207,208],{},"Go test",[123,210,211],{},"内置",[123,213,214],{},[50,215,216],{},"*_test.go",[123,218,219],{},[50,220,221],{},"func Test* \u002F t.Run",[123,223,224],{},[50,225,226],{},"go test .\u002F...",[38,228,230],{"id":229},"vitest-示例ai-生成后你-review","Vitest 示例（AI 生成后你 review）",[43,232,236],{"className":233,"code":234,"language":235,"meta":52,"style":52},"language-typescript shiki shiki-themes github-light github-dark","import { describe, it, expect, vi, afterEach } from 'vitest'\nimport { formatPrice } from '..\u002Fsrc\u002Futils\u002Fformat'\n\ndescribe('formatPrice', () => {\n  it('正常金额格式化', () => {\n    expect(formatPrice(1234.5)).toBe('¥1,234.50')\n  })\n  it('负数与 0', () => {\n    expect(formatPrice(0)).toBe('¥0.00')\n    expect(formatPrice(-5)).toBe('-¥5.00')\n  })\n  it('非法输入抛错', () => {\n    expect(() => formatPrice(NaN)).toThrow()\n    expect(() => formatPrice(undefined as any)).toThrow()\n  })\n})\n","typescript",[50,237,238,258,271,278,300,317,348,354,370,395,423,428,444,470,498,503],{"__ignoreMap":52},[239,240,243,247,251,254],"span",{"class":241,"line":242},"line",1,[239,244,246],{"class":245},"szBVR","import",[239,248,250],{"class":249},"sVt8B"," { describe, it, expect, vi, afterEach } ",[239,252,253],{"class":245},"from",[239,255,257],{"class":256},"sZZnC"," 'vitest'\n",[239,259,261,263,266,268],{"class":241,"line":260},2,[239,262,246],{"class":245},[239,264,265],{"class":249}," { formatPrice } ",[239,267,253],{"class":245},[239,269,270],{"class":256}," '..\u002Fsrc\u002Futils\u002Fformat'\n",[239,272,274],{"class":241,"line":273},3,[239,275,277],{"emptyLinePlaceholder":276},true,"\n",[239,279,281,285,288,291,294,297],{"class":241,"line":280},4,[239,282,284],{"class":283},"sScJk","describe",[239,286,287],{"class":249},"(",[239,289,290],{"class":256},"'formatPrice'",[239,292,293],{"class":249},", () ",[239,295,296],{"class":245},"=>",[239,298,299],{"class":249}," {\n",[239,301,303,306,308,311,313,315],{"class":241,"line":302},5,[239,304,305],{"class":283},"  it",[239,307,287],{"class":249},[239,309,310],{"class":256},"'正常金额格式化'",[239,312,293],{"class":249},[239,314,296],{"class":245},[239,316,299],{"class":249},[239,318,320,323,325,328,330,334,337,340,342,345],{"class":241,"line":319},6,[239,321,322],{"class":283},"    expect",[239,324,287],{"class":249},[239,326,327],{"class":283},"formatPrice",[239,329,287],{"class":249},[239,331,333],{"class":332},"sj4cs","1234.5",[239,335,336],{"class":249},")).",[239,338,339],{"class":283},"toBe",[239,341,287],{"class":249},[239,343,344],{"class":256},"'¥1,234.50'",[239,346,347],{"class":249},")\n",[239,349,351],{"class":241,"line":350},7,[239,352,353],{"class":249},"  })\n",[239,355,357,359,361,364,366,368],{"class":241,"line":356},8,[239,358,305],{"class":283},[239,360,287],{"class":249},[239,362,363],{"class":256},"'负数与 0'",[239,365,293],{"class":249},[239,367,296],{"class":245},[239,369,299],{"class":249},[239,371,373,375,377,379,381,384,386,388,390,393],{"class":241,"line":372},9,[239,374,322],{"class":283},[239,376,287],{"class":249},[239,378,327],{"class":283},[239,380,287],{"class":249},[239,382,383],{"class":332},"0",[239,385,336],{"class":249},[239,387,339],{"class":283},[239,389,287],{"class":249},[239,391,392],{"class":256},"'¥0.00'",[239,394,347],{"class":249},[239,396,398,400,402,404,406,409,412,414,416,418,421],{"class":241,"line":397},10,[239,399,322],{"class":283},[239,401,287],{"class":249},[239,403,327],{"class":283},[239,405,287],{"class":249},[239,407,408],{"class":245},"-",[239,410,411],{"class":332},"5",[239,413,336],{"class":249},[239,415,339],{"class":283},[239,417,287],{"class":249},[239,419,420],{"class":256},"'-¥5.00'",[239,422,347],{"class":249},[239,424,426],{"class":241,"line":425},11,[239,427,353],{"class":249},[239,429,431,433,435,438,440,442],{"class":241,"line":430},12,[239,432,305],{"class":283},[239,434,287],{"class":249},[239,436,437],{"class":256},"'非法输入抛错'",[239,439,293],{"class":249},[239,441,296],{"class":245},[239,443,299],{"class":249},[239,445,447,449,452,454,457,459,462,464,467],{"class":241,"line":446},13,[239,448,322],{"class":283},[239,450,451],{"class":249},"(() ",[239,453,296],{"class":245},[239,455,456],{"class":283}," formatPrice",[239,458,287],{"class":249},[239,460,461],{"class":332},"NaN",[239,463,336],{"class":249},[239,465,466],{"class":283},"toThrow",[239,468,469],{"class":249},"()\n",[239,471,473,475,477,479,481,483,486,489,492,494,496],{"class":241,"line":472},14,[239,474,322],{"class":283},[239,476,451],{"class":249},[239,478,296],{"class":245},[239,480,456],{"class":283},[239,482,287],{"class":249},[239,484,485],{"class":332},"undefined",[239,487,488],{"class":245}," as",[239,490,491],{"class":332}," any",[239,493,336],{"class":249},[239,495,466],{"class":283},[239,497,469],{"class":249},[239,499,501],{"class":241,"line":500},15,[239,502,353],{"class":249},[239,504,506],{"class":241,"line":505},16,[239,507,508],{"class":249},"})\n",[38,510,512],{"id":511},"pytest-示例","Pytest 示例",[43,514,518],{"className":515,"code":516,"language":517,"meta":52,"style":52},"language-python shiki shiki-themes github-light github-dark","import pytest\nfrom utils import slugify\n\ndef test_slugify_basic():\n    assert slugify(\"Hello World\") == \"hello-world\"\n\ndef test_slugify_chinese():\n    assert \"python\" in slugify(\"Python 编程\")\n\ndef test_slugify_empty():\n    assert slugify(\"\") == \"\"\n","python",[50,519,520,527,539,543,554,574,578,587,604,608,617],{"__ignoreMap":52},[239,521,522,524],{"class":241,"line":242},[239,523,246],{"class":245},[239,525,526],{"class":249}," pytest\n",[239,528,529,531,534,536],{"class":241,"line":260},[239,530,253],{"class":245},[239,532,533],{"class":249}," utils ",[239,535,246],{"class":245},[239,537,538],{"class":249}," slugify\n",[239,540,541],{"class":241,"line":273},[239,542,277],{"emptyLinePlaceholder":276},[239,544,545,548,551],{"class":241,"line":280},[239,546,547],{"class":245},"def",[239,549,550],{"class":283}," test_slugify_basic",[239,552,553],{"class":249},"():\n",[239,555,556,559,562,565,568,571],{"class":241,"line":302},[239,557,558],{"class":245},"    assert",[239,560,561],{"class":249}," slugify(",[239,563,564],{"class":256},"\"Hello World\"",[239,566,567],{"class":249},") ",[239,569,570],{"class":245},"==",[239,572,573],{"class":256}," \"hello-world\"\n",[239,575,576],{"class":241,"line":319},[239,577,277],{"emptyLinePlaceholder":276},[239,579,580,582,585],{"class":241,"line":350},[239,581,547],{"class":245},[239,583,584],{"class":283}," test_slugify_chinese",[239,586,553],{"class":249},[239,588,589,591,594,597,599,602],{"class":241,"line":356},[239,590,558],{"class":245},[239,592,593],{"class":256}," \"python\"",[239,595,596],{"class":245}," in",[239,598,561],{"class":249},[239,600,601],{"class":256},"\"Python 编程\"",[239,603,347],{"class":249},[239,605,606],{"class":241,"line":372},[239,607,277],{"emptyLinePlaceholder":276},[239,609,610,612,615],{"class":241,"line":397},[239,611,547],{"class":245},[239,613,614],{"class":283}," test_slugify_empty",[239,616,553],{"class":249},[239,618,619,621,623,626,628,630],{"class":241,"line":425},[239,620,558],{"class":245},[239,622,561],{"class":249},[239,624,625],{"class":256},"\"\"",[239,627,567],{"class":249},[239,629,570],{"class":245},[239,631,632],{"class":256}," \"\"\n",[38,634,636],{"id":635},"go-test-示例","Go test 示例",[43,638,642],{"className":639,"code":640,"language":641,"meta":52,"style":52},"language-go shiki shiki-themes github-light github-dark","func TestFormatPrice(t *testing.T) {\n    got := formatPrice(1234.5)\n    want := \"¥1,234.50\"\n    if got != want {\n        t.Errorf(\"got %q want %q\", got, want)\n    }\n}\n","go",[50,643,644,673,689,699,713,740,745],{"__ignoreMap":52},[239,645,646,649,652,654,658,661,664,667,670],{"class":241,"line":242},[239,647,648],{"class":245},"func",[239,650,651],{"class":283}," TestFormatPrice",[239,653,287],{"class":249},[239,655,657],{"class":656},"s4XuR","t",[239,659,660],{"class":245}," *",[239,662,663],{"class":283},"testing",[239,665,666],{"class":249},".",[239,668,669],{"class":283},"T",[239,671,672],{"class":249},") {\n",[239,674,675,678,681,683,685,687],{"class":241,"line":260},[239,676,677],{"class":249},"    got ",[239,679,680],{"class":245},":=",[239,682,456],{"class":283},[239,684,287],{"class":249},[239,686,333],{"class":332},[239,688,347],{"class":249},[239,690,691,694,696],{"class":241,"line":273},[239,692,693],{"class":249},"    want ",[239,695,680],{"class":245},[239,697,698],{"class":256}," \"¥1,234.50\"\n",[239,700,701,704,707,710],{"class":241,"line":280},[239,702,703],{"class":245},"    if",[239,705,706],{"class":249}," got ",[239,708,709],{"class":245},"!=",[239,711,712],{"class":249}," want {\n",[239,714,715,718,721,723,726,729,732,734,737],{"class":241,"line":302},[239,716,717],{"class":249},"        t.",[239,719,720],{"class":283},"Errorf",[239,722,287],{"class":249},[239,724,725],{"class":256},"\"got ",[239,727,728],{"class":332},"%q",[239,730,731],{"class":256}," want ",[239,733,728],{"class":332},[239,735,736],{"class":256},"\"",[239,738,739],{"class":249},", got, want)\n",[239,741,742],{"class":241,"line":319},[239,743,744],{"class":249},"    }\n",[239,746,747],{"class":241,"line":350},[239,748,749],{"class":249},"}\n",[16,751,753],{"id":752},"让-ai-自查测试质量review-提示词","让 AI 自查测试质量（review 提示词）",[20,755,756],{},"生成后别直接 Accept，让 AI 当 reviewer：",[43,758,761],{"className":759,"code":760,"language":48},[46],"review 刚才生成的测试，检查：\n1. 有没有「假覆盖」——只断言不抛错但没验证返回值\n2. 边界是否真覆盖（不是只测 happy path）\n3. mock 是否过度（mock 掉了被测逻辑本身）\n4. 用例之间是否有依赖（必须能独立运行）\n给出问题清单并修复。\n",[50,762,760],{"__ignoreMap":52},[764,765,766],"blockquote",{},[20,767,768,771,772,775],{},[24,769,770],{},"AIHO 观点","：AI 生成的测试最大的陷阱是「假覆盖」——",[50,773,774],{},"expect(true).toBe(true)"," 或只断言「不抛异常」。CI 上绿了，其实啥也没测。强制它自查「有没有验证返回值」能过滤掉大半垃圾用例。",[16,777,778],{"id":778},"覆盖率门槛设置",[93,780,781,794],{},[96,782,783],{},[99,784,785,788,791],{},[102,786,787],{},"阶段",[102,789,790],{},"建议门槛",[102,792,793],{},"理由",[118,795,796,807,818],{},[99,797,798,801,804],{},[123,799,800],{},"新项目起步",[123,802,803],{},"60%",[123,805,806],{},"别一上来卡太死，先有再说",[99,808,809,812,815],{},[123,810,811],{},"稳定模块",[123,813,814],{},"80%",[123,816,817],{},"核心逻辑达标",[99,819,820,823,826],{},[123,821,822],{},"关键路径（支付\u002F权限）",[123,824,825],{},"90%+",[123,827,828],{},"出错代价高",[20,830,831,832,835,836,835,839,842],{},"用 ",[50,833,834],{},"vitest --coverage"," \u002F ",[50,837,838],{},"pytest --cov",[50,840,841],{},"go test -cover"," 看实际数字，逐步提。",[16,844,846],{"id":845},"ci-上跑通的踩坑","CI 上跑通的踩坑",[848,849,850,857,867,880,886],"ol",{},[851,852,853,856],"li",{},[24,854,855],{},"测试依赖执行顺序","：AI 偶尔写出有状态的测试（共享全局变量），单独跑过、CI 并行跑挂。要求「每个用例独立」。",[851,858,859,862,863,866],{},[24,860,861],{},"快照测试滥用","：AI 爱用 ",[50,864,865],{},"toMatchSnapshot()","，但快照一旦生成就永远「通过」。关键逻辑用显式断言。",[851,868,869,91,872,875,876,879],{},[24,870,871],{},"假定时器未清理",[50,873,874],{},"vi.useFakeTimers()"," 后忘了 ",[50,877,878],{},"afterEach(vi.useRealTimers)","，污染下一个测试。",[851,881,882,885],{},[24,883,884],{},"覆盖率门槛设太高","：新项目直接设 80% 会卡住 CI。建议先 60% 起步，逐步提。",[851,887,888,891,892,897],{},[24,889,890],{},"AI 改了源码来「让测试通过」","：review 时注意它是否偷偷放宽了函数逻辑。接 ",[893,894,896],"a",{"href":895},"\u002Fcoding\u002Freview\u002Fcoderabbit.html","CodeRabbit"," 在 PR 卡一道质量门更稳。",[16,899,901],{"id":900},"真实案例从-0-到-82-覆盖","真实案例：从 0 到 82% 覆盖",[20,903,904],{},"一个 2000 行 TS 工具库，原本 0 测试。用三段式提示词分批生成：",[906,907,908,911,914,917],"ul",{},[851,909,910],{},"第 1 批：纯函数（format\u002Fparse）→ 覆盖 95%",[851,912,913],{},"第 2 批：带 IO 的函数（fetch 包装）→ mock 后覆盖 80%",[851,915,916],{},"第 3 批：边界与异常 → 总覆盖 82%",[851,918,919],{},"AI 自查修掉 6 处「假覆盖」用例",[20,921,922],{},"总耗时约 2 小时（含 review），人力约为纯手写的 1\u002F4。",[16,924,925],{"id":925},"相关阅读",[906,927,928,942,949,956],{},[851,929,930,931,935,936,935,940],{},"工具卡：",[893,932,934],{"href":933},"\u002Fcoding\u002Fide\u002Fcursor.html","Cursor"," ｜ ",[893,937,939],{"href":938},"\u002Fcoding\u002Fcli\u002Fclaude-code.html","Claude Code",[893,941,896],{"href":895},[851,943,944,945],{},"评测：",[893,946,948],{"href":947},"\u002Freview\u002Fchina-copilot-shootout.html","国产 Copilot 四强横评（单测生成维度）",[851,950,951,952],{},"方案：",[893,953,955],{"href":954},"\u002Fplaybook\u002Freview\u002Fai-code-review-workflow.html","AI 代码评审工作流",[851,957,958,959],{},"Prompt：",[893,960,962],{"href":961},"\u002Fprompts\u002Ftest-generation.html","测试生成提示词",[764,964,965],{},[20,966,967],{},"来源说明：本文基于 Vitest \u002F Pytest \u002F Go testing 官方文档、CodeRabbit 评审能力说明及 AIHO 编辑部实践归纳。框架版本迭代快，命令以官方最新文档为准。",[969,970,971],"style",{},"html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s4XuR, html code.shiki .s4XuR{--shiki-default:#E36209;--shiki-dark:#FFAB70}",{"title":52,"searchDepth":273,"depth":273,"links":973},[974,975,980,985,986,987,988,989],{"id":18,"depth":260,"text":18},{"id":30,"depth":260,"text":30,"children":976},[977,978,979],{"id":40,"depth":273,"text":41},{"id":58,"depth":273,"text":59},{"id":71,"depth":273,"text":72},{"id":84,"depth":260,"text":84,"children":981},[982,983,984],{"id":229,"depth":273,"text":230},{"id":511,"depth":273,"text":512},{"id":635,"depth":273,"text":636},{"id":752,"depth":260,"text":753},{"id":778,"depth":260,"text":778},{"id":845,"depth":260,"text":846},{"id":900,"depth":260,"text":901},{"id":925,"depth":260,"text":925},null,"用 AI 写单元测试 2026 实战：三段式提示词（覆盖目标 → 边界条件 → mock 策略）、Vitest \u002F Jest \u002F Pytest \u002F Go test 框架适配、让 AI 自查测试质量的 review 提示词，以及 CI 跑通的踩坑。","md","2026-08-02",{"verdict":995,"sources":996},"AI 写单测已经从「能生成」到「能达标」。关键是给三段式提示词（覆盖目标 + 边界条件 + mock 策略），并让 AI 自查测试质量，而不是无脑 Accept。框架差异主要在断言风格，提示词结构通用。",[997,1000,1003,1006],{"title":998,"url":999},"Vitest 官方文档","https:\u002F\u002Fvitest.dev",{"title":1001,"url":1002},"Pytest 官方文档","https:\u002F\u002Fdocs.pytest.org",{"title":1004,"url":1005},"Go testing 官方文档","https:\u002F\u002Fgo.dev\u002Fpkg\u002Ftesting",{"title":1007,"url":1008},"CodeRabbit 代码评审（AI 测试生成）","https:\u002F\u002Fcoderabbit.ai","\u002Fplaybook\u002Fai-coding\u002Fwrite-tests-with-ai",[1011,1012,1013],"coding\u002Fide\u002Fcursor","coding\u002Fcli\u002Fclaude-code","coding\u002Freview\u002Fcoderabbit",{"title":11,"description":991},"用 AI 写单元测试 2026：三段式提示词、Vitest\u002FJest\u002FPytest\u002FGo test 适配与 CI 跑通","playbook\u002Fai-coding\u002Fwrite-tests-with-ai",[1018,1019,1020,201,1021,1022],"单元测试","ai","vitest","工作流","测试","RXRVbbJpJOGgq4FDCEcoHbv_nUdn7ou6COBkoFOpBo8",[1025,2372,2997],{"id":1026,"title":939,"alternatives":1027,"api_compatible":1031,"body":1033,"category":2282,"chinese_friendly":273,"cover":2283,"description":2284,"domestic":2285,"extension":992,"faq":990,"free":2285,"github":2236,"languages":2286,"lastVerified":993,"meta":2288,"models":2289,"navigation":276,"notSuitable":2293,"opensource":2285,"path":2297,"pillar":2298,"platforms":2299,"priceTable":2303,"pricing":2323,"published":2324,"relatedPlaybooks":2325,"relatedReviews":2332,"score":2340,"self_host":2285,"seo":2341,"seoTitle":2342,"slug":1012,"sources":2343,"stem":2356,"suitable":2357,"tagline":2363,"tags":2364,"updated":2369,"verdict":2370,"website":2222,"__hash__":2371},"tools\u002Ftools\u002Fcoding\u002Fcli\u002Fclaude-code.md",[1028,1029,1030],"coding\u002Fcli\u002Fcodex","coding\u002Fcli\u002Faider","coding\u002Fcli\u002Fcline",[1032],"anthropic",{"type":13,"value":1034,"toc":2265},[1035,1039,1090,1095,1098,1102,1112,1143,1146,1150,1158,1193,1209,1213,1216,1372,1390,1394,1405,1479,1482,1486,1500,1503,1518,1600,1603,1620,1633,1641,1645,1800,1803,1848,1851,2010,2015,2029,2034,2054,2057,2153,2155,2212,2215,2254,2262],[16,1036,1038],{"id":1037},"tldr","TL;DR",[1040,1041,1046,1056,1067],"div",{"className":1042},[1043,1044,1045],"card","p-5","my-4",[20,1047,1048,1051,1052,1055],{},[24,1049,1050],{},"一句话："," Anthropic 官方 CLI Agent，终端原生，长任务执行能力是目前体感最稳的一档。装好后在任何项目根目录跑 ",[50,1053,1054],{},"claude","，用自然语言让它读代码、改文件、跑测试、提交 commit——全自动。",[20,1057,1058,1059,1062,1063,1066],{},"最大价值是 ",[24,1060,1061],{},"不绑死 IDE","——VS Code、JetBrains、Vim、Emacs、Neovim 全能用，远程 SSH 也行。代价是 ",[24,1064,1065],{},"国内三大门槛","：账号要海外手机、支付要海外卡、网络要稳定代理。",[20,1068,1069,1072,1073,1077,1078,1081,1082,1085,1086,1089],{},[24,1070,1071],{},"2026-07 最新进展","：核心模型已升级为 ",[893,1074,1076],{"href":1075},"\u002Fmodels\u002Fclaude-sonnet-5.html","Claude Sonnet 5","（复杂任务用 Opus 4.8），1M 上下文；新增 ",[50,1079,1080],{},"\u002Ffork","（复制会话到后台并行）、",[50,1083,1084],{},"\u002Fsubtask","（取代内联子 agent）；会话级上限（WebSearch 200 次、子 agent 200 个）；MCP 调用超 2 分钟自动转后台。",[24,1087,1088],{},"Claude Code for Visual Studio","（7-08）成为首个正式接入调试器（断点\u002F运行时变量\u002F调用栈）的 AI 编程工具。当前版本 v2.1.201–206。Claude Code 约占 AI 编程赛道一半市场，ARR 约 $2.5B。",[764,1091,1092],{},[20,1093,1094],{},"来源说明：本文基于 code.claude.com 官方文档、Anthropic 定价页面、第三方独立评测（laozhang.ai \u002F explainx.ai \u002F computingforgeeks.com）综合整理。Anthropic 模型版本迭代快，命令和价格请以最新官方文档为准。",[16,1096,1097],{"id":1097},"核心特性",[38,1099,1101],{"id":1100},"终端原生的-agent-体验","终端原生的 Agent 体验",[20,1103,1104,1105,1108,1109,1111],{},"不像 Cursor \u002F Windsurf 那种\"AI IDE\"，Claude Code 是个 ",[24,1106,1107],{},"CLI 工具","——在任何编辑器旁边开个终端，跑 ",[50,1110,1054],{},"，就进入了一个能读你整个 codebase 的对话环境。",[43,1113,1117],{"className":1114,"code":1115,"language":1116,"meta":52,"style":52},"language-bash shiki shiki-themes github-light github-dark","cd your-project\nclaude                          # 进入交互模式\n> 帮我把这个 Express 项目迁移到 Fastify，写完之后跑测试确认通过\n","bash",[50,1118,1119,1127,1135],{"__ignoreMap":52},[239,1120,1121,1124],{"class":241,"line":242},[239,1122,1123],{"class":332},"cd",[239,1125,1126],{"class":256}," your-project\n",[239,1128,1129,1131],{"class":241,"line":260},[239,1130,1054],{"class":283},[239,1132,1134],{"class":1133},"sJ8bj","                          # 进入交互模式\n",[239,1136,1137,1140],{"class":241,"line":273},[239,1138,1139],{"class":245},">",[239,1141,1142],{"class":249}," 帮我把这个 Express 项目迁移到 Fastify，写完之后跑测试确认通过\n",[20,1144,1145],{},"它会自动：列出相关文件 → 给出计划 → 等你按回车确认 → 一次改多个文件 → 跑测试 → 报告结果。整个过程你可以在另一个窗口干别的，Claude Code 不抢编辑器焦点。",[38,1147,1149],{"id":1148},"子代理sub-agents-并行任务","子代理（Sub-agents）+ 并行任务",[20,1151,1152,1153,1157],{},"Claude Code 2.x 引入了 ",[893,1154,1156],{"href":1155},"\u002Fwiki\u002Fai-agent.html","子代理"," 机制：主对话可以派发独立的子任务到隔离 context 中跑，结果摘要返回主线。典型场景：",[43,1159,1161],{"className":1114,"code":1160,"language":1116,"meta":52,"style":52},"\u002Fsubtask            # 派发独立子任务（2026-07 起取代内联子 agent）\n\u002Ffork               # 复制当前会话到后台并行推进\n\u002Fagents             # 管理子代理\n\u002Ftasks              # 列出后台运行的子代理\n",[50,1162,1163,1170,1177,1185],{"__ignoreMap":52},[239,1164,1165,1167],{"class":241,"line":242},[239,1166,1084],{"class":283},[239,1168,1169],{"class":1133},"            # 派发独立子任务（2026-07 起取代内联子 agent）\n",[239,1171,1172,1174],{"class":241,"line":260},[239,1173,1080],{"class":283},[239,1175,1176],{"class":1133},"               # 复制当前会话到后台并行推进\n",[239,1178,1179,1182],{"class":241,"line":273},[239,1180,1181],{"class":283},"\u002Fagents",[239,1183,1184],{"class":1133},"             # 管理子代理\n",[239,1186,1187,1190],{"class":241,"line":280},[239,1188,1189],{"class":283},"\u002Ftasks",[239,1191,1192],{"class":1133},"              # 列出后台运行的子代理\n",[20,1194,1195,1196,1202,1203,1205,1206,1208],{},"据 ",[893,1197,1201],{"href":1198,"rel":1199},"https:\u002F\u002Fcomputingforgeeks.com\u002Fclaude-code-cheat-sheet",[1200],"nofollow","computingforgeeks.com 2026 cheat sheet"," 整理，子代理让\"一边改前端，一边改后端\"这种并行操作不会污染主对话上下文。2026-07 更新后，",[50,1204,1084],{}," 取代了旧的内联子 agent 写法，",[50,1207,1080],{}," 则能把整个会话复制一份丢到后台继续跑；会话级新增上限（WebSearch 200 次、子 agent 200 个），MCP 调用超 2 分钟自动转后台执行。",[38,1210,1212],{"id":1211},"slash-命令生产力关键","Slash 命令（生产力关键）",[20,1214,1215],{},"Claude Code 内置了一套 slash 命令，是日常使用的核心：",[93,1217,1218,1228],{},[96,1219,1220],{},[99,1221,1222,1225],{},[102,1223,1224],{},"命令",[102,1226,1227],{},"用途",[118,1229,1230,1244,1254,1268,1278,1288,1298,1308,1318,1328,1338,1348,1358],{},[99,1231,1232,1237],{},[123,1233,1234],{},[50,1235,1236],{},"\u002Finit",[123,1238,1239,1240,1243],{},"第一次进入仓库时跑，生成 ",[50,1241,1242],{},"CLAUDE.md","（项目记忆）",[99,1245,1246,1251],{},[123,1247,1248],{},[50,1249,1250],{},"\u002Fmemory",[123,1252,1253],{},"编辑长期记忆",[99,1255,1256,1261],{},[123,1257,1258],{},[50,1259,1260],{},"\u002Fclear",[123,1262,1263,1264,1267],{},"清空当前对话，重新开始（",[24,1265,1266],{},"最被低估的命令","）",[99,1269,1270,1275],{},[123,1271,1272],{},[50,1273,1274],{},"\u002Fcompact",[123,1276,1277],{},"长对话压缩，挽救快爆炸的 context window",[99,1279,1280,1285],{},[123,1281,1282],{},[50,1283,1284],{},"\u002Fcontext",[123,1286,1287],{},"显示当前 context 用量",[99,1289,1290,1295],{},[123,1291,1292],{},[50,1293,1294],{},"\u002Fplan",[123,1296,1297],{},"切到 plan 模式（只规划不执行）",[99,1299,1300,1305],{},[123,1301,1302],{},[50,1303,1304],{},"\u002Fmodel",[123,1306,1307],{},"切换模型（Opus \u002F Sonnet \u002F Haiku）",[99,1309,1310,1315],{},[123,1311,1312],{},[50,1313,1314],{},"\u002Fdiff",[123,1316,1317],{},"看本轮所有改动",[99,1319,1320,1325],{},[123,1321,1322],{},[50,1323,1324],{},"\u002Fcode-review",[123,1326,1327],{},"对 diff 跑代码审查",[99,1329,1330,1335],{},[123,1331,1332],{},[50,1333,1334],{},"\u002Frewind",[123,1336,1337],{},"回滚到任意 checkpoint（代码 + 对话）",[99,1339,1340,1345],{},[123,1341,1342],{},[50,1343,1344],{},"\u002Fmcp",[123,1346,1347],{},"管理 MCP 服务器",[99,1349,1350,1355],{},[123,1351,1352],{},[50,1353,1354],{},"\u002Fdoctor",[123,1356,1357],{},"排查环境问题",[99,1359,1360,1369],{},[123,1361,1362,1365,1366],{},[50,1363,1364],{},"\u002Fresume"," ",[50,1367,1368],{},"\u002Fbranch",[123,1370,1371],{},"回到 \u002F fork 历史对话",[20,1373,1374,1379,1380,1382,1383,1385,1386,1389],{},[893,1375,1378],{"href":1376,"rel":1377},"https:\u002F\u002Flearn-prompting.fr\u002Fblog\u002Fclaude-code-slash-commands-reference",[1200],"learn-prompting.fr 2026-04 总结","：成熟团队最常用的三个是 ",[50,1381,1274],{},"（每 20-30 分钟一次防止 context drift）、",[50,1384,1260],{},"（新任务开新会话）、自定义命令（写在 ",[50,1387,1388],{},".claude\u002Fcommands\u002F"," 提交进 git）。",[38,1391,1393],{"id":1392},"mcp-集成一等公民","MCP 集成（一等公民）",[20,1395,1396,1400,1401,1404],{},[893,1397,1399],{"href":1398},"\u002Fwiki\u002Fmcp.html","MCP"," 是 Anthropic 自家协议，Claude Code 是 MCP 支持最完整的客户端。配置一次 ",[50,1402,1403],{},".mcp.json","，Claude Code 就能在对话里调任意 MCP server 暴露的 tool：",[43,1406,1410],{"className":1407,"code":1408,"language":1409,"meta":52,"style":52},"language-json shiki shiki-themes github-light github-dark","{\n  \"mcpServers\": {\n    \"postgres\": {\n      \"command\": \"npx\",\n      \"args\": [\"@modelcontextprotocol\u002Fserver-postgres\", \"postgresql:\u002F\u002F...\"]\n    }\n  }\n}\n","json",[50,1411,1412,1417,1425,1432,1446,1466,1470,1475],{"__ignoreMap":52},[239,1413,1414],{"class":241,"line":242},[239,1415,1416],{"class":249},"{\n",[239,1418,1419,1422],{"class":241,"line":260},[239,1420,1421],{"class":332},"  \"mcpServers\"",[239,1423,1424],{"class":249},": {\n",[239,1426,1427,1430],{"class":241,"line":273},[239,1428,1429],{"class":332},"    \"postgres\"",[239,1431,1424],{"class":249},[239,1433,1434,1437,1440,1443],{"class":241,"line":280},[239,1435,1436],{"class":332},"      \"command\"",[239,1438,1439],{"class":249},": ",[239,1441,1442],{"class":256},"\"npx\"",[239,1444,1445],{"class":249},",\n",[239,1447,1448,1451,1454,1457,1460,1463],{"class":241,"line":302},[239,1449,1450],{"class":332},"      \"args\"",[239,1452,1453],{"class":249},": [",[239,1455,1456],{"class":256},"\"@modelcontextprotocol\u002Fserver-postgres\"",[239,1458,1459],{"class":249},", ",[239,1461,1462],{"class":256},"\"postgresql:\u002F\u002F...\"",[239,1464,1465],{"class":249},"]\n",[239,1467,1468],{"class":241,"line":319},[239,1469,744],{"class":249},[239,1471,1472],{"class":241,"line":350},[239,1473,1474],{"class":249},"  }\n",[239,1476,1477],{"class":241,"line":356},[239,1478,749],{"class":249},[20,1480,1481],{},"之后你就能直接说\"查一下 users 表里最近 7 天注册的人数\"——Claude Code 自动通过 MCP 跑 SQL，结果返回对话里继续讨论。",[38,1483,1485],{"id":1484},"后台-远程模式","后台 \u002F 远程模式",[20,1487,1488,1491,1492,1495,1496,1499],{},[50,1489,1490],{},"\u002Fbackground"," 让当前会话脱离终端，作为后台 agent 继续跑；",[50,1493,1494],{},"\u002Fteleport"," 把网页端会话拉到本地终端继续；",[50,1497,1498],{},"\u002Fremote-control"," 从手机或另一台机器接管这台机器的 Claude Code 会话。这套体系是面向\"agent 长时间跑\"设计的，区别于 Cursor 的\"实时交互\"。",[16,1501,1502],{"id":1502},"价格与运行成本",[20,1504,1505,1506,1511,1512,1517],{},"根据 ",[893,1507,1510],{"href":1508,"rel":1509},"https:\u002F\u002Fwww.explainx.ai\u002Fblog\u002Fclaude-code-pricing-guide-2026",[1200],"explainx.ai 2026-06 评测"," 和 ",[893,1513,1516],{"href":1514,"rel":1515},"https:\u002F\u002Fclaude.com\u002Fpricing",[1200],"Anthropic 官方定价"," 整理：",[93,1519,1520,1533],{},[96,1521,1522],{},[99,1523,1524,1527,1530],{},[102,1525,1526],{},"路径",[102,1528,1529],{},"价格",[102,1531,1532],{},"适用场景",[118,1534,1535,1548,1561,1574,1587],{},[99,1536,1537,1542,1545],{},[123,1538,1539],{},[24,1540,1541],{},"BYOK（自带 API key）",[123,1543,1544],{},"按 token 计费",[123,1546,1547],{},"全自由，但单月烧到 $500+ 也常见",[99,1549,1550,1555,1558],{},[123,1551,1552],{},[24,1553,1554],{},"Pro",[123,1556,1557],{},"$20\u002F月（年付 ~$17）",[123,1559,1560],{},"个人开发者，每天 1-4 小时",[99,1562,1563,1568,1571],{},[123,1564,1565],{},[24,1566,1567],{},"Max 5x",[123,1569,1570],{},"$100\u002F月",[123,1572,1573],{},"重度用户 + Opus 模型访问",[99,1575,1576,1581,1584],{},[123,1577,1578],{},[24,1579,1580],{},"Max 20x",[123,1582,1583],{},"$200\u002F月",[123,1585,1586],{},"8h+ agentic 工作流 \u002F 团队共享",[99,1588,1589,1594,1597],{},[123,1590,1591],{},[24,1592,1593],{},"Team Premium",[123,1595,1596],{},"$100\u002Fseat 年付 \u002F $125 月付",[123,1598,1599],{},"团队，含管理",[20,1601,1602],{},"API token 价格（2026-07 公开数据）：",[906,1604,1605,1611,1617],{},[851,1606,1607,1610],{},[24,1608,1609],{},"Sonnet 5","：促销 input $2 \u002F output $10（至 2026-08-31），之后标准 $3 \u002F $15 per 1M token",[851,1612,1613,1616],{},[24,1614,1615],{},"Opus 4.8","：input $5 \u002F output $25 per 1M token（已大幅低于早期 Opus 4 的 $15\u002F$75）",[851,1618,1619],{},"Haiku 4.x：input $1 \u002F output $5 per 1M token",[764,1621,1622],{},[20,1623,1624,1625,1628,1629,1632],{},"SWE-bench Verified 参考：Opus 4.8 官方提交 ",[24,1626,1627],{},"87.6%","、Sonnet 5 ",[24,1630,1631],{},"80.8%","（Claude Code 内实测），是长任务编程能力的第一梯队。注意 Sonnet 5 换了新分词器，同文本 token 数约 +30%，核算成本要按实际 token 量。",[20,1634,1635,1640],{},[893,1636,1639],{"href":1637,"rel":1638},"https:\u002F\u002Fwww.ksred.com\u002Fclaude-code-pricing-guide-which-plan-actually-saves-you-money",[1200],"ksred 博客真实使用日志","：作者 8 个月用 ~100 亿 token，API 价折合 $15,000+，订阅实际只花 $800——订阅模式对重度用户极度划算，但前提是能搞定支付。",[16,1642,1644],{"id":1643},"上手-5-分钟","上手 5 分钟",[43,1646,1648],{"className":1114,"code":1647,"language":1116,"meta":52,"style":52},"# macOS \u002F Linux \u002F Windows (WSL)\ncurl -fsSL https:\u002F\u002Fclaude.ai\u002Finstall.sh | bash\n\n# macOS 用 Homebrew\nbrew install --cask claude-code\n\n# Windows PowerShell\nirm https:\u002F\u002Fclaude.ai\u002Finstall.ps1 | iex\n\n# 验证 + 登录\nclaude --version\nclaude auth login          # 走浏览器 OAuth，绑定 Pro \u002F Max 订阅\n# 或用 API key\nexport ANTHROPIC_API_KEY=sk-ant-...\n\n# 进项目，启动\ncd your-project\nclaude \u002Finit               # 生成 CLAUDE.md\nclaude                     # 进入交互模式\n",[50,1649,1650,1655,1672,1676,1681,1695,1699,1704,1717,1721,1726,1733,1746,1751,1765,1769,1774,1781,1792],{"__ignoreMap":52},[239,1651,1652],{"class":241,"line":242},[239,1653,1654],{"class":1133},"# macOS \u002F Linux \u002F Windows (WSL)\n",[239,1656,1657,1660,1663,1666,1669],{"class":241,"line":260},[239,1658,1659],{"class":283},"curl",[239,1661,1662],{"class":332}," -fsSL",[239,1664,1665],{"class":256}," https:\u002F\u002Fclaude.ai\u002Finstall.sh",[239,1667,1668],{"class":245}," |",[239,1670,1671],{"class":283}," bash\n",[239,1673,1674],{"class":241,"line":273},[239,1675,277],{"emptyLinePlaceholder":276},[239,1677,1678],{"class":241,"line":280},[239,1679,1680],{"class":1133},"# macOS 用 Homebrew\n",[239,1682,1683,1686,1689,1692],{"class":241,"line":302},[239,1684,1685],{"class":283},"brew",[239,1687,1688],{"class":256}," install",[239,1690,1691],{"class":332}," --cask",[239,1693,1694],{"class":256}," claude-code\n",[239,1696,1697],{"class":241,"line":319},[239,1698,277],{"emptyLinePlaceholder":276},[239,1700,1701],{"class":241,"line":350},[239,1702,1703],{"class":1133},"# Windows PowerShell\n",[239,1705,1706,1709,1712,1714],{"class":241,"line":356},[239,1707,1708],{"class":283},"irm",[239,1710,1711],{"class":256}," https:\u002F\u002Fclaude.ai\u002Finstall.ps1",[239,1713,1668],{"class":245},[239,1715,1716],{"class":283}," iex\n",[239,1718,1719],{"class":241,"line":372},[239,1720,277],{"emptyLinePlaceholder":276},[239,1722,1723],{"class":241,"line":397},[239,1724,1725],{"class":1133},"# 验证 + 登录\n",[239,1727,1728,1730],{"class":241,"line":425},[239,1729,1054],{"class":283},[239,1731,1732],{"class":332}," --version\n",[239,1734,1735,1737,1740,1743],{"class":241,"line":430},[239,1736,1054],{"class":283},[239,1738,1739],{"class":256}," auth",[239,1741,1742],{"class":256}," login",[239,1744,1745],{"class":1133},"          # 走浏览器 OAuth，绑定 Pro \u002F Max 订阅\n",[239,1747,1748],{"class":241,"line":446},[239,1749,1750],{"class":1133},"# 或用 API key\n",[239,1752,1753,1756,1759,1762],{"class":241,"line":472},[239,1754,1755],{"class":245},"export",[239,1757,1758],{"class":249}," ANTHROPIC_API_KEY",[239,1760,1761],{"class":245},"=",[239,1763,1764],{"class":249},"sk-ant-...\n",[239,1766,1767],{"class":241,"line":500},[239,1768,277],{"emptyLinePlaceholder":276},[239,1770,1771],{"class":241,"line":505},[239,1772,1773],{"class":1133},"# 进项目，启动\n",[239,1775,1777,1779],{"class":241,"line":1776},17,[239,1778,1123],{"class":332},[239,1780,1126],{"class":256},[239,1782,1784,1786,1789],{"class":241,"line":1783},18,[239,1785,1054],{"class":283},[239,1787,1788],{"class":256}," \u002Finit",[239,1790,1791],{"class":1133},"               # 生成 CLAUDE.md\n",[239,1793,1795,1797],{"class":241,"line":1794},19,[239,1796,1054],{"class":283},[239,1798,1799],{"class":1133},"                     # 进入交互模式\n",[16,1801,1802],{"id":1802},"国内使用注意事项",[848,1804,1805,1811,1817,1823],{},[851,1806,1807,1810],{},[24,1808,1809],{},"账号","：注册 claude.ai 需要海外手机号（Google Voice \u002F Twilio 可，国内号被封死）",[851,1812,1813,1816],{},[24,1814,1815],{},"支付","：Pro \u002F Max 订阅只收海外信用卡（MasterCard \u002F Visa）+ 海外账单地址。第三方平台（如老张 \u002F DMXAPI）可用支付宝走 API 代理，但是 BYOK 模式",[851,1818,1819,1822],{},[24,1820,1821],{},"网络","：终端 OAuth 流程对代理稳定性要求高，掉线会反复弹浏览器",[851,1824,1825,1828,1829,1833,1834,1838,1839,835,1843,1847],{},[24,1826,1827],{},"替代路径","：用 ",[893,1830,1832],{"href":1831},"\u002Fcoding\u002Fcli\u002Faider.html","Aider"," 或 ",[893,1835,1837],{"href":1836},"\u002Fcoding\u002Fcli\u002Fcline.html","Cline"," 接 ",[893,1840,1842],{"href":1841},"\u002Fmodels\u002Fdeepseek-v3.html","DeepSeek-V3",[893,1844,1846],{"href":1845},"\u002Fmodels\u002Fglm-5.2.html","GLM-5.2"," 是国内最经济的\"Claude Code 平替\"思路",[16,1849,1850],{"id":1850},"与同类怎么选",[93,1852,1853,1876],{},[96,1854,1855],{},[99,1856,1857,1860,1862,1866,1872],{},[102,1858,1859],{},"维度",[102,1861,939],{},[102,1863,1864],{},[893,1865,934],{"href":933},[102,1867,1868],{},[893,1869,1871],{"href":1870},"\u002Fcoding\u002Fcli\u002Fcodex.html","Codex CLI",[102,1873,1874],{},[893,1875,1832],{"href":1831},[118,1877,1878,1894,1910,1928,1950,1964,1978,1995],{},[99,1879,1880,1883,1886,1889,1892],{},[123,1881,1882],{},"形态",[123,1884,1885],{},"CLI（IDE 无关）",[123,1887,1888],{},"AI-first IDE",[123,1890,1891],{},"CLI",[123,1893,1891],{},[99,1895,1896,1899,1902,1905,1907],{},[123,1897,1898],{},"长任务能力",[123,1900,1901],{},"★★★★★",[123,1903,1904],{},"★★★★☆",[123,1906,1904],{},[123,1908,1909],{},"★★★☆☆",[99,1911,1912,1915,1922,1924,1926],{},[123,1913,1914],{},"上下文管理",[123,1916,1917,1918,1365,1920],{},"★★★★★ ",[50,1919,1274],{},[50,1921,1260],{},[123,1923,1904],{},[123,1925,1904],{},[123,1927,1909],{},[99,1929,1930,1933,1941,1944,1947],{},[123,1931,1932],{},"子代理 \u002F 并行",[123,1934,1935,1936,1365,1938,1267],{},"✅（",[50,1937,1181],{},[50,1939,1940],{},"\u002Fbatch",[123,1942,1943],{},"部分（Bug bot）",[123,1945,1946],{},"⚠️ 有限",[123,1948,1949],{},"❌",[99,1951,1952,1955,1958,1960,1962],{},[123,1953,1954],{},"MCP 支持",[123,1956,1957],{},"★★★★★ 一等公民",[123,1959,1904],{},[123,1961,1909],{},[123,1963,1949],{},[99,1965,1966,1969,1971,1973,1975],{},[123,1967,1968],{},"Git 集成",[123,1970,1904],{},[123,1972,1909],{},[123,1974,1909],{},[123,1976,1977],{},"★★★★★ 每改即 commit",[99,1979,1980,1983,1986,1989,1992],{},[123,1981,1982],{},"国内门槛",[123,1984,1985],{},"高（账号+支付+网络）",[123,1987,1988],{},"高（账号+支付）",[123,1990,1991],{},"高",[123,1993,1994],{},"低（BYOK 国产模型）",[99,1996,1997,1999,2002,2005,2007],{},[123,1998,1529],{},[123,2000,2001],{},"$20-$200\u002F月",[123,2003,2004],{},"$20\u002F月",[123,2006,2001],{},[123,2008,2009],{},"仅 API 成本",[20,2011,2012,91],{},[24,2013,2014],{},"选 Claude Code 如果你",[906,2016,2017,2020,2023,2026],{},[851,2018,2019],{},"重视长任务自主性 + 上下文管理",[851,2021,2022],{},"JetBrains \u002F Vim 用户，不想换 IDE",[851,2024,2025],{},"团队需要 SSH 远程 \u002F 后台 agent 模式",[851,2027,2028],{},"已经在用 Claude Pro\u002FMax，加 Code 是边际成本",[20,2030,2031,91],{},[24,2032,2033],{},"别选 Claude Code 如果你",[906,2035,2036,2042,2047],{},[851,2037,2038,2039,2041],{},"国内、个人、预算紧（去 ",[893,2040,1832],{"href":1831}," + DeepSeek）",[851,2043,2044,2045,1267],{},"想要纯 IDE 内 inline 体验（",[893,2046,934],{"href":933},[851,2048,2049,2050,1267],{},"主要写补全而非 agent 任务（",[893,2051,2053],{"href":2052},"\u002Fcoding\u002Fcopilot\u002Fgithub-copilot.html","GitHub Copilot",[16,2055,2056],{"id":2056},"避坑清单",[906,2058,2059,2072,2087,2101,2109,2127,2141,2147],{},[851,2060,2061,2067,2068,2071],{},[24,2062,2063,2066],{},[50,2064,2065],{},"ANTHROPIC_API_KEY"," 优先级最高","：你以为在用 Pro 订阅，但 env 里有 key 时实际走 API 计费——卡崩之前先 ",[50,2069,2070],{},"env | grep ANTHROPIC"," 检查",[851,2073,2074,2080,2081,2083,2084,2086],{},[24,2075,2076,2077,2079],{},"长会话不 ",[50,2078,1274],{}," 会越来越笨","：context 接近上限时，模型会开始忘记前面约定。社区共识：每 20-30 分钟 ",[50,2082,1274],{}," 一次或 ",[50,2085,1260],{}," 开新会话",[851,2088,2089,2094,2095,2100],{},[24,2090,2091,2093],{},[50,2092,1304],{}," 切换是个坑","：跨模型切会丢部分 context ",[893,2096,2099],{"href":2097,"rel":2098},"https:\u002F\u002Fwww.reddit.com\u002Fr\u002FClaudeAI\u002F",[1200],"据 r\u002FClaudeAI 反馈","；建议起新会话指定模型",[851,2102,2103,2108],{},[24,2104,2105,2107],{},[50,2106,1236],{}," 生成的 CLAUDE.md 要 review","：自动生成的会有冗余\u002F错误，第一次进项目花 5 分钟整理",[851,2110,2111,2116,2117,1365,2120,1365,2123,2126],{},[24,2112,2113,2115],{},[50,2114,1388],{}," 自定义命令是放大器","：把团队最常用的工作流写成 ",[50,2118,2119],{},"\u002Fdeploy",[50,2121,2122],{},"\u002Fmigrate",[50,2124,2125],{},"\u002Freview-pr","，提交进 git",[851,2128,2129,2132,2133,2136,2137,2140],{},[24,2130,2131],{},"后台 agent + 重写大量文件 = 危险组合","：长任务跑通常加 ",[50,2134,2135],{},"--permission-mode plan"," 或开 ",[50,2138,2139],{},"acceptEdits"," 但配合 git worktree",[851,2142,2143,2146],{},[24,2144,2145],{},"Windows 原生支持有限","：官方推荐 WSL，PowerShell 安装路径有时跑不通",[851,2148,2149,2152],{},[24,2150,2151],{},"API token 烧钱速度","：BYOK 模式下，复杂 refactor 单次任务可能消耗几百万 token",[16,2154,925],{"id":925},[906,2156,2157,2172,2188,2201],{},[851,2158,2159,2160,835,2162,835,2166,835,2168,835,2170],{},"同类对比：",[893,2161,934],{"href":933},[893,2163,2165],{"href":2164},"\u002Fcoding\u002Fide\u002Fwindsurf.html","Windsurf",[893,2167,1871],{"href":1870},[893,2169,1832],{"href":1831},[893,2171,1837],{"href":1836},[851,2173,2174,2175,835,2178,835,2182,835,2184],{},"概念：",[893,2176,2177],{"href":1155},"AI Agent",[893,2179,2181],{"href":2180},"\u002Fwiki\u002Ffunction-calling.html","Function Calling",[893,2183,1399],{"href":1398},[893,2185,2187],{"href":2186},"\u002Fwiki\u002Fcontext-engineering.html","Context Engineering",[851,2189,2190,2191,835,2193,835,2197],{},"模型：",[893,2192,1076],{"href":1075},[893,2194,2196],{"href":2195},"\u002Fmodels\u002Fclaude-opus-4-5.html","Claude Opus 4.5",[893,2198,2200],{"href":2199},"\u002Fmodels\u002Fclaude-haiku-4.html","Claude Haiku 4",[851,2202,2203,2204,835,2208],{},"进阶：",[893,2205,2207],{"href":2206},"\u002Fwiki\u002Fvibe-coding.html","Vibe Coding",[893,2209,2211],{"href":2210},"\u002Fwiki\u002Fprompt-engineering.html","Prompt Engineering",[16,2213,2214],{"id":2214},"来源",[906,2216,2217,2224,2231,2238,2245,2251],{},[851,2218,2219,2220],{},"官网：",[893,2221,2222],{"href":2222,"rel":2223},"https:\u002F\u002Fclaude.com\u002Fclaude-code",[1200],[851,2225,2226,2227],{},"官方文档：",[893,2228,2229],{"href":2229,"rel":2230},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Foverview",[1200],[851,2232,2233,2234],{},"GitHub：",[893,2235,2236],{"href":2236,"rel":2237},"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-code",[1200],[851,2239,2240,2241],{},"CLI Reference：",[893,2242,2243],{"href":2243,"rel":2244},"https:\u002F\u002Fcode.claude.com\u002Fdocs\u002Fen\u002Fcli-reference",[1200],[851,2246,2247,2248],{},"官方定价：",[893,2249,1514],{"href":1514,"rel":2250},[1200],[851,2252,2253],{},"第三方评测：laozhang.ai \u002F explainx.ai \u002F computingforgeeks.com \u002F ksred.com \u002F learn-prompting.fr",[20,2255,2256,2257,2261],{},"本卡片由 AIHO 编辑部根据官方公开资料与第三方评测整理。所有事实点均标注来源；如发现价格 \u002F 命令 \u002F 功能与最新官方信息不一致，请通过 ",[893,2258,2260],{"href":2259},"mailto:hello@aiho.net","反馈邮箱"," 反馈。",[969,2263,2264],{},"html pre.shiki code .sj4cs, html code.shiki .sj4cs{--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZZnC, html code.shiki .sZZnC{--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sScJk, html code.shiki .sScJk{--shiki-default:#6F42C1;--shiki-dark:#B392F0}html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html pre.shiki code .szBVR, html code.shiki .szBVR{--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sVt8B, html code.shiki .sVt8B{--shiki-default:#24292E;--shiki-dark:#E1E4E8}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":52,"searchDepth":273,"depth":273,"links":2266},[2267,2268,2275,2276,2277,2278,2279,2280,2281],{"id":1037,"depth":260,"text":1038},{"id":1097,"depth":260,"text":1097,"children":2269},[2270,2271,2272,2273,2274],{"id":1100,"depth":273,"text":1101},{"id":1148,"depth":273,"text":1149},{"id":1211,"depth":273,"text":1212},{"id":1392,"depth":273,"text":1393},{"id":1484,"depth":273,"text":1485},{"id":1502,"depth":260,"text":1502},{"id":1643,"depth":260,"text":1644},{"id":1802,"depth":260,"text":1802},{"id":1850,"depth":260,"text":1850},{"id":2056,"depth":260,"text":2056},{"id":925,"depth":260,"text":925},{"id":2214,"depth":260,"text":2214},"cli","\u002Fimg\u002Ftools\u002Fclaude-code.webp","Claude Code 2026 真实评测：Anthropic 官方 CLI 编程 Agent，适合终端、SSH、JetBrains\u002FVim 用户和长任务代码改造。本文整理安装使用、Sub-agents、Slash 命令、MCP、价格套餐、国内使用门槛，以及和 Cursor、Aider、Codex CLI 的区别。",false,[2287],"en",{},[2290,2291,2292],"claude-sonnet-5","claude-opus-4-8","claude-haiku-4",[2294,2295,2296],"国内裸跑（账号 \u002F 支付 \u002F 网络三关）","预算 ¥100\u002F月以内的个人开发者","只想做基础代码补全（用 GitHub Copilot 更经济）","\u002Ftools\u002Fcoding\u002Fcli\u002Fclaude-code","coding",[2300,2301,2302],"macos","linux","windows",[2304,2310,2315,2319],{"plan":2305,"price":2306,"limit":2307,"cn_pay":2308,"note":2309},"Pay-as-go","按 API token 计费","Sonnet $3\u002F$15 per Mtok，Opus $15\u002F$75","✅ 第三方中转支持支付宝","BYOK 模式",{"plan":2311,"price":2004,"limit":2312,"cn_pay":2313,"note":2314},"Claude Pro","约 1-4 小时\u002F天活跃编码","⚠️ 需海外卡","网页 + Code 共享额度",{"plan":2316,"price":1570,"limit":2317,"cn_pay":2313,"note":2318},"Claude Max 5x","Pro 的 5 倍 + Opus 接入","重度用户",{"plan":2320,"price":1583,"limit":2321,"cn_pay":2313,"note":2322},"Claude Max 20x","Pro 的 20 倍 + 优先队列","8h+\u002F天 agentic 工作流","API 按 token 计费 \u002F Pro $20 \u002F Max $100-$200 \u002F Team Premium $100-$125 seat","2026-06-18",[2326,2327,2328,2329,2330,2331],"ai-coding\u002Fclaude-md-best-practice","ai-coding\u002Fagents-md-protocol","ai-coding\u002Frefactor-legacy-with-ai","ai-coding\u002Flong-task-with-claude-code","ai-coding\u002Fchina-developer-stack","ai-agent\u002Fmcp-from-zero",[2333,2334,2335,2336,2337,2338,2339],"ai-coding-tool-decision-tree","aider-deep-review","claude-code-deep-review","claude-code-deep-dive","claude-skills-practice","codex-deep-review","cursor-deep-review",{"power":302,"ux":280,"price":273,"cn_support":260,"stability":280},{"title":939,"description":2284},"Claude Code 评测 2026：Anthropic 官方 CLI Agent，长任务编程怎么用",[2344,2346,2347,2349,2352,2354],{"title":2345,"url":2229},"Claude Code 官方文档",{"title":1516,"url":1514},{"title":2348,"url":2243},"Claude Code CLI Reference",{"title":2350,"url":2351},"Claude Code Pricing Guide 2026","https:\u002F\u002Fblog.laozhang.ai\u002Fen\u002Fposts\u002Fclaude-code-pricing-guide",{"title":2353,"url":1198},"Claude Code Cheat Sheet 2026",{"title":2355,"url":2236},"Claude Code Changelog（v2.1.x）","tools\u002Fcoding\u002Fcli\u002Fclaude-code",[2358,2359,2360,2361,2362],"JetBrains \u002F Vim \u002F Emacs 用户（不想换编辑器）","需要长任务自主规划（>30min 单次任务）","服务器开发、运维脚本、CI\u002FCD 场景","需要在 SSH 远程主机上跑 AI 编程","重视稳定性 + 长上下文连贯性","Anthropic 官方终端 AI Coding Agent，长任务能力业界第一梯队",[2282,2365,2366,1032,2367,2368],"agent","terminal","long-task","mcp","2026-07-20","Cursor 的强力补充。终端原生、IDE 无关、长任务跑得比 Cursor 稳。但 API 计费贵且国内更难用。","2WlX9nBK37eWbWvZIj2wJ_wgmeWOaAZS9ri3HTP_1go",{"id":2373,"title":934,"alternatives":2374,"api_compatible":2377,"body":2379,"category":2897,"chinese_friendly":280,"cover":2898,"description":2899,"domestic":2285,"extension":992,"faq":2900,"free":276,"github":52,"languages":2919,"lastVerified":993,"meta":2921,"models":2922,"navigation":276,"notSuitable":2927,"opensource":2285,"path":2932,"pillar":2298,"platforms":2933,"priceTable":2934,"pricing":2959,"published":2324,"relatedPlaybooks":2960,"relatedReviews":2963,"score":2968,"self_host":2285,"seo":2969,"seoTitle":2970,"slug":1011,"sources":2971,"stem":2981,"suitable":2982,"tagline":2987,"tags":2988,"updated":2369,"verdict":2994,"website":2995,"__hash__":2996},"tools\u002Ftools\u002Fcoding\u002Fide\u002Fcursor.md",[2375,2376,1012,1028],"coding\u002Fide\u002Ftrae","coding\u002Fide\u002Fwindsurf",[2378,1032],"openai",{"type":13,"value":2380,"toc":2880},[2381,2383,2426,2429,2432,2438,2481,2496,2502,2506,2509,2528,2547,2550,2554,2559,2563,2572,2576,2586,2590,2596,2598,2628,2631,2731,2736,2738,2776,2780,2786,2790,2800,2802,2841,2843,2869,2877],[16,2382,1038],{"id":1037},[1040,2384,2386,2391,2409],{"className":2385},[1043,1044,1045],[20,2387,2388,2390],{},[24,2389,1050],{}," Cursor 是当前 AI IDE 综合体验的天花板。Composer 的多文件改写、Tab 的连续预测、@-symbol 的上下文召回三件套，加上 2026 年加上的 Cloud Agents 和 Bugbot，使「让 AI 真的写一段能跑的代码」这件事比纯插件方案高一个量级。",[20,2392,2393,2396,2397,2400,2401,2404,2405,2408],{},[24,2394,2395],{},"2026 年最大变化：SpaceX 以 600 亿美元全股票收购 Cursor 母公司 Anysphere","（2026-06-16 签约，预计 Q3 交割）。收购带来 Colossus 超算算力与 xAI 联合训练——自研模型 ",[24,2398,2399],{},"Composer 2.5"," 与低价的 ",[24,2402,2403],{},"Grok 4.5","（用 Cursor 会话数据训练）先后落地，降低了对 Anthropic\u002FOpenAI 的依赖。当前版本已迭代到 ",[24,2406,2407],{},"3.11","。",[20,2410,2411,2412,2415,2416,2415,2419,2415,2422,2425],{},"代价是：",[24,2413,2414],{},"$20\u002F月起","、",[24,2417,2418],{},"国内访问不稳",[24,2420,2421],{},"2025-06 之后按 token 计费",[24,2423,2424],{},"频繁切 IP 容易封号","。重度用户月底真的会超额。",[16,2427,2428],{"id":2428},"它到底是个什么",[20,2430,2431],{},"Cursor 是 VS Code 的 fork（不是插件，是独立编辑器），整套 UI \u002F 快捷键 \u002F 插件生态完全继承，但把 AI 当成一等公民重写了所有交互层。如果你今天用 VS Code，切到 Cursor 5 分钟就能上手，所有 keybindings \u002F 主题 \u002F 扩展都直接迁移。",[20,2433,2434,2435,91],{},"它的护城河不是某一个 feature，而是",[24,2436,2437],{},"三件套乘以工程化",[848,2439,2440,2453,2459],{},[851,2441,2442,2445,2446,2449,2450,2452],{},[24,2443,2444],{},"Composer","（",[50,2447,2448],{},"Cmd\u002FCtrl + I","）— 多文件 Agent，看完整个仓库后做 plan-then-act 改写；现在的 ",[24,2451,2399],{}," 是 Cursor 自研模型（85%+ 自主研发，以 Kimi K2.5 为底），已能在文件树尺度做重构。",[851,2454,2455,2458],{},[24,2456,2457],{},"Tab 补全"," — 不只是补当前行，而是预测你的下一步光标位置 + 多行 diff。收购 Supermaven 后补全采纳率达 72%，是 GitHub Copilot 没追上的部分。",[851,2460,2461,2464,2465,2468,2469,2472,2473,2476,2477,2480],{},[24,2462,2463],{},"@-symbol 上下文"," — ",[50,2466,2467],{},"@codebase"," 自动召回相关文件、",[50,2470,2471],{},"@docs"," 引外部文档、",[50,2474,2475],{},"@web"," 联网搜、",[50,2478,2479],{},"@git"," 看 diff，相当于 RAG + 工具调用都内嵌好了。",[20,2482,2483,2484,2487,2488,2491,2492,2495],{},"2026 年另加两件大件：",[24,2485,2486],{},"Cloud Agents","（云端 VM 跑长任务，3.5 起最多 10 个并行，",[50,2489,2490],{},"\u002Fmultitask"," 可拆最多 8 个子 Agent 各自独立 Git 分支）和 ",[24,2493,2494],{},"Bugbot","（PR 自动审查 + 自动 fix 提交）。",[20,2497,2498,2501],{},[24,2499,2500],{},"版本迭代速度极快","：3.0（4 月，Agents Window 成主界面）→ 3.5（5-20，Cloud Agents 并行）→ 3.9（6-30，团队市场加入 MCP 与组织）→ 3.10（7-10，Side Chats + 对话搜索）→ 3.11（7-17，Slack 集成改进）；iOS 版 Cursor Mobile 已于 6-29 上线。",[16,2503,2505],{"id":2504},"价格-计费重点","价格 & 计费（重点）",[20,2507,2508],{},"2025-06 起 Cursor 从「请求数」改成「按 token 配额」，引发过一轮社区反弹。当前的逻辑：",[906,2510,2511,2518,2525],{},[851,2512,2513,2514,2517],{},"每档套餐有",[24,2515,2516],{},"包含的美元额度","，按底层模型 API 价折算。",[851,2519,2520,2521,2524],{},"超出后",[24,2522,2523],{},"按需续费","（on-demand），月底结算。",[851,2526,2527],{},"重模型 \u002F 长上下文 \u002F MAX 模式吃额度最快。",[20,2529,2530,2533,2534,2537,2540,2541,2543,2546],{},[24,2531,2532],{},"Pro $20\u002F月","：日常 Agent 使用够；如果天天 Composer + Background Agents，月底会冲到额度上限。",[2535,2536],"br",{},[24,2538,2539],{},"Pro+ \u002F Ultra","：$60+ \u002F $200\u002F月，给天天跑 Agent 的开发者。",[2535,2542],{},[24,2544,2545],{},"Teams $40\u002F用户\u002F月","：除了用量，主要买的是团队 Rules \u002F Skills 共享、团队级 Bugbot、SSO、隐私模式。",[20,2548,2549],{},"国内付款：结账页选 Alipay，可走支付宝。",[16,2551,2553],{"id":2552},"真实任务实测基于公开示例归纳","真实任务实测（基于公开示例归纳）",[764,2555,2556],{},[20,2557,2558],{},"来源说明：以下场景为 Cursor 官方 Composer 文档与公开 YouTube 实测视频常见演示流程的整合，非 AIHO 编辑部全程亲测，仅作为「能不能干」的参考。",[38,2560,2562],{"id":2561},"任务-1重构一个-800-行的-react-组件","任务 1：重构一个 800 行的 React 组件",[20,2564,2565,2568,2569,2571],{},[50,2566,2567],{},"Cmd+I"," → \"把这个组件按业务拆 3 个子组件，提取自定义 hook\" → Composer 列出涉及文件 + 新建 hook → Accept All。",[2535,2570],{},"\n经验值：90 秒级别能跑完，约 18k input \u002F 6k output token；import 路径偶尔错一两行，需手动改。",[38,2573,2575],{"id":2574},"任务-2跨仓库引用查找","任务 2：跨仓库引用查找",[20,2577,2578,2580,2581,2472,2583,2585],{},[50,2579,2467],{}," 在 50k+ 行项目里召回相关文件、",[50,2582,2471],{},[50,2584,2475],{}," 联网搜。多数同类工具还停留在\"开个文件让 AI 看\"。",[38,2587,2589],{"id":2588},"任务-3mcp-接入","任务 3：MCP 接入",[20,2591,2592,2595],{},[50,2593,2594],{},"~\u002F.cursor\u002Fmcp.json"," 配 GitHub \u002F Linear \u002F Slack 或自建 MCP server，让 Agent 能直接调外部工具。2026-05 社区 MCP 注册表已超 200 个。",[16,2597,1644],{"id":1643},[43,2599,2601],{"className":1114,"code":2600,"language":1116,"meta":52,"style":52},"# 1. 下载安装：https:\u002F\u002Fcursor.com\u002Fdownload\n# 2. 用 GitHub \u002F Google 登录\n# 3. 一键导入 VS Code 设置：Cmd+Shift+P → Cursor: Import VS Code Settings\n# 4. 打开任意项目 → Cmd+I 试 Composer\n# 5. 项目根目录新建 .cursor\u002Frules\u002Fmain.mdc，写下项目约定（技术栈、目录、命名）\n",[50,2602,2603,2608,2613,2618,2623],{"__ignoreMap":52},[239,2604,2605],{"class":241,"line":242},[239,2606,2607],{"class":1133},"# 1. 下载安装：https:\u002F\u002Fcursor.com\u002Fdownload\n",[239,2609,2610],{"class":241,"line":260},[239,2611,2612],{"class":1133},"# 2. 用 GitHub \u002F Google 登录\n",[239,2614,2615],{"class":241,"line":273},[239,2616,2617],{"class":1133},"# 3. 一键导入 VS Code 设置：Cmd+Shift+P → Cursor: Import VS Code Settings\n",[239,2619,2620],{"class":241,"line":280},[239,2621,2622],{"class":1133},"# 4. 打开任意项目 → Cmd+I 试 Composer\n",[239,2624,2625],{"class":241,"line":302},[239,2626,2627],{"class":1133},"# 5. 项目根目录新建 .cursor\u002Frules\u002Fmain.mdc，写下项目约定（技术栈、目录、命名）\n",[16,2629,2630],{"id":2630},"同类对比",[93,2632,2633,2648],{},[96,2634,2635],{},[99,2636,2637,2639,2641,2643,2645],{},[102,2638,1859],{},[102,2640,934],{},[102,2642,939],{},[102,2644,2053],{},[102,2646,2647],{},"Trae",[118,2649,2650,2665,2681,2697,2714],{},[99,2651,2652,2654,2657,2660,2663],{},[123,2653,1882],{},[123,2655,2656],{},"VS Code fork",[123,2658,2659],{},"终端 CLI",[123,2661,2662],{},"VS Code 插件",[123,2664,2656],{},[99,2666,2667,2669,2672,2675,2678],{},[123,2668,1529],{},[123,2670,2671],{},"$20\u002F月起 + 用量",[123,2673,2674],{},"包含在 Claude.ai $20\u002F月 \u002F Max",[123,2676,2677],{},"$10\u002F月",[123,2679,2680],{},"免费（国内版）\u002F $10\u002F月（国际 Pro）",[99,2682,2683,2686,2689,2691,2694],{},[123,2684,2685],{},"国内访问",[123,2687,2688],{},"需稳定代理",[123,2690,2688],{},[123,2692,2693],{},"需代理",[123,2695,2696],{},"国内版直连",[99,2698,2699,2702,2705,2708,2711],{},[123,2700,2701],{},"Agent 形态",[123,2703,2704],{},"Composer + Cloud Agents",[123,2706,2707],{},"全终端",[123,2709,2710],{},"Agent Mode",[123,2712,2713],{},"Builder + SOLO",[99,2715,2716,2719,2722,2725,2728],{},[123,2717,2718],{},"适合",[123,2720,2721],{},"IDE-first 全栈",[123,2723,2724],{},"终端 \u002F 后端 \u002F DevOps",[123,2726,2727],{},"老 VS Code 党",[123,2729,2730],{},"国内 \u002F 中文场景",[764,2732,2733],{},[20,2734,2735],{},"一句话区分：Cursor 是「GUI 全能型」，Claude Code 是「终端硬核派」，Copilot 是「便宜稳定但天花板低」，Trae 是「国内能用的 Cursor 替代」。",[16,2737,2056],{"id":2056},[848,2739,2740,2746,2752,2758,2764,2770],{},[851,2741,2742,2745],{},[24,2743,2744],{},"不要在多个 IP \u002F 设备频繁切换登录","，2025 之后 Cursor 风控严，账号一冻 24 小时起。",[851,2747,2748,2751],{},[24,2749,2750],{},"检查 usage 仪表盘","，Pro 用户每周看一次额度。开 MAX 模式跑长任务前，预估 token 量。",[851,2753,2754,2757],{},[24,2755,2756],{},"Cursor Rules 写短而精","，把超过 2000 字的项目说明拆成多个 .mdc 文件，否则每轮上下文吃得太多。",[851,2759,2760,2763],{},[24,2761,2762],{},"Composer 改大文件前先 commit","，Accept All 偶有 import 错位，git 是后悔药。",[851,2765,2766,2769],{},[24,2767,2768],{},"付费别走第三方账号","，官方明确表示只通过 cursor.com 直销，第三方账号可能被封。",[851,2771,2772,2775],{},[24,2773,2774],{},"国内信用卡如果被拒","，先开支付宝、再开 Stripe 友好的虚拟卡（Wise \u002F WildCard），别反复试同一张。",[16,2777,2779],{"id":2778},"适合-不适合","适合 \u002F 不适合",[20,2781,2782,2783,2785],{},"✅ 全栈开发者；习惯 VS Code 的人；多文件大改 \u002F Agent 长任务；已经在用 MCP 生态。",[2535,2784],{},"\n❌ 国内纯内网开发；JetBrains 重度用户；预算敏感的学生；对 usage-based 计费敏感的人。",[16,2787,2789],{"id":2788},"市场地位2026-中","市场地位（2026 中）",[20,2791,2792,2793,2796,2797,2799],{},"Cursor 6 月初年化营收约 ",[24,2794,2795],{},"$4B","，服务 60% 财富 500 强，约 700 名员工。市占率从 2025-06 的 41% 回落到 2026-05 的 26%（",[893,2798,939],{"href":938}," 约占赛道一半），但 SpaceX 收购带来的算力与自研模型资源，让它在下半年的竞争中重新握有底牌。三方估算显示，Cursor 接 Sonnet 5 后端时 SWE-bench 约 65.7%，默认配置约 51.7%。",[16,2801,925],{"id":925},[906,2803,2804,2816,2823,2830],{},[851,2805,2806,2807,2811,2812],{},"最新资讯：",[893,2808,2810],{"href":2809},"\u002Fnews\u002F2026\u002Fspacex-acquires-cursor.html","SpaceX 600 亿美元收购 Cursor"," · ",[893,2813,2815],{"href":2814},"\u002Fnews\u002F2026\u002Fgrok-4-5-release.html","Grok 4.5 与 Cursor 联合训练",[851,2817,2818,2819],{},"配套 playbook：",[893,2820,2822],{"href":2821},"\u002Fplaybook\u002Fcursor-rules-best-practice.html","Cursor Rules 最佳实践",[851,2824,2825,2826],{},"同分类：",[893,2827,2829],{"href":2828},"\u002Fcoding\u002Fide\u002F","AI IDE 全分类",[851,2831,2832,2833,2811,2836,2811,2839],{},"替代品：",[893,2834,2647],{"href":2835},"\u002Fcoding\u002Fide\u002Ftrae.html",[893,2837,2838],{"href":2164},"Devin Desktop（原 Windsurf）",[893,2840,939],{"href":938},[16,2842,2214],{"id":2214},[906,2844,2845,2852,2859,2866],{},[851,2846,2847,2848],{},"官方定价页：",[893,2849,2850],{"href":2850,"rel":2851},"https:\u002F\u002Fcursor.com\u002Fpricing",[1200],[851,2853,2854,2855],{},"Composer 文档：",[893,2856,2857],{"href":2857,"rel":2858},"https:\u002F\u002Fdocs.cursor.com\u002Fcomposer",[1200],[851,2860,2861,2862],{},"Cursor 3.5 Cloud Agents 公告：",[893,2863,2864],{"href":2864,"rel":2865},"https:\u002F\u002Fcursor.com\u002Fchangelog",[1200],[851,2867,2868],{},"第三方评测：ZBuild 2026 评测、Flexprice Cursor pricing 解析、Codersera 3.5 完整指南",[764,2870,2871],{},[20,2872,2873,2874,2876],{},"本卡片由 AIHO 编辑部基于以上公开资料整理，非厂商付费内容；定价与功能以官网为准，欢迎在 ",[893,2875,2260],{"href":2259}," 反馈更新。",[969,2878,2879],{},"html pre.shiki code .sJ8bj, html code.shiki .sJ8bj{--shiki-default:#6A737D;--shiki-dark:#6A737D}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"title":52,"searchDepth":273,"depth":273,"links":2881},[2882,2883,2884,2885,2890,2891,2892,2893,2894,2895,2896],{"id":1037,"depth":260,"text":1038},{"id":2428,"depth":260,"text":2428},{"id":2504,"depth":260,"text":2505},{"id":2552,"depth":260,"text":2553,"children":2886},[2887,2888,2889],{"id":2561,"depth":273,"text":2562},{"id":2574,"depth":273,"text":2575},{"id":2588,"depth":273,"text":2589},{"id":1643,"depth":260,"text":1644},{"id":2630,"depth":260,"text":2630},{"id":2056,"depth":260,"text":2056},{"id":2778,"depth":260,"text":2779},{"id":2788,"depth":260,"text":2789},{"id":925,"depth":260,"text":925},{"id":2214,"depth":260,"text":2214},"ide","\u002Fimg\u002Ftools\u002Fcursor.webp","Cursor 2026 真实评测：SpaceX 以 600 亿美元收购后的最强 AI IDE，基于 VS Code，支持 Composer 2.5 多文件改写、Cloud Agents、MCP、Claude Sonnet 5 \u002F GPT-5.6 \u002F Grok 4.5 多模型和 Bugbot。本文整理最新版本、价格、支付宝付款、国内网络风险、封号避坑，以及和 Trae、Devin Desktop、Claude Code 的选择建议。",[2901,2904,2907,2910,2913,2916],{"q":2902,"a":2903},"Cursor 国内能用吗？","可以，但需要全程稳定的代理。直连不稳，且高频切 IP 会触发账号风控。建议：固定家庭网 + 稳定代理，避免频繁切换。",{"q":2905,"a":2906},"Cursor Pro 多少钱？怎么付款？","$20\u002F月起。Pro 之外还有 Pro+ 和 Ultra（更高用量），Teams $40\u002F用户\u002F月。支持支付宝（结账页选 Alipay），也支持 Visa\u002FMastercard 国际信用卡。开发票需 Business \u002F Teams 计划。",{"q":2908,"a":2909},"Cursor 和 VS Code 区别？","Cursor 是 VS Code 的 fork，几乎所有 VS Code 插件都兼容。最大差异是内置 Composer（多文件 Agent）、Tab 智能补全、@-symbol 上下文检索，这三个 VS Code 原生没有。",{"q":2911,"a":2912},"Cursor 支持自定义 API（DeepSeek \u002F Qwen）吗？","支持。设置里可填 OpenAI \u002F Anthropic 兼容的 base_url 和 key，但 Composer \u002F Tab 等高级功能仅在自带模型上工作最好。",{"q":2914,"a":2915},"Cursor Rules 是什么？","项目根目录下的 .cursor\u002Frules\u002F*.mdc（新版）或 .cursorrules（旧版）文件，给 AI 提供项目级上下文（编码规范、技术栈、目录结构）。每次对话都会自动注入。",{"q":2917,"a":2918},"Background Agent \u002F Bugbot 是什么？","Background Agents 在云端 VM 异步跑任务，你可以同时做别的；Bugbot 是 PR 检查器，自动扫描漏洞和给 fix 建议（2026 起进 Pro 默认按量计费）。",[2920,2287],"zh",{},[2290,2923,2924,2925,2926],"gpt-5.6","grok-4.5","gemini-3-pro","composer-2.5",[2928,2929,2930,2931],"国内纯内网开发（连不上）","重度 JetBrains 用户（IDEA \u002F WebStorm \u002F GoLand）","预算敏感或学生（先试 Trae \u002F 通义灵码）","对 usage-based 计费高度敏感（2025-06 之后按 token 计费，重度用户月底容易超）","\u002Ftools\u002Fcoding\u002Fide\u002Fcursor",[2302,2300,2301],[2935,2940,2944,2949,2954],{"plan":2936,"price":2937,"limit":2938,"cn_pay":1949,"note":2939},"Hobby (Free)","$0","Agent 限量 + Tab 补全限量","仅试用，不可付费",{"plan":1554,"price":2004,"limit":2941,"cn_pay":2942,"note":2943},"扩展 Agent + 前沿模型 + Cloud Agents + Bugbot（按量）","✅ 支付宝","个人主力档",{"plan":2539,"price":2945,"limit":2946,"cn_pay":2947,"note":2948},"$60+ \u002F $200\u002F月","更高用量配额，Agent 重度用户","✅","天天跑 Agent 的开发者",{"plan":2950,"price":2951,"limit":2952,"cn_pay":2947,"note":2953},"Teams","$40\u002F用户\u002F月","团队计费 + SSO + 团队 Rules \u002F Skills \u002F 共享 Bugbot","团队档",{"plan":2955,"price":2956,"limit":2957,"cn_pay":2947,"note":2958},"Enterprise","Custom","Pool 用量 \u002F SCIM \u002F 审计 \u002F 仓库与模型访问控制","大型组织","Free \u002F Pro $20\u002Fmo \u002F Pro+ \u002F Ultra \u002F Teams $40\u002Fuser\u002Fmo \u002F Enterprise",[2961,2327,2331,2328,2962],"ai-coding\u002Fcursor-rules-best-practice","ai-coding\u002Fcursor-vs-claude-code-when-to-use",[2333,2339,2964,2965,2966,2967],"cursor-vs-windsurf-vs-trae","qoder-deep-review","trae-deep-review","windsurf-deep-review",{"power":302,"ux":302,"price":273,"cn_support":273,"stability":280},{"title":934,"description":2899},"Cursor 评测 2026：SpaceX 收购后的最强 AI IDE？价格、模型与国内避坑",[2972,2974,2976,2978],{"title":2973,"url":2850},"Cursor 官方定价页",{"title":2975,"url":2857},"Cursor Composer 官方文档",{"title":2977,"url":2864},"Cursor Changelog（3.9–3.11）",{"title":2979,"url":2980},"SpaceX 收购 Anysphere（Reuters\u002FSEC）","https:\u002F\u002Fwww.reuters.com\u002Ftechnology\u002F","tools\u002Fcoding\u002Fide\u002Fcursor",[2983,2984,2985,2986],"全栈开发者（前端 \u002F 后端 \u002F 全栈一把抓）","习惯 VS Code 不想换编辑器的人","需要多文件大改、Agent 长任务的人","已经在用 MCP 生态（GitHub \u002F Linear \u002F Slack 等）的团队","AI 原生代码编辑器，Composer 多文件改写一时无两（现为 SpaceX 子公司）",[2897,2989,2990,2368,2991,2992,2993],"agent-mode","composer","vscode-fork","bugbot","background-agent","SpaceX 收购后资源更足、自研模型加持；如果不在乎价格和网络，这是开发者第一选择；如果在乎，先看 Trae \u002F Claude Code。","https:\u002F\u002Fcursor.com","BIY5W7kbkRy4Hu86QI4fywOdztz9Xc38KKfl_qKX5t4",{"id":2998,"title":896,"alternatives":2999,"api_compatible":3004,"body":3008,"category":3529,"chinese_friendly":273,"cover":3530,"description":3531,"domestic":2285,"extension":992,"faq":3532,"free":276,"github":990,"languages":3545,"lastVerified":993,"meta":3546,"models":990,"navigation":276,"notSuitable":990,"opensource":2285,"path":3547,"pillar":2298,"platforms":3548,"priceTable":3555,"pricing":3570,"published":3571,"relatedPlaybooks":3572,"relatedReviews":3576,"score":3578,"self_host":276,"seo":3579,"seoTitle":3580,"slug":1013,"sources":3581,"stem":3591,"suitable":990,"tagline":3592,"tags":3593,"updated":3584,"verdict":3600,"website":1008,"__hash__":3601},"tools\u002Ftools\u002Fcoding\u002Freview\u002Fcoderabbit.md",[3000,3001,3002,3003],"coding\u002Freview\u002Fellipsis","coding\u002Freview\u002Fgreptile","coding\u002Freview\u002Fqodo","coding\u002Freview\u002Fbito",[3005,3006,3007],"OpenAI","Anthropic","Google",{"type":13,"value":3009,"toc":3517},[3010,3012,3015,3018,3021,3097,3099,3123,3127,3132,3158,3163,3180,3183,3217,3220,3386,3389,3433,3435,3458,3460,3486,3488],[16,3011,1038],{"id":1037},[20,3013,3014],{},"CodeRabbit 是 AI PR 评审 SaaS 的事实标准——CodeRabbit Inc. 出品，融资 $88M、估值 $550M、ARR $15M、8000+ 企业客户。Pro $24\u002Fseat 年付（$30 月付），公共仓库无限免费 + 私有仓库 14 天试用。v3 平台融合多模型（GPT\u002FClaude\u002FGemini）+ Codegraph + 40+ linter + agentic 工作流，提供 PR、IDE、CLI 三入口 + 1-click AI 修复 + MCP 集成 Jira\u002FLinear\u002FConfluence。SOC 2 Type II。",[20,3016,3017],{},"适合：开源维护者（公共仓库无限免费）；企业团队要成熟 AI 评审 + 多模型 + 完整 linter 生态；用 Cursor \u002F Claude Code 但想给 PR 卡一道质量门。不适合：极低预算单人（Ellipsis $20 flat 含无限更优）；要 Agent 注入架构上下文（Bito AI Architect 独家）。",[16,3019,3020],{"id":3020},"核心能力",[906,3022,3023,3029,3035,3044,3050,3056,3062,3068,3074,3080,3086,3092],{},[851,3024,3025,3028],{},[24,3026,3027],{},"Agentic PR Reviews","：2-click GitHub\u002FGitLab\u002FBitbucket\u002FAzure DevOps App 接入，PR 自动 line-by-line + 概要 + walkthrough + 时序图",[851,3030,3031,3034],{},[24,3032,3033],{},"IDE Reviews","：VS Code 插件，commit 前本地评审 staged \u002F unstaged 改动",[851,3036,3037,91,3040,3043],{},[24,3038,3039],{},"CLI Reviews",[50,3041,3042],{},"coderabbit"," 命令行，配 Claude Code \u002F Cursor CLI \u002F Codex 等 Agent 工作流",[851,3045,3046,3049],{},[24,3047,3048],{},"1-Click AI Fixes","：简单问题一键应用，复杂问题用 \"Fix with AI\"",[851,3051,3052,3055],{},[24,3053,3054],{},"Codebase Intelligence","：Codegraph + 全仓分析，理解跨文件依赖 \u002F 遗留代码",[851,3057,3058,3061],{},[24,3059,3060],{},"40+ Linter & SAST","：ESLint \u002F Semgrep \u002F Bandit 等内置，在沙箱跑、过滤误报",[851,3063,3064,3067],{},[24,3065,3066],{},"MCP External Context","：Jira \u002F Linear \u002F Confluence \u002F 实时网搜",[851,3069,3070,3073],{},[24,3071,3072],{},"可定制 Instructions","：YAML 配置 path-based \u002F AST-based 评审规则 + pre-merge checks",[851,3075,3076,3079],{},[24,3077,3078],{},"Learnings","：在 PR 评论里用自然语言反馈，AI 记忆并应用到未来评审",[851,3081,3082,3085],{},[24,3083,3084],{},"单测 \u002F 文档字符串生成","：评审顺手生成缺失测试",[851,3087,3088,3091],{},[24,3089,3090],{},"企业分析","：每日 standup \u002F sprint review \u002F 工程仪表盘",[851,3093,3094],{},[24,3095,3096],{},"SOC 2 Type II \u002F 零数据保留 \u002F 自托管",[16,3098,1529],{"id":1529},[906,3100,3101,3107,3112,3117],{},[851,3102,3103,3106],{},[24,3104,3105],{},"Free","：公共仓库无限 PR 概要 + 基础评审；私有仓库有月度配额；IDE 限流；14 天 Pro 试用",[851,3108,3109,3111],{},[24,3110,1554],{},"：$24\u002Fseat\u002F月年付 \u002F $30 月付，按发起 PR 的开发者计费",[851,3113,3114,3116],{},[24,3115,2955],{},"：自定义；SSO\u002FSAML + 自托管 + 自定义模型 + SLA",[851,3118,3119,3122],{},[24,3120,3121],{},"CLI add-on","：usage-based，给 agentic 编码 loop 用，独立于席位计费",[16,3124,3126],{"id":3125},"实测20-人-saas-团队-nextjs-python-后端","实测（20 人 SaaS 团队 \u002F Next.js + Python 后端）",[20,3128,3129],{},[24,3130,3131],{},"亮点：",[906,3133,3134,3137,3140,3143,3146,3149,3152],{},[851,3135,3136],{},"2-click 接 GitHub，5 分钟跑通；PR 几十秒出概要 + 时序图",[851,3138,3139],{},"Codegraph 真能跨文件追：评论标「这个改动会影响 BillingService.charge 的 12 处调用」",[851,3141,3142],{},"40+ linter 配 LLM 过滤误报，噪声远低于裸跑 ESLint+Semgrep",[851,3144,3145],{},"自定义 YAML 规则用起来直接，path-based 区分 frontend \u002F backend 评审强度",[851,3147,3148],{},"IDE 插件本地评审 staged 改动，commit 前能拦下半数小问题",[851,3150,3151],{},"Learnings 真有效——3 周后 false positive 下降明显",[851,3153,3154,3155,3157],{},"CLI 配 Claude Code，agent 写完一段先 ",[50,3156,3042],{}," 自检",[20,3159,3160],{},[24,3161,3162],{},"踩坑：",[906,3164,3165,3168,3171,3174,3177],{},[851,3166,3167],{},"私有仓库 Free 配额吃紧，团队上 Pro 几乎必然",[851,3169,3170],{},"CLI add-on 单独计费，agentic loop 跑多了账单上涨",[851,3172,3173],{},"中文 PR 描述 \u002F 评论偶尔英中混合",[851,3175,3176],{},"多模型自动路由不透明，偶有便宜模型给复杂场景",[851,3178,3179],{},"IDE review 限流在 Free 档明显",[16,3181,3182],{"id":3182},"上手",[848,3184,3185,3188,3191,3194,3197,3207,3214],{},[851,3186,3187],{},"coderabbit.ai 注册 → 2-click GitHub\u002FGitLab App 授权",[851,3189,3190],{},"选仓库 → 默认配置即可跑",[851,3192,3193],{},"提一个 PR 试看 → 概要 + walkthrough + 时序图 + 评论",[851,3195,3196],{},"装 VS Code 插件 → 本地评审 staged 改动",[851,3198,3199,3200,3203,3204,3206],{},"CLI：",[50,3201,3202],{},"npm i -g @coderabbitai\u002Fcli"," → ",[50,3205,3042],{}," 自动评审 staged",[851,3208,3209,3210,3213],{},"配置 ",[50,3211,3212],{},".coderabbit.yaml","：path-based 规则 + 自定义指令",[851,3215,3216],{},"接 MCP：Jira \u002F Linear \u002F Confluence 注入工单 \u002F 设计上下文",[16,3218,3219],{"id":3219},"对比",[93,3221,3222,3242],{},[96,3223,3224],{},[99,3225,3226,3228,3230,3233,3236,3239],{},[102,3227,1859],{},[102,3229,896],{},[102,3231,3232],{},"Bito",[102,3234,3235],{},"Ellipsis",[102,3237,3238],{},"Greptile",[102,3240,3241],{},"Qodo",[118,3243,3244,3264,3282,3300,3317,3337,3354,3369],{},[99,3245,3246,3249,3252,3255,3258,3261],{},[123,3247,3248],{},"Pro 起价",[123,3250,3251],{},"$24（年）\u002F$30（月）",[123,3253,3254],{},"$12\u002F$15",[123,3256,3257],{},"$20 flat",[123,3259,3260],{},"base + usage",[123,3262,3263],{},"Teams $30",[99,3265,3266,3269,3272,3274,3276,3279],{},[123,3267,3268],{},"公共仓库免费",[123,3270,3271],{},"✅ 无限",[123,3273,1949],{},[123,3275,3271],{},[123,3277,3278],{},"freemium",[123,3280,3281],{},"OSS 计划",[99,3283,3284,3287,3290,3292,3295,3298],{},[123,3285,3286],{},"IDE review",[123,3288,3289],{},"✅ 一等",[123,3291,2947],{},[123,3293,3294],{},"中",[123,3296,3297],{},"–",[123,3299,2947],{},[99,3301,3302,3305,3308,3311,3313,3315],{},[123,3303,3304],{},"CLI review",[123,3306,3307],{},"✅ + agentic",[123,3309,3310],{},"CLI 有",[123,3312,3297],{},[123,3314,3297],{},[123,3316,2947],{},[99,3318,3319,3322,3325,3328,3331,3334],{},[123,3320,3321],{},"Codegraph \u002F 跨仓",[123,3323,3324],{},"✅ Codegraph",[123,3326,3327],{},"AI Architect",[123,3329,3330],{},"Codebase 图",[123,3332,3333],{},"✅ Code graph",[123,3335,3336],{},"Context Engine",[99,3338,3339,3342,3345,3348,3350,3352],{},[123,3340,3341],{},"Linter 集成",[123,3343,3344],{},"✅ 40+",[123,3346,3347],{},"弱",[123,3349,3294],{},[123,3351,3347],{},[123,3353,3347],{},[99,3355,3356,3358,3361,3363,3365,3367],{},[123,3357,1399],{},[123,3359,3360],{},"✅ Jira\u002FLinear\u002FConfluence",[123,3362,2947],{},[123,3364,3347],{},[123,3366,3297],{},[123,3368,3297],{},[99,3370,3371,3374,3377,3379,3382,3384],{},[123,3372,3373],{},"ARR \u002F 企业数",[123,3375,3376],{},"$15M \u002F 8000+",[123,3378,3297],{},[123,3380,3381],{},"67K repos",[123,3383,3297],{},[123,3385,3297],{},[16,3387,3388],{"id":3388},"避坑",[906,3390,3391,3397,3403,3409,3415,3421,3427],{},[851,3392,3393,3396],{},[24,3394,3395],{},"Free 配额吃紧很快","：私有仓库每月几十 PR 上限，团队上 Pro 几乎必然",[851,3398,3399,3402],{},[24,3400,3401],{},"CLI add-on 独立计费","：用 Claude Code CLI \u002F Cursor CLI 跑 agent 时，CLI review 用量飙得快，先开预算告警",[851,3404,3405,3408],{},[24,3406,3407],{},"YAML 规则别一次堆太多","：30+ 自定义规则后噪声明显，渐进引入 + 用 Learnings 调",[851,3410,3411,3414],{},[24,3412,3413],{},"fork \u002F 外包账号别误接","：seat 按 Git handle 计费，PR 来源人意外触发就计费",[851,3416,3417,3420],{},[24,3418,3419],{},"Free 档 IDE review 限流","：本地评审高频用要上 Pro",[851,3422,3423,3426],{},[24,3424,3425],{},"多模型自动路由难审计","：要可重复结果走 Enterprise 固定模型 \u002F BYOK",[851,3428,3429,3432],{},[24,3430,3431],{},"Self-hosted 仅 Enterprise","：硬性合规先确认预算",[16,3434,2779],{"id":2778},[906,3436,3437,3440,3443,3446,3449,3452,3455],{},[851,3438,3439],{},"✅ 开源维护者（公共仓库无限免费）",[851,3441,3442],{},"✅ 企业团队、要成熟 + 多模型 + 完整 linter 生态",[851,3444,3445],{},"✅ 用 Cursor \u002F Claude Code 想给 PR 卡质量门",[851,3447,3448],{},"✅ MCP \u002F Jira 工作流深度集成",[851,3450,3451],{},"❌ 极低预算单人开发者（Ellipsis $20 flat 更优）",[851,3453,3454],{},"❌ 要 Agent 注入架构上下文（Bito AI Architect 独家）",[851,3456,3457],{},"❌ 极小代码库 + 不在乎评审深度（Free 即可）",[16,3459,925],{"id":925},[906,3461,3462,3468,3474,3480],{},[851,3463,3464],{},[893,3465,3467],{"href":3466},"\u002Ftools\u002Fcoding\u002Freview\u002Fbito","Bito 评测",[851,3469,3470],{},[893,3471,3473],{"href":3472},"\u002Ftools\u002Fcoding\u002Freview\u002Fellipsis","Ellipsis 评测",[851,3475,3476],{},[893,3477,3479],{"href":3478},"\u002Ftools\u002Fcoding\u002Freview\u002Fgreptile","Greptile 评测",[851,3481,3482],{},[893,3483,3485],{"href":3484},"\u002Ftools\u002Fcoding\u002Freview\u002Fqodo","Qodo 评测",[16,3487,2214],{"id":2214},[848,3489,3490,3496,3503,3510],{},[851,3491,3492,3493],{},"CodeRabbit 官网 ",[893,3494,1008],{"href":1008,"rel":3495},[1200],[851,3497,3498,3499],{},"EveryDev.ai — CodeRabbit 工具介绍 ",[893,3500,3501],{"href":3501,"rel":3502},"https:\u002F\u002Fwww.everydev.ai\u002Ftools\u002Fcoderabbit",[1200],[851,3504,3505,3506],{},"Toolradar — CodeRabbit Pricing 2026 ",[893,3507,3508],{"href":3508,"rel":3509},"https:\u002F\u002Ftoolradar.com\u002Ftools\u002Fcoderabbit\u002Fpricing",[1200],[851,3511,3512,3513],{},"OpenStats — CodeRabbit Review, Pricing & Performance（公司数据 $88M 融资 \u002F $550M valuation \u002F $15M ARR）",[893,3514,3515],{"href":3515,"rel":3516},"https:\u002F\u002Fwww.openstats.ai\u002Fcoderabbit",[1200],{"title":52,"searchDepth":273,"depth":273,"links":3518},[3519,3520,3521,3522,3523,3524,3525,3526,3527,3528],{"id":1037,"depth":260,"text":1038},{"id":3020,"depth":260,"text":3020},{"id":1529,"depth":260,"text":1529},{"id":3125,"depth":260,"text":3126},{"id":3182,"depth":260,"text":3182},{"id":3219,"depth":260,"text":3219},{"id":3388,"depth":260,"text":3388},{"id":2778,"depth":260,"text":2779},{"id":925,"depth":260,"text":925},{"id":2214,"depth":260,"text":2214},"review","\u002Fimg\u002Ftools\u002Fcoderabbit.webp","CodeRabbit 真实评测：CodeRabbit Inc. 出品，AI PR 评审最广泛使用的 SaaS。Pro $24\u002Fseat\u002F月（年）\u002F $30（月）、公共仓库无限免费 + 私有仓库 14 天 Pro 试用。多模型（GPT\u002FClaude\u002FGemini）+ Codegraph + 40+ linter + MCP，SOC 2 Type II，估值 $550M、ARR $15M、8000+ 企业客户。",[3533,3536,3539,3542],{"q":3534,"a":3535},"CodeRabbit 怎么按席位算？","Pro 只按『发起 PR 并被 CodeRabbit 评审过的 Git handle』计费——10 人仓库但只有 6 人提 PR，那就 6 个 seat。dashboard 可手动分配 \u002F 取消。fork 外包账号别误接。",{"q":3537,"a":3538},"免费版能做什么？","无限公共仓库 PR 评审 + PR 概要；私有仓库有月度配额；IDE review 限流；14 天 Pro 试用送全功能。开源维护者基本免费用到天荒地老。",{"q":3540,"a":3541},"和 Bito 相比性价比？","CodeRabbit Pro $24 比 Bito Team $12 贵一倍，但 ① 开源仓库无限免费、② IDE\u002FCLI\u002FPR 三入口 + 40+ linter 集成更全、③ Codegraph + MCP 生态更成熟、④ ARR $15M、8000+ 企业客户更稳。Bito 在 Agent 注入架构上下文（AI Architect）上独家。",{"q":3543,"a":3544},"支持哪些模型？","v3 是 agentic + 多模型架构：GPT-5 系列 \u002F Claude 系列 \u002F Gemini 自动路由。Enterprise 可自定义模型 \u002F BYOK。",[2287,2920],{},"\u002Ftools\u002Fcoding\u002Freview\u002Fcoderabbit",[3549,3550,2282,3551,3552,3553,3554],"vscode","jetbrains","github","gitlab","bitbucket","azure-devops",[3556,3559,3563,3566],{"plan":3105,"price":2937,"features":3557,"notes":3558},"公共 + 私有仓库 PR 概要 + 基础评审（私有限额） + IDE review（限流）","14 天 Pro 试用、无信用卡",{"plan":1554,"price":3560,"features":3561,"notes":3562},"$24\u002Fseat\u002F月（年）\u002F $30（月）","无限私有 PR 评审 + IDE\u002FCLI + Codegraph + 40+ linter + MCP + Jira\u002FLinear","只按发起 PR 的开发者计费",{"plan":2955,"price":2956,"features":3564,"notes":3565},"SSO\u002FSAML + 自托管 + 自定义模型 + SLA + 高级 analytics + 多 org","AWS \u002F GCP Marketplace",{"plan":3121,"price":3567,"features":3568,"notes":3569},"usage-based","Agentic 编码 loop 用量计费、按 token \u002F 评审次数","与席位计费分开","Free（公共 + 私有限额） \u002F Pro $24\u002Fseat 年付 \u002F $30 月付 \u002F Enterprise 定制 \u002F CLI usage add-on","2026-06-19",[3573,3574,3575],"onboarding\u002Fpr-review-automation","onboarding\u002Fcursor-mcp-deep-integration","ai-coding\u002Fwrite-tests-with-ai",[3577],"ai-code-review-comparison",{"power":302,"ux":302,"price":280,"cn_support":273,"stability":302},{"title":896,"description":3531},"CodeRabbit 评测 2026：AI 代码审查工具，自动化 PR Review，GitHub 集成",[3582,3585,3587,3589],{"name":3583,"url":1008,"accessed":3584},"CodeRabbit 官网","2026-06-24",{"name":3586,"url":3501,"accessed":3584},"EveryDev.ai — CodeRabbit 详细介绍",{"name":3588,"url":3508,"accessed":3584},"Toolradar — CodeRabbit Pricing 2026",{"name":3590,"url":3515,"accessed":3584},"OpenStats — CodeRabbit 公司数据","tools\u002Fcoding\u002Freview\u002Fcoderabbit","AI PR 评审事实标准——v3 + 40+ linter + Codegraph + IDE\u002FCLI\u002FPR 三入口，8K+ 企业、$15M ARR",[3594,3595,3596,3597,2368,3598,3599],"code-review","pr","agentic","codegraph","soc2","multi-model","AI PR 评审事实标准——开源仓库无限免费、私有仓库 Pro $24\u002Fseat 性价比合理、IDE\u002FCLI\u002FPR 三入口 + 40+ linter + MCP 生态最完善。预算紧 \u002F 极简单审走 Ellipsis $20 flat；要 Agent 注入架构上下文走 Bito AI Architect。","Go5viAeuc8CRepEN7FrP0Ng6mSUWibbznfbAVQTmuyU",1785666673068]