AI Coding nên chọn CLI hay IDE? Chọn workflow phù hợp theo task
Nói thật, tôi đã ấp ủ chủ đề này rất lâu. Tôi muốn bàn về nó từ sớm, nhưng cứ trì hoãn vì không sắp xếp được thời gian để viết (thực ra chỉ là lười!).
Mỗi lần thảo luận về AI Coding trong nhóm hoặc chia sẻ các mẹo AI Coding trên tài khoản công khai, luôn có người hỏi: “Cái cửa sổ đen của Claude Code rốt cuộc tốt ở đâu? Tôi dùng Cursor rất ổn, tại sao phải đổi?” Sau đó lập tức có người khác trả lời: “Đã là năm 2026 rồi mà vẫn dùng IDE sao? Bạn lạc hậu rồi! CLI mới là lựa chọn đúng đắn!”
Cả hai bên đều có lý, nhưng lập luận của cả hai đều chưa đầy đủ. Hôm nay tôi sẽ trình bày một lần cho rõ trải nghiệm của mình trong hơn nửa năm qua, từ IDE sang CLI rồi đến kết hợp cả hai, đồng thời kết hợp với trải nghiệm thực tế gần đây về một số sản phẩm nổi bật trong ngành.
Trước hết: CLI và IDE thực chất là gì
CLI và IDE ở đây không chỉ khác nhau về dạng giao diện, mà còn tương ứng với hai cách cộng tác người-máy phổ biến.
Công cụ AI IDE đưa việc chỉnh sửa code, chạy debug và trò chuyện với AI vào cùng một giao diện đồ họa. Cursor, Kiro, Qoder, TRAE và Windsurf đều thuộc nhóm này. Trong đó, Cursor, Windsurf, Kiro và TRAE được phát triển tiếp dựa trên VS Code nên giao diện và thói quen thao tác khá thân thiện với người dùng VS Code. Zed đi theo hướng IDE native; còn plugin Qoder cho JetBrains thì tích hợp khả năng Agent vào IDE hiện có.

Công cụ AI CLI đặt phần tương tác chính trong terminal. Claude Code, Codex, Qwen Code và OpenCode đều là những lựa chọn phổ biến. Bạn nhập một chỉ thị bằng ngôn ngữ tự nhiên, Agent sẽ tự đọc repository, sửa code, chạy test rồi tiếp tục điều chỉnh theo lỗi. Sau khi task bắt đầu chạy, developer không cần liên tục theo dõi từng dòng code, mà phần lớn thời gian chỉ cần xác định mục tiêu, bổ sung constraint và nghiệm thu kết quả.


Nói khái quát, CLI phù hợp hơn khi giao mục tiêu và điều kiện nghiệm thu cho Agent để Agent thực hiện liên tục; IDE phù hợp hơn khi developer theo dõi code và tùy lúc can thiệp chỉnh sửa. Tuy nhiên, ranh giới này ngày càng mờ đi; phần sau sẽ nói riêng về điều đó.
| Khía cạnh | Công cụ AI IDE | Công cụ AI CLI |
|---|---|---|
| Cách tương tác | Giao diện đồ họa (chuột + bàn phím) | Chủ yếu bằng lệnh terminal và chỉ thị văn bản |
| Cộng tác phổ biến | Vừa viết vừa review, tùy lúc can thiệp | Xác định mục tiêu trước, kiểm tra giữa chừng, nghiệm thu cuối cùng |
| Đặc điểm chính | Diff, completion và debug tập trung trong cùng một giao diện | Phù hợp chạy liên tục các task dài, đồng thời dễ tích hợp với script |
| Trường hợp điển hình | Coding hằng ngày, debug UI, sửa tính năng nhỏ | Refactor quy mô lớn, thay đổi nhiều file, tích hợp CI/CD |
| Sản phẩm tiêu biểu | Cursor, Kiro, TRAE, Qoder | Claude Code, Codex, Qwen Code |
Cuộc tranh luận này bắt đầu như thế nào
Vibe Coding xuất hiện sớm hơn Claude Code hơn ba tuần.
Ngày 2 tháng 2 năm 2025, Andrej Karpathy đề xuất Vibe Coding trên X. Ông mô tả một cách lập trình khá tùy hứng: dùng ngôn ngữ tự nhiên để yêu cầu AI sửa code, chấp nhận thay đổi, gặp lỗi thì gửi lỗi lại để tiếp tục sửa, thậm chí có thể không đọc kỹ Diff. Việc chấp nhận thay đổi nhưng không xem kỹ Diff tạo nên khác biệt giữa cách này và phát triển có AI hỗ trợ thông thường. Cách sau vẫn yêu cầu con người hiểu các thay đổi quan trọng, kiểm tra kết quả test và chịu trách nhiệm về sản phẩm cuối cùng.

