[{"data":1,"prerenderedAt":1410},["ShallowReactive",2],{"navigation_docs":3,"-ai-headroom-setup":168,"-ai-headroom-setup-surround":1407},[4,46,75],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":45},"Bookmarks","i-lucide:bookmark","\u002Fbookmarks","10.bookmarks",[10,15,20,25,30,35,40],{"title":11,"path":12,"stem":13,"icon":14},"工具","\u002Fbookmarks\u002Ftools","10.bookmarks\u002F10.tools","i-lucide:wrench",{"title":16,"path":17,"stem":18,"icon":19},"开发","\u002Fbookmarks\u002Fdev","10.bookmarks\u002F20.dev","i-lucide:code-xml",{"title":21,"path":22,"stem":23,"icon":24},"学习","\u002Fbookmarks\u002Flearn","10.bookmarks\u002F30.learn","i-lucide:graduation-cap",{"title":26,"path":27,"stem":28,"icon":29},"视觉素材","\u002Fbookmarks\u002Fmedia","10.bookmarks\u002F40.media","i-lucide:image",{"title":31,"path":32,"stem":33,"icon":34},"AI","\u002Fbookmarks\u002Fai","10.bookmarks\u002F50.ai","i-lucide:sparkles",{"title":36,"path":37,"stem":38,"icon":39},"设计","\u002Fbookmarks\u002Fdesign","10.bookmarks\u002F60.design","i-lucide:palette",{"title":41,"path":42,"stem":43,"icon":44},"其它","\u002Fbookmarks\u002Fmore","10.bookmarks\u002F70.more","i-lucide:ellipsis",false,{"title":31,"icon":34,"path":47,"stem":48,"children":49,"page":45},"\u002Fai","20.ai",[50,55,60,65,70],{"title":51,"path":52,"stem":53,"icon":54},"Agent 工具","\u002Fai\u002Fagent-tools","20.ai\u002F10.agent-tools","i-lucide:puzzle",{"title":56,"path":57,"stem":58,"icon":59},"OmniRoute 使用","\u002Fai\u002Fomniroute-setup","20.ai\u002F20.omniroute-setup","i-lucide:route",{"title":61,"path":62,"stem":63,"icon":64},"RTK 使用","\u002Fai\u002Frtk-setup","20.ai\u002F30.rtk-setup","i-lucide:scissors",{"title":66,"path":67,"stem":68,"icon":69},"Headroom 使用","\u002Fai\u002Fheadroom-setup","20.ai\u002F40.headroom-setup","i-lucide:minimize-2",{"title":71,"path":72,"stem":73,"icon":74},"Serena 使用","\u002Fai\u002Fserena-setup","20.ai\u002F50.serena-setup","i-lucide:scan-search",{"title":76,"icon":77,"path":78,"stem":79,"children":80,"page":45},"Guides","i-lucide:book-open","\u002Fguides","30.guides",[81,133,154],{"title":82,"icon":83,"path":84,"stem":85,"children":86,"page":45},"Notes","i-lucide:notebook-text","\u002Fguides\u002Fnotes","30.guides\u002F10.notes",[87,91,96,100,105,109,113,118,123,128],{"title":88,"path":89,"stem":90,"icon":19},"开发问题记录","\u002Fguides\u002Fnotes\u002Fdev-qa","30.guides\u002F10.notes\u002F10.dev-qa",{"title":92,"path":93,"stem":94,"icon":95},"js 常用整理","\u002Fguides\u002Fnotes\u002Fjs-tidy","30.guides\u002F10.notes\u002F20.js-tidy","i-lucide:braces",{"title":97,"path":98,"stem":99,"icon":95},"js 小技巧","\u002Fguides\u002Fnotes\u002Fjs-tips","30.guides\u002F10.notes\u002F30.js-tips",{"title":101,"path":102,"stem":103,"icon":104},"git 问题记录","\u002Fguides\u002Fnotes\u002Fgit-qa","30.guides\u002F10.notes\u002F40.git-qa","i-lucide:git-branch",{"title":106,"path":107,"stem":108,"icon":104},"git 扩展命令","\u002Fguides\u002Fnotes\u002Fgit-expand","30.guides\u002F10.notes\u002F50.git-expand",{"title":110,"path":111,"stem":112,"icon":104},"git 命令速查表","\u002Fguides\u002Fnotes\u002Fgit-cheatsheet","30.guides\u002F10.notes\u002F60.git-cheatsheet",{"title":114,"path":115,"stem":116,"icon":117},"bash 命令速查表","\u002Fguides\u002Fnotes\u002Fbash-cheatsheet","30.guides\u002F10.notes\u002F70.bash-cheatsheet","i-lucide:square-terminal",{"title":119,"path":120,"stem":121,"icon":122},"linux 命令速查表","\u002Fguides\u002Fnotes\u002Flinux-cheatsheet","30.guides\u002F10.notes\u002F80.linux-cheatsheet","i-lucide:server",{"title":124,"path":125,"stem":126,"icon":127},"Docker 使用","\u002Fguides\u002Fnotes\u002Fdocker-setup","30.guides\u002F10.notes\u002F90.docker-setup","i-lucide:container",{"title":129,"path":130,"stem":131,"icon":132},"常用工具命令","\u002Fguides\u002Fnotes\u002Fcommon-tool-commands","30.guides\u002F10.notes\u002F95.common-tool-commands","i-lucide:toolbox",{"title":134,"icon":135,"path":136,"stem":137,"children":138,"page":45},"System","i-lucide:monitor","\u002Fguides\u002Fsystem","30.guides\u002F20.system",[139,144,149],{"title":140,"path":141,"stem":142,"icon":143},"系统常用软件","\u002Fguides\u002Fsystem\u002Fsystem-software","30.guides\u002F20.system\u002F10.system-software","i-lucide:package",{"title":145,"path":146,"stem":147,"icon":148},"开发工具命令","\u002Fguides\u002Fsystem\u002Fdev-tools-commands","30.guides\u002F20.system\u002F20.dev-tools-commands","i-lucide:terminal",{"title":150,"path":151,"stem":152,"icon":153},"macOS 使用记录","\u002Fguides\u002Fsystem\u002Fmacos-usage-record","30.guides\u002F20.system\u002F30.macos-usage-record","i-simple-icons:apple",{"title":155,"icon":54,"path":156,"stem":157,"children":158,"page":45},"Other","\u002Fguides\u002Fother","30.guides\u002F30.other",[159,164],{"title":160,"path":161,"stem":162,"icon":163},"汉语拼音和小鹤双拼","\u002Fguides\u002Fother\u002Fflypy-pinyin","30.guides\u002F30.other\u002F10.flypy-pinyin","i-lucide:notebook-pen",{"title":165,"path":166,"stem":167,"icon":143},"魔方公式","\u002Fguides\u002Fother\u002Frubik-cube-formula","30.guides\u002F30.other\u002F20.rubik-cube-formula",{"id":169,"title":66,"body":170,"description":225,"extension":1401,"links":1402,"meta":1403,"navigation":1404,"path":67,"seo":1405,"stem":68,"__hash__":1406},"docs\u002F20.ai\u002F40.headroom-setup.md",{"type":171,"value":172,"toc":1395},"minimark",[173,194,198,210,574,578,1246,1249,1356,1377,1380,1391],[174,175,176,185,186,189,190,193],"note",{},[177,178,184],"a",{"href":179,"rel":180,"target":183},"https:\u002F\u002Fheadroom-docs.vercel.app\u002Fdocs",[181,182],"noopener","noreferrer","_blank","Headroom"," 本地上下文压缩层：在工具输出、日志、文件和 RAG 块到达 LLM 之前对其进行压缩，节省 60-95% token。上游接 ",[177,187,188],{"href":57},"OmniRoute","，下游模型无感。",[177,191,192],{"href":62},"RTK"," 裁终端输出，Headroom 裁 API 上下文。",[195,196,197],"h2",{"id":197},"安装服务",[199,200,201,202,204,205,209],"p",{},"前置：",[177,203,188],{"href":57}," 已部署在同一 ",[206,207,208],"code",{},"~\u002F.docker\u002Fcompose.yml","。",[211,212,214,219,423,467,470,546,550],"steps",{"level":213},"4",[215,216,218],"h4",{"id":217},"添加-headroom-服务","添加 Headroom 服务",[220,221,226],"pre",{"className":222,"code":223,"filename":208,"language":224,"meta":225,"style":225},"language-yml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","services:\n  headroom:\n    image: ghcr.io\u002Fchopratejas\u002Fheadroom:latest\n    container_name: headroom\n    ports:\n      - \"127.0.0.1:20129:20129\"\n    command: [\"--host\", \"0.0.0.0\", \"--port\", \"20129\"]\n    environment:\n      OPENAI_TARGET_API_URL: http:\u002F\u002Fomniroute:20128\u002Fv1\n      LITELLM_SUPPRESS_DEBUG_INFO: \"True\"\n    restart: unless-stopped\n    volumes:\n      - ~\u002F.docker\u002Fheadroom-data:\u002Froot\u002F.headroom\n    depends_on:\n      - omniroute\n","yml","",[206,227,228,241,249,262,273,281,296,346,354,365,380,391,399,407,415],{"__ignoreMap":225},[229,230,233,237],"span",{"class":231,"line":232},"line",1,[229,234,236],{"class":235},"swJcz","services",[229,238,240],{"class":239},"sMK4o",":\n",[229,242,244,247],{"class":231,"line":243},2,[229,245,246],{"class":235},"  headroom",[229,248,240],{"class":239},[229,250,252,255,258],{"class":231,"line":251},3,[229,253,254],{"class":235},"    image",[229,256,257],{"class":239},":",[229,259,261],{"class":260},"sfazB"," ghcr.io\u002Fchopratejas\u002Fheadroom:latest\n",[229,263,265,268,270],{"class":231,"line":264},4,[229,266,267],{"class":235},"    container_name",[229,269,257],{"class":239},[229,271,272],{"class":260}," headroom\n",[229,274,276,279],{"class":231,"line":275},5,[229,277,278],{"class":235},"    ports",[229,280,240],{"class":239},[229,282,284,287,290,293],{"class":231,"line":283},6,[229,285,286],{"class":239},"      -",[229,288,289],{"class":239}," \"",[229,291,292],{"class":260},"127.0.0.1:20129:20129",[229,294,295],{"class":239},"\"\n",[229,297,299,302,304,307,310,313,315,318,320,323,325,327,329,332,334,336,338,341,343],{"class":231,"line":298},7,[229,300,301],{"class":235},"    command",[229,303,257],{"class":239},[229,305,306],{"class":239}," [",[229,308,309],{"class":239},"\"",[229,311,312],{"class":260},"--host",[229,314,309],{"class":239},[229,316,317],{"class":239},",",[229,319,289],{"class":239},[229,321,322],{"class":260},"0.0.0.0",[229,324,309],{"class":239},[229,326,317],{"class":239},[229,328,289],{"class":239},[229,330,331],{"class":260},"--port",[229,333,309],{"class":239},[229,335,317],{"class":239},[229,337,289],{"class":239},[229,339,340],{"class":260},"20129",[229,342,309],{"class":239},[229,344,345],{"class":239},"]\n",[229,347,349,352],{"class":231,"line":348},8,[229,350,351],{"class":235},"    environment",[229,353,240],{"class":239},[229,355,357,360,362],{"class":231,"line":356},9,[229,358,359],{"class":235},"      OPENAI_TARGET_API_URL",[229,361,257],{"class":239},[229,363,364],{"class":260}," http:\u002F\u002Fomniroute:20128\u002Fv1\n",[229,366,368,371,373,375,378],{"class":231,"line":367},10,[229,369,370],{"class":235},"      LITELLM_SUPPRESS_DEBUG_INFO",[229,372,257],{"class":239},[229,374,289],{"class":239},[229,376,377],{"class":260},"True",[229,379,295],{"class":239},[229,381,383,386,388],{"class":231,"line":382},11,[229,384,385],{"class":235},"    restart",[229,387,257],{"class":239},[229,389,390],{"class":260}," unless-stopped\n",[229,392,394,397],{"class":231,"line":393},12,[229,395,396],{"class":235},"    volumes",[229,398,240],{"class":239},[229,400,402,404],{"class":231,"line":401},13,[229,403,286],{"class":239},[229,405,406],{"class":260}," ~\u002F.docker\u002Fheadroom-data:\u002Froot\u002F.headroom\n",[229,408,410,413],{"class":231,"line":409},14,[229,411,412],{"class":235},"    depends_on",[229,414,240],{"class":239},[229,416,418,420],{"class":231,"line":417},15,[229,419,286],{"class":239},[229,421,422],{"class":260}," omniroute\n",[424,425,426,439,445],"ul",{},[427,428,429,432,433,436,437,209],"li",{},[206,430,431],{},"command"," 覆盖镜像默认的 ",[206,434,435],{},"--port 8787","，使容器内也监听 ",[206,438,340],{},[427,440,441,444],{},[206,442,443],{},"OPENAI_TARGET_API_URL"," 将压缩后的请求转发到同 compose 内的 OmniRoute。",[427,446,447,450,451,454,455,458,459,462,463,466],{},[206,448,449],{},"volumes"," 把 ",[206,452,453],{},"\u002Froot\u002F.headroom","（含 ",[206,456,457],{},"proxy_savings.json"," 统计、压缩缓存）挂到绑定挂载 ",[206,460,461],{},"~\u002F.docker\u002Fheadroom-data","，避免 ",[206,464,465],{},"docker compose down"," \u002F 更新镜像后统计清零。",[215,468,469],{"id":469},"命令",[220,471,475],{"className":472,"code":473,"language":474,"meta":225,"style":225},"language-sh shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# 启动\n$ docker compose up -d headroom\n# 停止\n$ docker compose stop headroom\n# 更新\n$ docker compose up -d --pull always headroom\n","sh",[206,476,477,483,503,508,521,526],{"__ignoreMap":225},[229,478,479],{"class":231,"line":232},[229,480,482],{"class":481},"sHwdD","# 启动\n",[229,484,485,489,492,495,498,501],{"class":231,"line":243},[229,486,488],{"class":487},"sBMFI","$",[229,490,491],{"class":260}," docker",[229,493,494],{"class":260}," compose",[229,496,497],{"class":260}," up",[229,499,500],{"class":260}," -d",[229,502,272],{"class":260},[229,504,505],{"class":231,"line":251},[229,506,507],{"class":481},"# 停止\n",[229,509,510,512,514,516,519],{"class":231,"line":264},[229,511,488],{"class":487},[229,513,491],{"class":260},[229,515,494],{"class":260},[229,517,518],{"class":260}," stop",[229,520,272],{"class":260},[229,522,523],{"class":231,"line":275},[229,524,525],{"class":481},"# 更新\n",[229,527,528,530,532,534,536,538,541,544],{"class":231,"line":283},[229,529,488],{"class":487},[229,531,491],{"class":260},[229,533,494],{"class":260},[229,535,497],{"class":260},[229,537,500],{"class":260},[229,539,540],{"class":260}," --pull",[229,542,543],{"class":260}," always",[229,545,272],{"class":260},[547,548,549],"h5",{"id":549},"验证",[220,551,553],{"className":472,"code":552,"language":474,"meta":225,"style":225},"$ curl http:\u002F\u002F127.0.0.1:20129\u002Fhealth\n$ curl http:\u002F\u002F127.0.0.1:20129\u002Fstats\n",[206,554,555,565],{"__ignoreMap":225},[229,556,557,559,562],{"class":231,"line":232},[229,558,488],{"class":487},[229,560,561],{"class":260}," curl",[229,563,564],{"class":260}," http:\u002F\u002F127.0.0.1:20129\u002Fhealth\n",[229,566,567,569,571],{"class":231,"line":243},[229,568,488],{"class":487},[229,570,561],{"class":260},[229,572,573],{"class":260}," http:\u002F\u002F127.0.0.1:20129\u002Fstats\n",[195,575,577],{"id":576},"集成-mcp","集成 MCP",[579,580,582,1106],"tabs",{"sync":581},"mcp-client",[583,584,586,600,1093],"tabs-item",{"label":585},"OpenCode",[587,588,589],"blockquote",{},[199,590,591,592,595,596,599],{},"provider ",[206,593,594],{},"baseURL"," 指向 Headroom proxy，MCP 通过 ",[206,597,598],{},"docker exec"," 进入容器。",[220,601,607],{"className":602,"code":603,"filename":604,"highlights":605,"language":606,"meta":225,"style":225},"language-json shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","{\n  \"$schema\": \"https:\u002F\u002Fopencode.ai\u002Fconfig.json\",\n  \"mcp\": {\n    \"headroom\": {\n      \"type\": \"local\",\n      \"command\": [\"docker\", \"exec\", \"-i\", \"headroom\", \"headroom\", \"mcp\", \"serve\", \"--proxy-url\", \"http:\u002F\u002Flocalhost:20129\"],\n      \"enabled\": true\n    }\n  },\n  \"provider\": {\n    \"omniroute\": {\n      \"api\": \"openai-compatible\",\n      \"options\": {\n        \"baseURL\": \"http:\u002F\u002F127.0.0.1:20129\u002Fv1\"\n      },\n      \"models\": {\n        \"auto\u002Fbest-free\":            { \"name\": \"Auto Best Free\", \"description\": \"免费最优，日常首选\" },\n        \"oc\u002Fbig-pickle\":             { \"name\": \"Big Pickle\", \"description\": \"OpenCode 免费模型\" },\n        \"oc\u002Fdeepseek-v4-flash-free\": { \"name\": \"DeepSeek V4 Free\", \"description\": \"DeepSeek V4 免费版\" }\n      }\n    }\n  },\n  \"model\": \"omniroute\u002Fauto\u002Fbest-free\"\n}\n","~\u002F.config\u002Fopencode\u002Fopencode.json",[409],"json",[206,608,609,614,637,651,665,687,778,792,797,802,815,828,848,861,881,886,900,953,1002,1052,1058,1063,1068,1087],{"__ignoreMap":225},[229,610,611],{"class":231,"line":232},[229,612,613],{"class":239},"{\n",[229,615,616,619,623,625,627,629,632,634],{"class":231,"line":243},[229,617,618],{"class":239},"  \"",[229,620,622],{"class":621},"spNyl","$schema",[229,624,309],{"class":239},[229,626,257],{"class":239},[229,628,289],{"class":239},[229,630,631],{"class":260},"https:\u002F\u002Fopencode.ai\u002Fconfig.json",[229,633,309],{"class":239},[229,635,636],{"class":239},",\n",[229,638,639,641,644,646,648],{"class":231,"line":251},[229,640,618],{"class":239},[229,642,643],{"class":621},"mcp",[229,645,309],{"class":239},[229,647,257],{"class":239},[229,649,650],{"class":239}," {\n",[229,652,653,656,659,661,663],{"class":231,"line":264},[229,654,655],{"class":239},"    \"",[229,657,658],{"class":487},"headroom",[229,660,309],{"class":239},[229,662,257],{"class":239},[229,664,650],{"class":239},[229,666,667,670,674,676,678,680,683,685],{"class":231,"line":275},[229,668,669],{"class":239},"      \"",[229,671,673],{"class":672},"sbssI","type",[229,675,309],{"class":239},[229,677,257],{"class":239},[229,679,289],{"class":239},[229,681,682],{"class":260},"local",[229,684,309],{"class":239},[229,686,636],{"class":239},[229,688,689,691,693,695,697,699,701,704,706,708,710,713,715,717,719,722,724,726,728,730,732,734,736,738,740,742,744,746,748,750,752,755,757,759,761,764,766,768,770,773,775],{"class":231,"line":283},[229,690,669],{"class":239},[229,692,431],{"class":672},[229,694,309],{"class":239},[229,696,257],{"class":239},[229,698,306],{"class":239},[229,700,309],{"class":239},[229,702,703],{"class":260},"docker",[229,705,309],{"class":239},[229,707,317],{"class":239},[229,709,289],{"class":239},[229,711,712],{"class":260},"exec",[229,714,309],{"class":239},[229,716,317],{"class":239},[229,718,289],{"class":239},[229,720,721],{"class":260},"-i",[229,723,309],{"class":239},[229,725,317],{"class":239},[229,727,289],{"class":239},[229,729,658],{"class":260},[229,731,309],{"class":239},[229,733,317],{"class":239},[229,735,289],{"class":239},[229,737,658],{"class":260},[229,739,309],{"class":239},[229,741,317],{"class":239},[229,743,289],{"class":239},[229,745,643],{"class":260},[229,747,309],{"class":239},[229,749,317],{"class":239},[229,751,289],{"class":239},[229,753,754],{"class":260},"serve",[229,756,309],{"class":239},[229,758,317],{"class":239},[229,760,289],{"class":239},[229,762,763],{"class":260},"--proxy-url",[229,765,309],{"class":239},[229,767,317],{"class":239},[229,769,289],{"class":239},[229,771,772],{"class":260},"http:\u002F\u002Flocalhost:20129",[229,774,309],{"class":239},[229,776,777],{"class":239},"],\n",[229,779,780,782,785,787,789],{"class":231,"line":298},[229,781,669],{"class":239},[229,783,784],{"class":672},"enabled",[229,786,309],{"class":239},[229,788,257],{"class":239},[229,790,791],{"class":239}," true\n",[229,793,794],{"class":231,"line":348},[229,795,796],{"class":239},"    }\n",[229,798,799],{"class":231,"line":356},[229,800,801],{"class":239},"  },\n",[229,803,804,806,809,811,813],{"class":231,"line":367},[229,805,618],{"class":239},[229,807,808],{"class":621},"provider",[229,810,309],{"class":239},[229,812,257],{"class":239},[229,814,650],{"class":239},[229,816,817,819,822,824,826],{"class":231,"line":382},[229,818,655],{"class":239},[229,820,821],{"class":487},"omniroute",[229,823,309],{"class":239},[229,825,257],{"class":239},[229,827,650],{"class":239},[229,829,830,832,835,837,839,841,844,846],{"class":231,"line":393},[229,831,669],{"class":239},[229,833,834],{"class":672},"api",[229,836,309],{"class":239},[229,838,257],{"class":239},[229,840,289],{"class":239},[229,842,843],{"class":260},"openai-compatible",[229,845,309],{"class":239},[229,847,636],{"class":239},[229,849,850,852,855,857,859],{"class":231,"line":401},[229,851,669],{"class":239},[229,853,854],{"class":672},"options",[229,856,309],{"class":239},[229,858,257],{"class":239},[229,860,650],{"class":239},[229,862,865,868,870,872,874,876,879],{"class":863,"line":409},[231,864],"highlight",[229,866,867],{"class":239},"        \"",[229,869,594],{"class":235},[229,871,309],{"class":239},[229,873,257],{"class":239},[229,875,289],{"class":239},[229,877,878],{"class":260},"http:\u002F\u002F127.0.0.1:20129\u002Fv1",[229,880,295],{"class":239},[229,882,883],{"class":231,"line":417},[229,884,885],{"class":239},"      },\n",[229,887,889,891,894,896,898],{"class":231,"line":888},16,[229,890,669],{"class":239},[229,892,893],{"class":672},"models",[229,895,309],{"class":239},[229,897,257],{"class":239},[229,899,650],{"class":239},[229,901,903,905,908,910,912,915,917,921,923,925,927,930,932,934,936,939,941,943,945,948,950],{"class":231,"line":902},17,[229,904,867],{"class":239},[229,906,907],{"class":235},"auto\u002Fbest-free",[229,909,309],{"class":239},[229,911,257],{"class":239},[229,913,914],{"class":239},"            {",[229,916,289],{"class":239},[229,918,920],{"class":919},"su27w","name",[229,922,309],{"class":239},[229,924,257],{"class":239},[229,926,289],{"class":239},[229,928,929],{"class":260},"Auto Best Free",[229,931,309],{"class":239},[229,933,317],{"class":239},[229,935,289],{"class":239},[229,937,938],{"class":919},"description",[229,940,309],{"class":239},[229,942,257],{"class":239},[229,944,289],{"class":239},[229,946,947],{"class":260},"免费最优，日常首选",[229,949,309],{"class":239},[229,951,952],{"class":239}," },\n",[229,954,956,958,961,963,965,968,970,972,974,976,978,981,983,985,987,989,991,993,995,998,1000],{"class":231,"line":955},18,[229,957,867],{"class":239},[229,959,960],{"class":235},"oc\u002Fbig-pickle",[229,962,309],{"class":239},[229,964,257],{"class":239},[229,966,967],{"class":239},"             {",[229,969,289],{"class":239},[229,971,920],{"class":919},[229,973,309],{"class":239},[229,975,257],{"class":239},[229,977,289],{"class":239},[229,979,980],{"class":260},"Big Pickle",[229,982,309],{"class":239},[229,984,317],{"class":239},[229,986,289],{"class":239},[229,988,938],{"class":919},[229,990,309],{"class":239},[229,992,257],{"class":239},[229,994,289],{"class":239},[229,996,997],{"class":260},"OpenCode 免费模型",[229,999,309],{"class":239},[229,1001,952],{"class":239},[229,1003,1005,1007,1010,1012,1014,1017,1019,1021,1023,1025,1027,1030,1032,1034,1036,1038,1040,1042,1044,1047,1049],{"class":231,"line":1004},19,[229,1006,867],{"class":239},[229,1008,1009],{"class":235},"oc\u002Fdeepseek-v4-flash-free",[229,1011,309],{"class":239},[229,1013,257],{"class":239},[229,1015,1016],{"class":239}," {",[229,1018,289],{"class":239},[229,1020,920],{"class":919},[229,1022,309],{"class":239},[229,1024,257],{"class":239},[229,1026,289],{"class":239},[229,1028,1029],{"class":260},"DeepSeek V4 Free",[229,1031,309],{"class":239},[229,1033,317],{"class":239},[229,1035,289],{"class":239},[229,1037,938],{"class":919},[229,1039,309],{"class":239},[229,1041,257],{"class":239},[229,1043,289],{"class":239},[229,1045,1046],{"class":260},"DeepSeek V4 免费版",[229,1048,309],{"class":239},[229,1050,1051],{"class":239}," }\n",[229,1053,1055],{"class":231,"line":1054},20,[229,1056,1057],{"class":239},"      }\n",[229,1059,1061],{"class":231,"line":1060},21,[229,1062,796],{"class":239},[229,1064,1066],{"class":231,"line":1065},22,[229,1067,801],{"class":239},[229,1069,1071,1073,1076,1078,1080,1082,1085],{"class":231,"line":1070},23,[229,1072,618],{"class":239},[229,1074,1075],{"class":621},"model",[229,1077,309],{"class":239},[229,1079,257],{"class":239},[229,1081,289],{"class":239},[229,1083,1084],{"class":260},"omniroute\u002Fauto\u002Fbest-free",[229,1086,295],{"class":239},[229,1088,1090],{"class":231,"line":1089},24,[229,1091,1092],{"class":239},"}\n",[587,1094,1095],{},[199,1096,1097,1098,1101,1102,1105],{},"流量路径：OpenCode → Headroom ",[206,1099,1100],{},":20129","（压缩）→ OmniRoute ",[206,1103,1104],{},":20128"," → LLM。",[583,1107,1109],{"label":1108},"Cursor",[220,1110,1113],{"className":602,"code":1111,"filename":1112,"language":606,"meta":225,"style":225},"\"mcpServers\": {\n  \"headroom\": {\n    \"command\": \"docker\",\n    \"args\": [\"exec\", \"-i\", \"headroom\", \"headroom\", \"mcp\", \"serve\", \"--proxy-url\", \"http:\u002F\u002Flocalhost:20129\"]\n  }\n}\n","~\u002F.cursor\u002Fmcp.json",[206,1114,1115,1130,1142,1160,1237,1242],{"__ignoreMap":225},[229,1116,1117,1119,1122,1124,1128],{"class":231,"line":232},[229,1118,309],{"class":239},[229,1120,1121],{"class":260},"mcpServers",[229,1123,309],{"class":239},[229,1125,1127],{"class":1126},"sTEyZ",": ",[229,1129,613],{"class":239},[229,1131,1132,1134,1136,1138,1140],{"class":231,"line":243},[229,1133,618],{"class":239},[229,1135,658],{"class":621},[229,1137,309],{"class":239},[229,1139,257],{"class":239},[229,1141,650],{"class":239},[229,1143,1144,1146,1148,1150,1152,1154,1156,1158],{"class":231,"line":251},[229,1145,655],{"class":239},[229,1147,431],{"class":487},[229,1149,309],{"class":239},[229,1151,257],{"class":239},[229,1153,289],{"class":239},[229,1155,703],{"class":260},[229,1157,309],{"class":239},[229,1159,636],{"class":239},[229,1161,1162,1164,1167,1169,1171,1173,1175,1177,1179,1181,1183,1185,1187,1189,1191,1193,1195,1197,1199,1201,1203,1205,1207,1209,1211,1213,1215,1217,1219,1221,1223,1225,1227,1229,1231,1233,1235],{"class":231,"line":264},[229,1163,655],{"class":239},[229,1165,1166],{"class":487},"args",[229,1168,309],{"class":239},[229,1170,257],{"class":239},[229,1172,306],{"class":239},[229,1174,309],{"class":239},[229,1176,712],{"class":260},[229,1178,309],{"class":239},[229,1180,317],{"class":239},[229,1182,289],{"class":239},[229,1184,721],{"class":260},[229,1186,309],{"class":239},[229,1188,317],{"class":239},[229,1190,289],{"class":239},[229,1192,658],{"class":260},[229,1194,309],{"class":239},[229,1196,317],{"class":239},[229,1198,289],{"class":239},[229,1200,658],{"class":260},[229,1202,309],{"class":239},[229,1204,317],{"class":239},[229,1206,289],{"class":239},[229,1208,643],{"class":260},[229,1210,309],{"class":239},[229,1212,317],{"class":239},[229,1214,289],{"class":239},[229,1216,754],{"class":260},[229,1218,309],{"class":239},[229,1220,317],{"class":239},[229,1222,289],{"class":239},[229,1224,763],{"class":260},[229,1226,309],{"class":239},[229,1228,317],{"class":239},[229,1230,289],{"class":239},[229,1232,772],{"class":260},[229,1234,309],{"class":239},[229,1236,345],{"class":239},[229,1238,1239],{"class":231,"line":275},[229,1240,1241],{"class":239},"  }\n",[229,1243,1244],{"class":231,"line":283},[229,1245,1092],{"class":239},[195,1247,1248],{"id":1248},"运维与卸载",[220,1250,1252],{"className":472,"code":1251,"language":474,"meta":225,"style":225},"# 健康检查\n$ curl http:\u002F\u002F127.0.0.1:20129\u002Fhealth\n# 压缩统计\n$ curl http:\u002F\u002F127.0.0.1:20129\u002Fstats\n# 仪表盘\n$ curl http:\u002F\u002F127.0.0.1:20129\u002Fdashboard\n# MCP 状态（容器名 headroom，容器内 headroom CLI）\n$ docker exec headroom headroom mcp status\n# 删除容器\n$ docker compose rm -f headroom\n# 删除镜像\n$ docker rmi ghcr.io\u002Fchopratejas\u002Fheadroom:latest\n",[206,1253,1254,1259,1267,1272,1280,1285,1294,1299,1319,1324,1340,1345],{"__ignoreMap":225},[229,1255,1256],{"class":231,"line":232},[229,1257,1258],{"class":481},"# 健康检查\n",[229,1260,1261,1263,1265],{"class":231,"line":243},[229,1262,488],{"class":487},[229,1264,561],{"class":260},[229,1266,564],{"class":260},[229,1268,1269],{"class":231,"line":251},[229,1270,1271],{"class":481},"# 压缩统计\n",[229,1273,1274,1276,1278],{"class":231,"line":264},[229,1275,488],{"class":487},[229,1277,561],{"class":260},[229,1279,573],{"class":260},[229,1281,1282],{"class":231,"line":275},[229,1283,1284],{"class":481},"# 仪表盘\n",[229,1286,1287,1289,1291],{"class":231,"line":283},[229,1288,488],{"class":487},[229,1290,561],{"class":260},[229,1292,1293],{"class":260}," http:\u002F\u002F127.0.0.1:20129\u002Fdashboard\n",[229,1295,1296],{"class":231,"line":298},[229,1297,1298],{"class":481},"# MCP 状态（容器名 headroom，容器内 headroom CLI）\n",[229,1300,1301,1303,1305,1308,1311,1313,1316],{"class":231,"line":348},[229,1302,488],{"class":487},[229,1304,491],{"class":260},[229,1306,1307],{"class":260}," exec",[229,1309,1310],{"class":260}," headroom",[229,1312,1310],{"class":260},[229,1314,1315],{"class":260}," mcp",[229,1317,1318],{"class":260}," status\n",[229,1320,1321],{"class":231,"line":356},[229,1322,1323],{"class":481},"# 删除容器\n",[229,1325,1326,1328,1330,1332,1335,1338],{"class":231,"line":367},[229,1327,488],{"class":487},[229,1329,491],{"class":260},[229,1331,494],{"class":260},[229,1333,1334],{"class":260}," rm",[229,1336,1337],{"class":260}," -f",[229,1339,272],{"class":260},[229,1341,1342],{"class":231,"line":382},[229,1343,1344],{"class":481},"# 删除镜像\n",[229,1346,1347,1349,1351,1354],{"class":231,"line":393},[229,1348,488],{"class":487},[229,1350,491],{"class":260},[229,1352,1353],{"class":260}," rmi",[229,1355,261],{"class":260},[587,1357,1358],{},[199,1359,1360,1361,1363,1364,1367,1368,1370,1371,1373,1374,209],{},"卸载后从 ",[206,1362,1112],{}," 或 ",[206,1365,1366],{},"opencode.json"," 移除 ",[206,1369,658],{},"；OpenCode 还将 provider ",[206,1372,594],{}," 改回 ",[206,1375,1376],{},"http:\u002F\u002Flocalhost:20128\u002Fv1",[195,1378,1379],{"id":1379},"注意事项",[424,1381,1382,1388],{},[427,1383,1384,1385,1387],{},"Headroom 与 OmniRoute 须在同一 compose 文件，容器间通过服务名 ",[206,1386,821],{}," 互通",[427,1389,1390],{},"Proxy 压缩 HTTP 流量，MCP 压缩 Agent 主动提交的大块内容，二者数据面独立",[1392,1393,1394],"style",{},"html pre.shiki code .swJcz, html code.shiki .swJcz{--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}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 .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .su27w, html code.shiki .su27w{--shiki-light:#916B53;--shiki-default:#916B53;--shiki-dark:#916B53}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}",{"title":225,"searchDepth":243,"depth":243,"links":1396},[1397,1398,1399,1400],{"id":197,"depth":243,"text":197},{"id":576,"depth":243,"text":577},{"id":1248,"depth":243,"text":1248},{"id":1379,"depth":243,"text":1379},"md",null,{},{"icon":69},{"title":66,"description":225},"vi372mby8A9lhgPb2m3KMs1CmCRpJG5sYEJAs9rzVzs",[1408,1409],{"title":61,"path":62,"stem":63,"description":225,"icon":64,"children":-1},{"title":71,"path":72,"stem":73,"description":225,"icon":74,"children":-1},1789315518246]