[{"data":1,"prerenderedAt":270},["ShallowReactive",2],{"\u002Fblog\u002Fagent-harness-selection\u002F:ko":3,"\u002Fblog\u002Fagent-harness-selection\u002F-surround:ko":166,"blog-all-posts:ko":167},{"id":4,"title":5,"author":6,"body":10,"date":149,"description":150,"extension":151,"image":152,"locale":153,"meta":154,"minRead":155,"navigation":156,"original":157,"path":158,"pinned":157,"seo":159,"source":160,"sourceUrl":23,"stem":161,"tags":162,"updated":152,"__hash__":165},"blog\u002Fblog\u002Fagent-harness-selection.ko.md","Pi Agent, OMP, Codex, ZCode를 이리저리 만져본 끝에, 내가 마지막으로 OpenCode + OpenChamber를 고른 이유",{"name":7,"avatar":8},"Chen Dahuang",{"src":9,"alt":7},"\u002Favatar.jpg",{"type":11,"value":12,"toc":137},"minimark",[13,28,31,36,41,44,47,59,63,66,69,72,76,79,83,90,97,110,117,121,124,127,130],[14,15,16],"blockquote",{},[17,18,19,20,27],"p",{},"원문은 ",[21,22,26],"a",{"href":23,"rel":24},"https:\u002F\u002Fx.com\u002Frealchendahuang\u002Fstatus\u002F2085410520459604026",[25],"nofollow","X","에 게시되었습니다.",[17,29,30],{},"최근에 Pi Agent, OMP, ZCode, Codex, OpenCode 같은 Agent Harness를 이것저것 만져보면서, 드디어 내가 실제로 원하는 게 무엇인지 깨달았다.",[32,33,35],"h2",{"id":34},"내-세-가지-기준","내 세 가지 기준",[37,38,40],"h3",{"id":39},"첫째-성숙하고-안정적인-gui","첫째: 성숙하고 안정적인 GUI",[17,42,43],{},"GUI에 익숙해진 나는 TUI를 도저히 못 쓰겠다. 까만 터미널 창 안에서 대화하는 건 너무 괴롭다. 단축키와 명령어를 잔뜩 외워야 비로소 쓸 수 있기 때문이다. 반면 GUI는 아이콘과 버튼을 직관적으로 눌러주기만 하면 된다.",[17,45,46],{},"그래서 나는 성숙하고, 안정적이고, 보기 좋은 GUI가 반드시 필요하다.",[17,48,49,50,54,55,58],{},"이 기준 하나만으로 ",[51,52,53],"strong",{},"Pi Agent","와 ",[51,56,57],{},"OMP","는 탈락이다. 코어가 나쁘다는 뜻이 아니다. 그 주변에 붙은 커뮤니티 GUI가 너무 형편없다는 것이다. 직접 만들자니 큰 노력이 들고, 게다가 이런 도구는 커스터마이징 여지가 워낙 넓어서 손수 만든 GUI는 이식성이 없다. 기계를 바꾸거나 사람을 바꾸면 모든 게 처음부터 다시 시작이다.",[37,60,62],{"id":61},"둘째-벤더-종속-없음-벤더-편애-없음","둘째: 벤더 종속 없음, 벤더 편애 없음",[17,64,65],{},"Codex는 실제로 타사 모델을 위한 설정 인터페이스를 열어주긴 했지만, 설정이 정말 번거롭고 타사 모델은 언제나 \"2등 시민\"이다. 공식 모델에 눌려 있고 업데이트 주기에 끌려다니는데, 이게 정말 짜증난다.",[17,67,68],{},"ZCode는 더 황당하다. 각 벤더의 Coding Plan에 OAuth로 로그인할 방법이 없다(예를 들어 Kimi For Code나 Grok Build는 ZCode에서 아예 쓸 수 없다. 억지로 우회하지 않는 한).",[17,70,71],{},"그래서 나는 ZCode, Codex처럼 모델 벤더를 편애하는 소프트웨어를 배제했다.",[37,73,75],{"id":74},"셋째-오픈소스-2차-개발-가능","셋째: 오픈소스, 2차 개발 가능",[17,77,78],{},"나는 내 필요에 따라 2차 개발과 커스터마이징을 해서, 고객에게 더 편한 out-of-the-box 경험을 선물하고 싶다. 그래서 반드시 오픈소스이고 라이선스가 자유로운 제품이어야 한다. 내가 쓰기에도 편하고, 고객이 쓰기에도 복잡한 hack을 동원하지 않고 간단하게 쓸 수 있는 그런 제품 말이다.",[32,80,82],{"id":81},"최종-답-opencode-openchamber","최종 답: OpenCode + OpenChamber",[17,84,85,86,89],{},"모두 걸러내고 나면, 실제로 선택할 수 있는 건 ",[51,87,88],{},"OpenCode","뿐이다.",[17,91,92,93,96],{},"하지만 OpenCode는 그저 Agent 코어일 뿐이다. 여기에 성숙하고 안정적이며 쓰기 좋은 GUI를 붙이려고 찾다가, 마침내 진짜 답을 발견했다. 바로 ",[51,94,95],{},"OpenChamber","다.",[98,99,100,104,107],"ul",{},[101,102,103],"li",{},"코어: OpenCode, 오픈소스, 벤더 종속 없음, 각 벤더의 모델을 모두 지원",[101,105,106],{},"인터페이스: OpenChamber, 성숙한 GUI 워크벤치",[101,108,109],{},"조합: 안정적인 코어 + 편안한 인터페이스, 필요하면 언제든 2차 개발 가능",[17,111,112,113],{},"오픈소스: ",[21,114,115],{"href":115,"rel":116},"https:\u002F\u002Fgithub.com\u002Fopenchamber\u002Fopenchamber",[25],[32,118,120],{"id":119},"몇-가지-소회","몇 가지 소회",[17,122,123],{},"도구를 고른다는 것은 본질적으로 \"누가 너에 대한 발언권을 쥐고 있느냐\"를 고르는 일이다.",[17,125,126],{},"폐쇄형 도구가 아무리 좋아도 업데이트 방향, 모델 지원, 가격 정책 모두 남이 정하는 것이고, 우리는 그저 수동적으로 받아들일 수밖에 없다. 오픈소스 + 비종속 조합은 언제나 퇴로가 있고, 언제나 수정할 자유가 있다.",[17,128,129],{},"TUI와 GUI 논쟁은 억지로 끌고 가지 말자. 도구는 일을 하기 위한 것이지, 내가 커맨드라인을 안다는 걸 증명하기 위한 게 아니다. 오래 쓰기 편한 인터페이스가 그 무엇보다 중요하다.",[17,131,132,133],{},"관련 글: ",[21,134,136],{"href":135},"\u002Fblog\u002Fdeepseek-v4-flash-review","DeepSeek V4 Flash 정식 버전 심층 체험",{"title":138,"searchDepth":139,"depth":139,"links":140},"",2,[141,147,148],{"id":34,"depth":139,"text":35,"children":142},[143,145,146],{"id":39,"depth":144,"text":40},3,{"id":61,"depth":144,"text":62},{"id":74,"depth":144,"text":75},{"id":81,"depth":139,"text":82},{"id":119,"depth":139,"text":120},"2026-08-06","Agent Harness 선택 회고: GUI 경험, 벤더 종속, 2차 개발 자유도라는 세 가지 기준으로 Pi Agent, OMP, Codex, ZCode를 탈락시키고, 마지막으로 OpenCode 코어 + OpenChamber 인터페이스를 선택했다.","md",null,"ko",{},6,true,false,"\u002Fblog\u002Fagent-harness-selection",{"title":5,"description":150},"x","blog\u002Fagent-harness-selection.ko",[163,164],"AI Agent","도구 선택","EewCVYBSmtHaWjYF0oIIBZFUSvw-OGDZl_ALM2NsS1c",[152,152],[168,170,179,188,194,202,209,216,224,230,237,246,253,261],{"path":158,"title":5,"description":150,"date":149,"minRead":155,"tags":169},[163,164],{"path":171,"title":172,"description":173,"date":174,"minRead":155,"tags":175},"\u002Fblog\u002Fcloudflare-broke-stack","2026 인디 개발 베스트 프랙티스: Cloudflare 가난뱅이 올인원 스택","인디 개발자를 위한 무료 기술 스택: 코드는 Codex, 버전 관리는 GitHub, 결제는 Stripe, 프런트엔드는 TanStack Start, 백엔드는 Hono + Workers, 데이터베이스는 D1, 스토리지는 R2, 캐시는 KV — 전부 Cloudflare 위에서 돌아간다.","2026-06-15",[176,177,178],"Cloudflare","인디 개발","기술 스택",{"path":180,"title":181,"description":182,"date":183,"minRead":155,"tags":184},"\u002Fblog\u002Fdeepseek-api-web-search","DeepSeek API에 내장된 웹 검색 — Responses API로 공식 검색을 공짜로 쓰자","DeepSeek가 API 안에 웹 검색을 내장했다: Responses 인터페이스로 deepseek-v4-flash를 호출하고 web_search 도구만 선언하면 된다. 타사 검색 엔진 연동도, 검색 API 키도 필요 없다.","2026-08-05",[185,186,187],"DeepSeek","API","AI 도구",{"path":135,"title":189,"description":190,"date":183,"minRead":191,"tags":192},"DeepSeek V4 Flash 정식 버전 핸즈온: 싸고, 빠르고, 1M 컨텍스트, 내장 검색","DeepSeek V4 Flash 정식 버전을 며칠간 깊게 써본 결과: 공격적으로 싸고, 번개처럼 빠르고, 1M 컨텍스트, 공식 내장 웹 검색, 완전 오픈소스. 유일한 약점은 멀티모달 — 하지만 다른 모델을 조합하면 메울 수 있다.",7,[185,193,187],"모델 리뷰",{"path":195,"title":196,"description":197,"date":174,"minRead":198,"tags":199},"\u002Fblog\u002Ffree-cloudflare","무료 사용자가 Cloudflare를 끝까지 짜먹는 법 — 무료 플랜이 실제로 어디까지 되나?","Cloudflare 무료 플랜이 개인 인터넷 인프라 전체를 지탱할 수 있다: DNS, CDN, Pages, Workers, KV, D1, R2, 이메일, Tunnel, AI Gateway 등.",8,[176,200,201],"무료 플랜","배포",{"path":203,"title":204,"description":205,"date":206,"minRead":198,"tags":207},"\u002Fblog\u002Fmodel-harness-decoupling","순정 Harness가 곧 버전 정답은 아니다: 오픈 모델 시대에는 모델과 Harness를 따로 골라라","Claude 쓰면 Claude Code? 오픈 모델 시대에는 이 직관을 업그레이드할 때다. 순정의 강점은 진짜지만, 좋은 모델을 만드는 일과 좋은 Harness를 만드는 일은 별개의 공학이다 — 이 글은 모델과 Harness를 분리해서 선택할 수 있게 된 이유와 다섯 가지 Harness의 포지셔닝 맵을 정리한다.","2026-09-09",[163,208,164],"Harness",{"path":210,"title":211,"description":212,"date":206,"minRead":198,"tags":213},"\u002Fblog\u002Fopencode-productive-stack","안정, 빠름, 고생산성, 저렴함: 내 AI Coding 스택 완전 기록","OpenCode + OpenChamber + DeepSeek V4 Flash 구독 두 장으로 15개 프로젝트를 동시에 돌려도 쿼터는 거의 안 줄었다. 이 글은 Context 프루닝, 계층 메모리, 데스크톱 자동화, 그리고 '역시 원래 조합'이라는 선택의 교훈까지, 내 전체 설정을 모두 까보는 글이다.",[88,214,215],"AI 코딩","설정",{"path":217,"title":218,"description":219,"date":220,"minRead":221,"tags":222},"\u002Fblog\u002Fproduct-faxin-principle","발심의 원리: 인디 개발자는 왜 버리는 법을 배워야 하나","왜 출발하는가? 누구를 위해 출발하는가? 도대체 어떤 문제를 풀고 싶은가? 제품의 날카로움은 감히 버리는 것에서 나온다.","2026-06-20",10,[223,177],"제품 사고",{"path":225,"title":226,"description":227,"date":220,"minRead":198,"tags":228},"\u002Fblog\u002Fproduct-pain-vs-itch","사용자가 '대박'이라 해도 들뜨지 마라: 통증 포인트와 가려움 포인트","입으로 하는 좋아함은 한 푼 가치도 없다. 수요를 판단하는 기준은 딱 하나다: 사용자가 무엇을 지불할 의향이 있는가.",[223,229],"수요 판단",{"path":231,"title":232,"description":233,"date":149,"minRead":234,"tags":235},"\u002Fblog\u002Fqwen-vision-for-deepseek","DeepSeek에 멀티모달 더하기: Qwen-3.7-Flash 비전 접근법","DeepSeek V4 Flash에는 멀티모달이 없다 — 이미지 이해는 어떻게 할까? 시장을 조사해 보니 현재 가장 가성비 좋은 방법은 Qwen-3.7-Flash다: 이미지 한 장을 인식하는 비용이 거의 들지 않고, V4 Flash와 조합하면 빈틈이 메워진다.",5,[185,236,193],"멀티모달",{"path":238,"title":239,"description":240,"date":241,"minRead":242,"tags":243},"\u002Fblog\u002Fsub-store-cloudflare","프록시 구독 통합을 Cloudflare로 옮겼다","여러 프록시 서비스와 자체 노드를 하나의 구독으로 합치고, 라우팅 규칙을 서버 쪽에서 설정 — 클라이언트는 그냥 구독만 하면 된다.","2026-06-28",4,[176,244,245],"우회","오픈소스 프로젝트",{"path":247,"title":248,"description":249,"date":206,"minRead":191,"tags":250},"\u002Fblog\u002Ftui-cognitive-bandwidth","TUI는 당신의 인지 대역폭을 죽이고 있다: AI Coding의 '긱 필터'는 깨질 때가 됐다","AI Coding Agent가 앞다투어 TUI를 올리면서 인터랙션을 80년대 터미널 패러다임으로 되밀어 놓고는 '몰입형', '프로그래머 존중'이라고 미화한다. 이 글은 TUI가 인지 대역폭을 체계적으로 떨어뜨리는 세 가지 메커니즘과, Web UI가 왜 정답인지를 해부한다.",[214,251,252],"인터랙션 디자인","에세이",{"path":254,"title":255,"description":256,"date":257,"minRead":155,"tags":258},"\u002Fblog\u002Fvalue-not-external","가치가 있는지 논하는 것 자체가 가치가 없다","우리의 가치는 누구도 정의하지 않는다. AI 시대에 인간은 도대체 어떻게 자신을 이해해야 하는가?","2026-06-18",[259,260],"AI 사고","인문 에세이",{"path":262,"title":263,"description":264,"date":265,"minRead":266,"tags":267},"\u002Fblog\u002Fx-growth-1000-followers","하루 조금 넘게 팔로워 1000+ 달성 — 내가 한 일","6월에 X 계정을 진지하게 운영해 하루 조금 넘게 팔로워 1000+를 달성했다. 이 글은 내가 한 일과 받은 피드백을 기록한다.","2026-06-16",12,[268,269],"X 운영","콘텐츠 성장",1789752317366]