Ngày 24 tháng 2, Anthropic phát hành Claude Code dưới dạng preview nghiên cứu giới hạn. Sản phẩm đưa Agent trực tiếp vào terminal, cho phép đọc file, thực thi lệnh, sửa code và chạy test. Đơn vị được đem ra thảo luận cũng thay đổi: trước đây mọi người so sánh độ chính xác của từng lần completion, còn từ đó bắt đầu đặt câu hỏi liệu Agent có thể tự hoàn thành trọn vẹn một task hay không.
Đầu tháng 3, YC lại công bố một nhóm số liệu rất thu hút trong cuộc trò chuyện có tên Vibe Coding Is The Future: trong batch mùa đông năm 2025, một phần tư các startup có 95% code do AI tạo ra. Chủ đề thảo luận lập tức chuyển từ “AI có thể viết bao nhiêu code” sang “một người có thể thay thế cả một team hay không”.
Tuy nhiên, 95% chỉ là tỷ lệ code được tạo ra, không thể chứng minh những code đó không cần được hiểu, test và làm lại, càng không thể trực tiếp quy đổi thành số nhân lực tiết kiệm được. Những trường hợp “hoàn thành khối lượng công việc một năm của cả team trong một giờ” trên mạng xã hội có phạm vi task và tiêu chí nghiệm thu khác nhau, nên không đáng tin nếu dùng để chứng minh năng lực sản phẩm.
Sau đó Claude Code bổ sung các khả năng /compact, /code-review, /simplify, Hooks và Agent Teams. Những tính năng này khiến đơn vị làm việc của CLI ngày càng gần với một chuỗi task hoàn chỉnh: đọc code, sửa, xác minh rồi tiếp tục lặp.
Các sản phẩm IDE thì hoàn thiện workflow Agent theo hướng khác. Kiro dùng Requirements-First, Design-First và Quick Spec để bổ sung cho Agent cơ sở về yêu cầu, thiết kế và nghiệm thu; TRAE đưa debug trình duyệt, kết nối database và deploy vào workflow SOLO. Xem thêm tài liệu Kiro Specs.
Công cụ CLI cũng đang bổ sung giao diện. Claude Code và Codex sau đó đều phát hành plugin VS Code, đưa trạng thái Agent, Diff code và việc review kết quả trở lại editor.
Nhìn lại hôm nay, khác biệt giữa CLI và IDE chủ yếu còn nằm ở điểm bắt đầu: một bên bắt đầu từ terminal, bên kia bắt đầu từ editor; lập kế hoạch task, thực thi của Agent và review kết quả ngày càng giống nhau.
Những sản phẩm nào đáng chú ý
Nhóm CLI
1. Claude Code — CLI Agent dành cho model Claude
Claude Code là CLI Agent do Anthropic phát hành vào tháng 2 năm 2025. Model, quyền hạn và việc gọi tool đều do cùng một công ty duy trì, nên các phần này có thể được điều chỉnh cùng với sản phẩm. Bài viết được cập nhật ngày 24 tháng 7 năm 2026, ví dụ được trình bày theo họ model Claude Fable 5; model cụ thể, độ dài context và các tính năng khả dụng vẫn phải căn cứ vào thông tin hiển thị thực tế trong tài khoản.
Một bản cập nhật lớn vào tháng 1 năm 2026 bao gồm 1096 commit. Khi đó, nhà sáng lập Boris Cherny đã trình diễn quá trình để Claude Code tham gia phát triển chính nó, và gọi cách làm này là “dùng AI để tăng tốc AI”.
Một số khả năng thường dùng:
- Review cleanup bằng 4 Agent (
/simplify, thiên về dọn dẹp, không phụ trách tìm correctness bug) - Review tính đúng đắn của diff (
/code-review) - Nén context (
/compact) - Cơ chế Hooks (tự động kích hoạt xác minh sau khi code thay đổi)
- Agent Teams (cộng tác và giao tiếp point-to-point giữa nhiều Agent)
- Hệ sinh thái Skills/Plugins
Rào cản thực tế: cần kết nối subscription Claude Max mới phát huy được năng lực tối đa. Tuy nhiên, có thể thông qua tool CC Switch để kết nối các model trong nước như MiniMax hoặc GLM làm phương án thay thế, qua đó kiểm soát chi phí sử dụng.
2. Codex — coding Agent của OpenAI
Đây là coding Agent do OpenAI cung cấp, hỗ trợ các hình thức như CLI và App. Tính đến ngày 24 tháng 7 năm 2026, ví dụ được trình bày theo họ model GPT-5.6; model và tính năng chịu ảnh hưởng của tài khoản, môi trường chạy và cấu hình. Ý nghĩa chính xác hơn của Harness Engineering là thiết kế môi trường, constraint và feedback loop cho Agent, không có nghĩa con người không còn đọc hoặc viết code.
3. Qwen Code — model vendor trong nước tham gia
Sản phẩm của Alibaba, được tối ưu sát với model Qwen. Đây là đại diện cho xu hướng các model vendor trong nước trực tiếp tham gia phát triển sản phẩm AI Coding.
4. OpenCode — lựa chọn CLI của cộng đồng open source
Một công cụ CLI open source nhẹ, có thể kết nối nhiều model backend, phù hợp với developer muốn tùy chỉnh và phát triển tiếp.
Nhóm IDE
1. Cursor — sản phẩm tiêu biểu của AI IDE
Cursor được phát triển tiếp dựa trên VS Code, từ sớm đã đưa AI completion, chat và thao tác Agent vào editor. Tab completion, Diff trực quan và Agent Mode là những điểm mạnh của nó. Những thay đổi về package và quy tắc sử dụng đã từng ảnh hưởng đến đánh giá của người dùng, nhưng chỉ xét trải nghiệm chỉnh sửa và review, Cursor vẫn thường được đem ra so sánh với các AI IDE khác.
2. Kiro — nhà khám phá workflow Spec
Kiro do AWS phát hành, cung cấp nhiều workflow Spec như Requirements-First, Design-First và Quick Spec. Khi yêu cầu còn khá mơ hồ, có thể viết rõ Requirements trước; nếu đã có phương án thiết kế, cũng có thể bắt đầu từ Design hoặc Quick Spec, không cần task nào cũng đi qua cùng một workflow hoàn chỉnh.
Tôi coi trọng hai điểm kiểm tra mà Spec mang lại: trước khi bắt tay làm, con người có thể xem yêu cầu và thiết kế có đi chệch hướng hay không; khi thực thi, Agent cũng có sẵn mô tả task và căn cứ nghiệm thu. Khi làm Feature phức tạp, workflow này giúp giảm đáng kể việc làm lại; với các yêu cầu nhỏ như sửa nội dung hoặc chỉnh style, đi qua đầy đủ một lượt lại hơi nặng.
3. TRAE — đại diện cho trải nghiệm all-in-one
TRAE là IDE native cho AI do ByteDance phát hành. Chế độ SOLO đưa việc triển khai yêu cầu, debug trình duyệt, kết nối database và deploy vào cùng một workflow, nhiều cấu hình không cần người dùng tự chuyển qua lại giữa các tool. Với người muốn biến ý tưởng thành prototype chạy được trước, trải nghiệm all-in-one này thực sự tiện.
4. Qoder — hybrid CLI core + IDE shell
Qoder dùng cấu trúc “IDE shell + CLI core”. Chế độ Editor thiên về cộng tác người-máy: bạn viết code, AI completion và chỉnh sửa bên cạnh; chế độ Quest gần với việc giao toàn bộ task cho Agent hơn, bên dưới do Qoder CLI điều khiển. Hai chế độ nằm trong cùng một IDE và có thể chuyển đổi trực tiếp khi cần.
Khi cần vừa viết vừa sửa, cứ ở lại Editor; gặp task nhiều file thì giao cho Quest, như vậy có thể bớt một lần đổi tool. Tuy nhiên, khả năng CLI có được đồng bộ vào IDE hay không và protocol liên quan có tương thích đầy đủ hay không vẫn phụ thuộc vào từng version; không thể mặc định mọi khả năng mới sẽ được tích hợp ngay.
Nhóm IDE native (không phải VS Code)
1. Zed — IDE native hiệu năng cao
Zed do đội ngũ ban đầu của Atom xây dựng, phần dưới được viết bằng Rust và sử dụng kiến trúc native khác với hệ thống extension của VS Code. Sản phẩm tập trung vào tốc độ khởi động và độ phản hồi khi chỉnh sửa, đồng thời tích hợp sẵn tính năng AI. Nó khá phù hợp với developer đã chán các sản phẩm thuộc hệ VS Code nhưng không muốn từ bỏ khả năng Agent.
2. JetBrains + plugin Qoder — nâng cấp AI cho IDE lâu đời
Dòng JetBrains (IntelliJ IDEA, PyCharm, WebStorm...) đã tích lũy năng lực rất sâu về index, refactor và debug cho các ngôn ngữ, framework như Java/Kotlin, Python và JavaScript. Plugin Qoder đưa khả năng Agent của CLI core vào JetBrains. Developer đã quen với các IDE này không cần chuyển toàn bộ sang editor khác chỉ để sử dụng Agent.
Toàn cảnh sản phẩm
| Sản phẩm | Hình thức | Liên kết model | Đặc điểm chính | Phù hợp hơn với |
|---|---|---|---|---|
| Claude Code | CLI | Họ Claude Fable 5 | Phát triển cùng model Claude và việc gọi tool | Developer quen terminal, thường xử lý task dài |
| Codex | CLI + App | Họ GPT-5.6 | Agent đa môi trường và quản lý task | Người dùng hệ sinh thái OpenAI |
| Qwen Code | CLI | Qwen | Tương thích xoay quanh model Qwen | Developer muốn dùng model trong nước |
| Cursor | IDE | Nhiều model | Tab completion, Diff trực quan | Developer không thể thiếu IDE trong coding hằng ngày |
| Kiro | IDE | Claude (Opus) | Nhiều workflow Spec để bắt đầu | Feature phức tạp và cộng tác team |
| TRAE | IDE | Nhiều model | Workflow SOLO all-in-one | Tạo và xác minh prototype nhanh |
| Qoder | IDE + CLI | Nhiều model | Có thể chuyển đổi giữa hai chế độ Editor và Quest | Developer muốn kết hợp chỉnh sửa và task Agent trong một sản phẩm |
| Zed | IDE native | Nhiều model | Viết bằng Rust, khởi động và phản hồi khi chỉnh sửa nhanh | Developer coi trọng hiệu năng editor |
| JetBrains + Qoder | IDE native + CLI | Nhiều model | Kết hợp hỗ trợ ngôn ngữ, framework với khả năng Agent | Developer Java/Python/JS đã quen JetBrains |
CLI thực sự mạnh ở đâu
Sau khi chuyển từ IDE sang CLI, điều đầu tiên thay đổi là quy mô task. Trước đây, tôi thường yêu cầu AI completion đoạn code tiếp theo hoặc sửa vài dòng trong file hiện tại; khi dùng CLI, tôi sẽ trực tiếp giao một mục tiêu hoàn chỉnh, để nó đọc repository, sửa code, chạy test rồi tiếp tục chỉnh sửa theo lỗi.
Khi task dài hơn, sự khác biệt này thể hiện rõ. Khi Agent chạy hàng chục phút, tôi có thể đi làm việc khác trước rồi quay lại kiểm tra tiến độ sau. IDE tiếp tục được dùng để đọc code và tra cứu tài liệu, còn CLI đặt bên cạnh để làm việc, hai bên không cản trở nhau. Cảm giác “đi uống một tách cà phê, quay lại mà nó vẫn đang chạy” thực sự rất dễ khiến người ta say mê.
CLI cũng dễ tích hợp vào workflow engineering hiện có. Cùng một bộ lệnh có thể được gọi trong terminal local, host remote hoặc CI; exit code và output văn bản cũng thuận tiện để giao cho script xử lý.
Tuy nhiên, cái gọi là Run Everywhere chỉ cho thấy cách tương tác dễ chuyển đổi, không có nghĩa đổi môi trường là có thể chạy nguyên trạng. File system, credential, network, sandbox, cách approval và tool khả dụng đều có thể khác nhau; quyền hạn và việc xác minh cần thiết không thể thiếu mục nào.
Nhiều tính năng Agent thường được thử nghiệm trước trong CLI. Việc thay đổi command và protocol tool nhanh hơn, không cần thiết kế trước cả một bộ tương tác đồ họa. Nhưng thứ tự này không cố định; các khả năng như chỉnh sửa trực quan và debug tương tác thường được IDE hoàn thiện sớm hơn, đồng thời cũng thuận tiện hơn khi sử dụng.
Những điểm IDE không thể thay thế
Sau khi dùng CLI nhiều hơn, tôi cũng không vứt bỏ IDE. Khi viết một đoạn code nhỏ, debug API hoặc xem Diff, IDE vẫn thuận tiện hơn.
Khi một thay đổi trải rộng qua hơn mười file, Diff trực quan có thể liệt kê trực tiếp những dòng đã thay đổi và những file cần rollback. Claude Code và Codex cũng cung cấp các khả năng như /diff và Review, CLI không chỉ có thể dựa vào git diff để xem thủ công; chỉ là việc điều hướng file, thông tin type, breakpoint và Diff đều nằm trong cùng một giao diện, nên review thực sự tiện hơn.
Tab completion lại tạo ra một nhịp làm việc khác. Khi ý tưởng triển khai đã khá rõ, tôi không muốn giao toàn bộ task cho Agent; tự viết vài dòng rồi nhấn Tab để chấp nhận completion đôi khi nhanh hơn. CLI có thể bỏ qua hoàn toàn bước completion này, nhưng không phải thay đổi nhỏ nào cũng đáng để khởi động một task hoàn chỉnh.
Các vấn đề frontend và UI thường cần vừa xem trang render, vừa kiểm tra network request và đặt breakpoint; đó vốn là những việc IDE làm tốt. CLI có thể kết nối thêm các tool như Agent Browser, làm được là một chuyện nhưng cấu hình và chuỗi thao tác vẫn thêm một lớp.
Với người mới tiếp xúc với AI Coding, IDE cũng thân thiện hơn nhiều. Môi trường terminal, command, quyền hạn và thao tác Git đều được đưa vào button và panel, ít nhất người mới sẽ không bị mắc ngay ở bước cấu hình tool.
Rốt cuộc nên chọn thế nào
Kết luận của tôi là: Không có công cụ nào tốt hơn tuyệt đối, chỉ có công cụ phù hợp hơn với bối cảnh hiện tại. Một workflow trưởng thành nên có thể chuyển đổi linh hoạt theo task, background và team.
Chọn theo quy mô task
| Loại task | Tool đề xuất | Lý do |
|---|---|---|
| Sửa nhỏ (sửa function, sửa style) | IDE (Tab completion + Diff trực quan) | Tốc độ nhanh, phản hồi tức thì |
| Task trung bình (thêm API, sửa module) | Chế độ Plan (CLI hoặc IDE Agent đều được) | Cân bằng planning và execution |
| Cấp Feature (tính năng mới, refactor lớn) | Chế độ Spec hoặc chạy CLI dài hạn | Tính tự chủ cao, phù hợp lặp trong thời gian dài |
Chọn theo background cá nhân
| Tình huống của bạn | Đề xuất | Lý do |
|---|---|---|
| Backend senior, quen thao tác terminal | Ưu tiên CLI | Phát huy tối đa lợi thế hiệu suất của CLI |
| Developer frontend, thường xuyên debug UI | Ưu tiên IDE | Tích hợp trình duyệt và khả năng trực quan là nhu cầu bắt buộc |
| Không học chuyên ngành, AI entrepreneur | IDE (Cursor / TRAE / Kiro) | Rào cản thấp, trải nghiệm all-in-one |
| Muốn cân bằng hai hình thức | Chọn tool đồng thời cung cấp chế độ chỉnh sửa và Agent | Chuyển đổi cách tương tác trong cùng một sản phẩm |
| Theo đuổi hiệu năng editor | Zed | Viết bằng Rust, khởi động cực nhanh, thân thiện với người đã chán VS Code |
| Dự án Java, dùng JetBrains | JetBrains + Qoder | Hỗ trợ ngôn ngữ chuyên sâu + khả năng AI Agent, chi phí chuyển đổi thấp nhất |
Chọn theo cộng tác team
- Nếu team đã thực hiện review yêu cầu và thiết kế, có thể commit tài liệu Spec dưới dạng asset được version hóa vào Git, qua Spec Review trước rồi mới vào Code Review. Không cần bắt buộc thống nhất client; chỉ cần thống nhất format file và workflow nghiệm thu là đủ.
- Nếu team coi trọng tự do lựa chọn tool hơn, có thể ghi constraint của dự án vào AGENTS.md và Rules. Người thì dùng CLI, người thì ở lại IDE; chỉ cần cuối cùng cùng thực thi một bộ test, kiểm tra và quy tắc commit thì sẽ không mất kiểm soát vì khác client.
Xu hướng ngành: CLI và IDE đang nhanh chóng hợp nhất
Tiếp tục tranh luận CLI hay IDE sẽ thay thế bên kia không còn nhiều ý nghĩa. Cả hai bên đều đang bổ sung phần trải nghiệm còn thiếu của mình.
Claude Code đã phát hành plugin VS Code chính thức, Codex phát triển desktop App độc lập, Gemini CLI cũng đang mở rộng sang editor. Ở chiều ngược lại, Agent Mode của Cursor, chế độ SOLO của TRAE, khả năng chạy dài hạn Spec của Kiro và chế độ Quest của Qoder đều đã bắt đầu hỗ trợ giao trọn vẹn một task cho Agent.
Khi xây dựng Claude Code, Anthropic từng đưa ra một nhận định rất cấp tiến: “Khi năng lực AI tăng lên, con người hoàn toàn không cần chú ý đến bản thân code. GUI nặng nề hiển thị lượng lớn code đương nhiên cũng không còn cần thiết.” Một số sản phẩm thực sự đang làm mờ khu vực chỉnh sửa, đưa panel Agent, tiến độ task và việc nghiệm thu kết quả lên vị trí nổi bật hơn.
Tuy nhiên, tôi không hoàn toàn đồng ý với nhận định “sau này hoàn toàn không cần xem code”. Code vẫn là asset cuối cùng có thể audit, việc triển khai quan trọng, Diff, kết quả test và rủi ro production vẫn cần có người xem. Khu vực chỉnh sửa có thể lùi lại một chút, nhưng code review và nghiệm thu kết quả ngược lại sẽ chiếm nhiều sự chú ý hơn.
Khi model vendor tự xây dựng Agent, nếu một lần gọi tool thất bại, họ có thể đồng thời kiểm tra model, chiến lược prompt, hệ thống quyền hạn và runtime của Agent. Anthropic có Claude Code, OpenAI có Codex, Google có Gemini CLI, Alibaba có Qoder; giữa team model và team sản phẩm ít bị ngăn cách hơn một lớp.
Các vendor IDE bên thứ ba cần thích ứng theo cập nhật của model, đôi khi sẽ chậm một nhịp; đổi lại, họ có thể đồng thời kết nối nhiều model, không cần đặt cược toàn bộ trải nghiệm vào một model vendor. Vì vậy, hiện chưa thể kết luận hai loại sản phẩm này bên nào chắc chắn phát triển nhanh hơn.
Tổng kết
| Nếu bạn... | Hãy chọn |
|---|---|
| Quen terminal, cần task dạng script | CLI |
| Coi trọng trực quan, cần debug | IDE |
| Task hỗn hợp, muốn chuyển đổi linh hoạt | Dùng cả hai |
| Muốn giảm việc đổi tool | Đánh giá các sản phẩm đồng thời cung cấp chế độ chỉnh sửa và Agent |
Hiện tôi không định cố định vai trò chính-phụ giữa CLI và IDE. Khi viết một đoạn code nhỏ, chỉnh UI hoặc xem Diff, tôi ở lại IDE; khi task trải rộng qua nhiều file và còn phải chạy test lặp đi lặp lại, tôi giao cho CLI hoặc chế độ Agent trong IDE.
Trong team cũng có thể có người dùng Cursor, người dùng Claude Code. Điều cần thống nhất là format Spec, AGENTS.md, test, CI và tiêu chuẩn nghiệm thu của Code Review; không cần ép mọi người phải theo dõi cùng một client.
