[{"data":1,"prerenderedAt":278},["ShallowReactive",2],{"\u002Fblog\u002Fopencode-productive-stack\u002F:vi":3,"\u002Fblog\u002Fopencode-productive-stack\u002F-surround:vi":174,"blog-all-posts:vi":175},{"id":4,"title":5,"author":6,"body":10,"date":156,"description":157,"extension":158,"image":159,"locale":160,"meta":161,"minRead":162,"navigation":163,"original":164,"path":165,"pinned":164,"seo":166,"source":167,"sourceUrl":23,"stem":168,"tags":169,"updated":159,"__hash__":173},"blog\u002Fblog\u002Fopencode-productive-stack.vi.md","Ổn định, nhanh, hiệu suất, rẻ: ghi chép trọn bộ AI Coding stack của tôi",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":147},"minimark",[13,28,35,38,43,51,54,58,61,67,73,79,85,91,97,101,104,111,115,118,121,134,140,144],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"Ý chính lần đầu đăng trên ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2086611065920733305",[25],"nofollow","X","; bài này là bản ghi cấu hình đầy đủ.",[17,29,30,31],{},"Kết luận trước: ",[32,33,34],"strong",{},"OpenCode + OpenChamber + gói DeepSeek V4 Flash qua OpenCode Go + gói DeepSeek V4 Flash qua Ollama Cloud.",[17,36,37],{},"Bộ này tôi dùng nặng dài hạn, gói lại bằng bốn chữ: ổn, nhanh, ra nghề, rẻ. Mở liên tục 15 dự án cùng lúc chạy code, hạn mức chỉ tụt tí xíu.",[39,40,42],"h2",{"id":41},"vì-sao-là-opencode-openchamber","Vì sao là OpenCode + OpenChamber",[17,44,45,46,50],{},"Hành trình chọn đã kể ở ",[21,47,49],{"href":48},"\u002Fblog\u002Fagent-harness-selection","bài khác","; đây chỉ nêu lý do ở mức kết quả: OpenCode hiện là lõi đa model cân bằng nhất — open source, nhiều Provider, Client\u002FServer, app desktop, Subagent đều chín; còn OpenChamber là Harness GUI open source được chăm chút nhất tôi từng dùng, tác giả giữ gìn cực kỳ cẩn thận, tinh xảo, ổn định, mấy lỗi vặt thi thoảng chẳng hề cản dùng lâu dài.",[17,52,53],{},"Giao diện Web + PWA, gần như chẳng khác app desktop, cập nhật còn chẳng cần tay.",[39,55,57],{"id":56},"cấu-hình-xoay-quanh-ba-nhu-cầu-lõi","Cấu hình xoay quanh ba nhu cầu lõi",[17,59,60],{},"Cấu hình OpenCode của tôi dựng trên ba thứ: quản lý context, hệ thống bộ nhớ, năng lực bên ngoài.",[17,62,63,66],{},[32,64,65],{},"1. opencode-dcp (mã nguồn mở) — cắt tỉa context động."," Khi context chạm ngưỡng, tự động nén nội dung cũ thành bản tóm tắt kỹ thuật: giữ thông tin then chốt, vứt nhiễu, dọn trùng lặp, và loại mấy thứ ít giá trị như lỗi tool ra khỏi context. Session dài không nổ context, tiết kiệm tiền lẫn token — đây là móng để task dài chạy được cả ngày liền.",[17,68,69,72],{},[32,70,71],{},"2. opencode-goal-plugin — quản lý mục tiêu."," Thêm mode Goal vào task dài, để agent đi lệch thì kéo lại được.",[17,74,75,78],{},[32,76,77],{},"3. Hermes Memory — bộ nhớ phân tầng (cần thì tôi sẽ open source sau)."," Đây là plugin nặng nhất của tôi: tôi port cơ chế bộ nhớ phân tầng của Hermes agent sang OpenCode, ghi nhớ sở thích người dùng, quyết định dự án và bài học xưa qua các session. Dự án mới khỏi dạy từ đầu.",[17,80,81,84],{},[32,82,83],{},"4. context7-MCP."," Tra tài liệu chính thức mới nhất của library và framework, khỏi phải tự lục.",[17,86,87,90],{},[32,88,89],{},"5. grep-MCP."," Tìm cách dùng thật trong toàn bộ code trên GitHub, đáng tin hơn nhiều so với viết theo trí nhớ.",[17,92,93,96],{},[32,94,95],{},"6. open-computer-use — tự động hóa desktop."," Cho AI trực tiếp điều khiển app macOS: click, gõ, cuộn, kéo thả, chụp màn hình, đọc cây accessibility. Hợp nhất ở khâu test và nghiệm thu.",[39,98,100],{"id":99},"sổ-chi-phí-hai-gói-đăng-ký-tiêu-thế-nào","Sổ chi phí: hai gói đăng ký tiêu thế nào",[17,102,103],{},"DeepSeek V4 Flash là lõi hiệu quả chi phí của bộ này: thông minh thiệt, rẻ thiệt. Gói OpenCode Go phủ quy trình chính, gói Ollama Cloud làm kênh hai phân tải — cộng hai gói lại còn rẻ hơn một Coding Plan chính hãng đại trà, mà sản lượng cao hơn.",[17,105,106,107,110],{},"Lời đồn “model bỏ vào vỏ bên thứ ba là bị dở” phải mổ ra xem: ",[32,108,109],{},"gốc rễ của việc dở là “cái vỏ không làm Harness Engineering riêng cho model”",", chứ không phải động tác đổi vỏ. OpenCode hỗ trợ model mở hàng đầu, DeepSeek V4 Flash chạy trong đó vừa ổn vừa nhanh — chính vì thế tôi mới dám dồn 15 dự án lên nó.",[39,112,114],{"id":113},"bài-học-giữ-nguyên-cặp-gốc","Bài học “giữ nguyên cặp gốc”",[17,116,117],{},"Trong group hay có người hỏi: có desktop lập trình AI nào vạn năng không? Cắm được đủ loại gói đăng ký, mà không làm model nào dở đi?",[17,119,120],{},"Nói chuyện với mấy ông bạn ngày ngày nghịch nặng xong, kết luận của tụi tôi thống nhất: không tồn tại. Giữ nguyên cặp gốc.",[122,123,124,128,131],"ul",{},[125,126,127],"li",{},"GPT → Codex: gói chính hãng nối thẳng, điều phối native ổn nhất.",[125,129,130],{},"Gemini → AntiGravity: trần tốc độ, cửa sổ dài không nghẹn.",[125,132,133],{},"DeepSeek, GLM và mấy model mở khác → Harness thân thiện model mở như OpenCode \u002F ZCode.",[17,135,136,137],{},"Model ném vào vỏ không hợp thì gần như khỏi thoát cảnh dở đi, chậm đi và gói đăng ký kẹt. ",[32,138,139],{},"Mỗi model để yên ở chỗ ngồi dễ chịu nhất của nó, ghép lại mới thành bộ đồ nghề của bạn.",[39,141,143],{"id":142},"cuối-cùng","Cuối cùng",[17,145,146],{},"Bộ này chạy mấy tháng rồi, cảm giác lớn nhất không phải tiết kiệm được bao nhiêu, mà là “dám mở việc” — vì ổn và rẻ nên mở 15 dự án chẳng run tay. Giá trị của một bộ tool, rốt cuộc nằm ở chỗ bạn dám đè lên nó bao nhiêu việc.",{"title":148,"searchDepth":149,"depth":149,"links":150},"",2,[151,152,153,154,155],{"id":41,"depth":149,"text":42},{"id":56,"depth":149,"text":57},{"id":99,"depth":149,"text":100},{"id":113,"depth":149,"text":114},{"id":142,"depth":149,"text":143},"2026-09-09","OpenCode + OpenChamber + hai gói đăng ký DeepSeek V4 Flash: 15 dự án cùng lúc chạy code, hạn mức chỉ xụi chút xíu. Trải hết cấu hình ra: cắt tỉa context, bộ nhớ phân tầng, tự động hóa desktop, và bài học “giữ nguyên cặp gốc”.","md",null,"vi",{},8,true,false,"\u002Fblog\u002Fopencode-productive-stack",{"title":5,"description":157},"x","blog\u002Fopencode-productive-stack.vi",[170,171,172],"OpenCode","Lập trình AI","Cấu hình","5FoWMLUmPA08htMP_M87bKLHF3_grFEqccA5iAZiLrE",[159,159],[176,184,193,202,209,216,222,224,232,238,245,254,261,269],{"path":48,"title":177,"description":178,"date":179,"minRead":180,"tags":181},"Sau khi nghịch Pi Agent, OMP, Codex và ZCode, vì sao cuối cùng tôi chọn OpenCode + OpenChamber","Bài tổng kết chọn lựa Agent Harness: ba tiêu chí — trải nghiệm GUI, khoá nhà cung cấp và quyền tự do phát triển thứ cấp — đã loại Pi Agent, OMP, Codex và ZCode, cuối cùng chốt lõi OpenCode + giao diện OpenChamber.","2026-08-06",6,[182,183],"AI Agent","Chọn công cụ",{"path":185,"title":186,"description":187,"date":188,"minRead":180,"tags":189},"\u002Fblog\u002Fcloudflare-broke-stack","Thực hành tốt nhất 2026 cho indie developer: gói công nghệ Cloudflare all-in-one 'nghèo rớt mồng tơi'","Tech stack chi phí bằng không cho indie developer: Codex viết code, GitHub quản lý phiên bản, Stripe thu tiền, frontend TanStack Start, backend Hono + Workers, database D1, lưu trữ R2, cache KV — tất cả chạy trên Cloudflare.","2026-06-15",[190,191,192],"Cloudflare","Phát triển indie","Tech stack",{"path":194,"title":195,"description":196,"date":197,"minRead":180,"tags":198},"\u002Fblog\u002Fdeepseek-api-web-search","API của DeepSeek có sẵn tìm kiếm web: xài chùa khả năng tìm kiếm chính thức qua Responses API","DeepSeek nhúng thẳng tìm kiếm web vào API: gọi deepseek-v4-flash qua giao diện Responses và khai báo tool web_search là xong. Không cần tích hợp công cụ tìm kiếm bên thứ ba, không cần xin key API tìm kiếm.","2026-08-05",[199,200,201],"DeepSeek","API","Công cụ AI",{"path":203,"title":204,"description":205,"date":197,"minRead":206,"tags":207},"\u002Fblog\u002Fdeepseek-v4-flash-review","Trải nghiệm sâu bản chính thức DeepSeek V4 Flash: rẻ, nhanh, context 1M, tìm kiếm tích hợp sẵn","Mấy ngày trải nghiệm sâu bản chính thức DeepSeek V4 Flash: rẻ cực độ, nhanh như chớp, context 1M, tìm kiếm web chính thức tích hợp sẵn, mã nguồn mở hoàn toàn. Điểm yếu duy nhất là đa phương thức — nhưng có thể vá bằng cách tổ hợp các model khác.",7,[199,208,201],"Đánh giá mô hình",{"path":210,"title":211,"description":212,"date":188,"minRead":162,"tags":213},"\u002Fblog\u002Ffree-cloudflare","Người dùng miễn phí vắt kiệt Cloudflare như thế nào — bản miễn phí thật sự xài chùa được đến đâu?","Bản miễn phí của Cloudflare chống lưng được cả một hạ tầng internet cá nhân: DNS, CDN, Pages, Workers, KV, D1, R2, email, Tunnel, AI Gateway và hơn thế nữa.",[190,214,215],"Hạn mức miễn phí","Triển khai",{"path":217,"title":218,"description":219,"date":156,"minRead":162,"tags":220},"\u002Fblog\u002Fmodel-harness-decoupling","Harness chính hãng chưa chắc là đáp án đương thời: thời đại mô hình mở, chọn model và Harness riêng biệt","Dùng Claude thì gắn Claude Code? Thời đại mô hình mở rồi, bản năng đó cần được nâng cấp. Lợi thế chính hãng là có thật, nhưng huấn luyện model tốt và làm Harness tốt là hai ngành kỹ thuật khác nhau — bài này nói rõ vì sao model và Harness giờ đã có thể chọn riêng, kèm bản đồ định vị 5 Harness.",[182,221,183],"Harness",{"path":165,"title":5,"description":157,"date":156,"minRead":162,"tags":223},[170,171,172],{"path":225,"title":226,"description":227,"date":228,"minRead":229,"tags":230},"\u002Fblog\u002Fproduct-faxin-principle","Nguyên lý phát tâm: vì sao indie developer phải học cách buông bỏ","Vì sao bạn lên đường? Bạn lên đường vì ai? Bạn thật sự muốn giải quyết vấn đề nào? Sự sắc bén của sản phẩm đến từ chỗ bạn dám cắt bỏ điều gì.","2026-06-20",10,[231,191],"Tư duy sản phẩm",{"path":233,"title":234,"description":235,"date":228,"minRead":162,"tags":236},"\u002Fblog\u002Fproduct-pain-vs-itch","Đừng bay bổng khi người dùng khen 'xịn': nỗi đau và cơn ngứa","Lời khen ngoài miệng chẳng đáng một xu. Phán đoán nhu cầu chỉ có một tiêu chuẩn cứng: xem người dùng sẵn sàng trả cái gì.",[231,237],"Đánh giá nhu cầu",{"path":239,"title":240,"description":241,"date":179,"minRead":242,"tags":243},"\u002Fblog\u002Fqwen-vision-for-deepseek","Bổ sung đa phương thức cho DeepSeek: giải pháp nhận diện ảnh Qwen-3.7-Flash","DeepSeek V4 Flash không có đa phương thức — cần hiểu ảnh thì phải làm sao? Khảo sát một vòng, giải pháp có hiệu quả chi phí cao nhất hiện nay là Qwen-3.7-Flash: chi phí nhận diện một bức ảnh gần như bằng không, tổ hợp với V4 Flash là vá được điểm yếu.",5,[199,244,208],"Đa phương thức",{"path":246,"title":247,"description":248,"date":249,"minRead":250,"tags":251},"\u002Fblog\u002Fsub-store-cloudflare","Tôi đã chuyển công cụ gộp subscription proxy lên Cloudflare","Gộp nhiều dịch vụ proxy cộng với node tự dựng thành một subscription duy nhất, quy tắc định tuyến cấu hình ở phía server — client chỉ việc subscribe.","2026-06-28",4,[190,252,253],"Vượt tường lửa","Dự án mã nguồn mở",{"path":255,"title":256,"description":257,"date":156,"minRead":206,"tags":258},"\u002Fblog\u002Ftui-cognitive-bandwidth","TUI đang giết băng thông nhận thức của bạn: đến lúc đập vỡ “bộ lọc geek” trong AI Coding","Hàng loạt AI Coding Agent đang đua nhau thả TUI, nhồi tương tác trở lại mô hình terminal thập niên 1980 rồi gọi đó là “đắm chìm”, “tôn trọng lập trình viên”. Bài này mổ xẻ ba cơ chế khiến TUI làm giảm băng thông nhận thức một cách hệ thống, và vì sao Web UI mới là lời giải đúng.",[171,259,260],"Thiết kế tương tác","Tản văn",{"path":262,"title":263,"description":264,"date":265,"minRead":180,"tags":266},"\u002Fblog\u002Fvalue-not-external","Bàn chuyện có giá trị hay không, bản thân chuyện đó đã chẳng có giá trị","Giá trị của chúng ta không do ai định nghĩa. Trong thời đại AI, con người nên hiểu mình như thế nào?","2026-06-18",[267,268],"Suy ngẫm về AI","Tản văn nhân văn",{"path":270,"title":271,"description":272,"date":273,"minRead":274,"tags":275},"\u002Fblog\u002Fx-growth-1000-followers","Tăng hơn 1000 followers chỉ trong hơn một ngày — đây là những gì tôi đã làm","Tháng 6 tôi nghiêm túc vận hành tài khoản X, chỉ trong hơn một ngày đã tăng 1000+ followers. Bài này ghi lại những gì tôi đã làm và phản hồi nhận được.","2026-06-16",12,[276,277],"Vận hành X","Tăng trưởng nội dung",1789752318456]