Bảng công việc cho Claude Code: thiết lập thật sự trong hai phút với MCP
Kết nối Claude Code với bảng công việc Weft bằng một lệnh và một lần đăng nhập trên trình duyệt, rồi thêm một đoạn CLAUDE.md để nó nhận, báo cáo và đóng việc.
Weft là trình quản lý công việc bằng AI cho nhà sáng lập độc lập và nhóm nhỏ.
Tác giả: Andrei Finogeev ·
Để cho Claude Code một bảng công việc, hãy chạy một lệnh, claude mcp add --transport http weft https://letsweft.com/api/mcp, rồi đăng nhập Weft trong trình duyệt ở lần đầu Claude Code kết nối. Không có key nào phải sao chép và không có gì phải dán vào file cấu hình. Sau đó, một đoạn ngắn trong CLAUDE.md khiến Claude Code nhận công việc trước khi sửa code, báo cáo trong lúc làm, và để lại biên nhận khi xong.
Chúng tôi là người làm ra Weft. Thông tin về sản phẩm khác lấy từ trang chính thức của họ, kiểm tra ngày 27/10/2026.
Bảng công việc cho Claude Code những gì mà terminal không có?
Claude Code biết repository trước mặt nó, chứ không biết ai khác đang làm, hay một phiên bị sập đã bắt đầu công việc nào. Bảng giữ trạng thái đó bên ngoài mọi phiên, nên một người, một cửa sổ Claude Code thứ hai và một cuộc chat ChatGPT đều thấy cùng một thứ.
Không phải repo nào cũng cần bảng. Một người, một phiên ngắn và một danh sách TODO thường là đủ. Bảng bắt đầu có giá trị khi công việc trải qua nhiều phiên hoặc nhiều agent, hoặc khi một người phải xem kết quả trước khi tính là xong.
Kết nối Claude Code với Weft trong hai phút thế nào?
- Tạo tài khoản miễn phí tại letsweft.com. Một bảng mới bắt đầu với bốn cột: Backlog, Todo, Doing và Done.
- Trong terminal, chạy
claude mcp add --transport http weft https://letsweft.com/api/mcp. Claude Code lưu máy chủ cho dự án hiện tại; thêm--scope usernếu bạn muốn nó có trong mọi dự án (xem tài liệu MCP cho Claude Code của Anthropic). - Chạy
claude. Lần đầu Weft được dùng, một cửa sổ trình duyệt mở ra cho OAuth. Nếu không thấy, gõ/mcp, chọn weft và xác thực từ đó. - Trên màn hình xin quyền của Weft, chọn kết nối này được làm gì: full, write (mọi thứ trừ ba công cụ phá hủy) hoặc read. Bạn có thể đổi sau trong Cài đặt → Client AI đã kết nối.
- Quay lại Claude Code và hỏi: “Trên bảng của tôi có gì?”
Endpoint nói MCP qua Streamable HTTP và mở ra 32 công cụ. Weft cấp refresh token, nên ứng dụng tự gia hạn đăng nhập. Nếu bạn dùng một ứng dụng không làm được OAuth, token truy cập cá nhân cũng dùng được, nhưng Claude Code không cần. Trang thiết lập đầy đủ ở letsweft.com/claude-code.
Kiểm tra nó chạy thế nào mà không để nó thay đổi gì?
Hãy để câu lệnh đầu tiên chỉ đọc. Nó cho bạn biết công cụ đã được nạp và đăng nhập tới đúng không gian làm việc, và không có gì trên bảng bị di chuyển:
Liệt kê bảng Weft của tôi: các cột, những gì đang ở Doing, và những gì đang chờ tôi.
Không thay đổi gì.Claude Code sẽ gọi get_board_state hoặc get_my_work. Cả hai đều là công cụ chỉ đọc. Nếu bạn muốn có biên an toàn trong lúc làm quen, hãy đặt kết nối ở mức read trên màn hình xin quyền: các lượt gọi ghi khi đó bị từ chối, và lượt gọi bị từ chối không tính vào hạn mức hằng tháng.
Một chi phí cần nói thật: 32 định nghĩa công cụ chiếm khoảng 18.000 token trong ngữ cảnh của Claude Code.
Một công việc được nhận trông như thế nào?
Đặt một công việc nhỏ và có thật vào Todo, ví dụ “sửa bài test ngày tháng chập chờn”, và bảo Claude Code nhận nó. Một lượt chạy tốt diễn ra như sau:
get_my_worktrả về những gì đã thuộc về ứng dụng này, những gì đang chờ bạn, và còn chỗ để bắt đầu việc mới không.start_tasknhận công việc, chuyển nó sang Doing và trả vềrunIdcùngleaseToken. Phản hồi cũng bảo agent gia hạn mỗi 300 giây.- Claude Code làm việc trong repo như bình thường. Cứ vài phút nó gọi
report_progress, lệnh này gia hạn lease. - Nếu gặp một quyết định chỉ bạn đưa ra được, nó gọi
request_inputkèm các phương án. Claude Code hiện câu hỏi dưới dạng thẻ lựa chọn gốc của nó; câu trả lời đi ngược lại quasubmit_answer. complete_taskđóng lượt chạy với một kết quả, artifacts như mã băm commit và kết quả test, và những gì nó chưa làm.
Mặc định, công việc đã hoàn thành đi thẳng vào Done. Nó dừng lại trong Hộp thư của bạn khi công việc cần xem xét hoặc một bước kiểm chứng thất bại. Ở đó bạn chọn Chấp nhận, Làm lại, Để sau hoặc Bỏ. Nếu agent đã truyền nextStep, chẳng hạn “merge PR #12”, Chấp nhận sẽ phê duyệt đúng bước đó và nó quay về agent để thực hiện.
Toàn bộ vòng lặp, với mọi lời từ chối và mọi trường, có trong hướng dẫn về vòng nhận việc.
Nên viết gì vào CLAUDE.md?
Mô tả công cụ đã mang sẵn các quy tắc này; vài dòng trong CLAUDE.md biến chúng thành thói quen của repo. Dán vào và chỉnh lại:
## Bảng công việc Weft
Weft (máy chủ MCP "weft") là bảng chung của repo này. Các ứng dụng AI khác
và con người cũng đọc nó, nên hãy giữ nó đúng sự thật.
- Đầu mỗi phiên, gọi get_my_work. Làm những gì nó trả về;
không chọn công việc theo trí nhớ.
- Trước khi sửa bất kỳ file nào cho một công việc, gọi start_task với id của nó.
Giữ lại runId và leaseToken nó trả về.
- already_claimed: người khác đang giữ. Đừng làm trùng; chọn việc khác.
- attention_queue_full: đừng thử lại. Làm theo gợi ý trong phản hồi
(hoàn thành hoặc làm rõ công việc đang có).
- Trong lúc làm, gọi report_progress với runId và leaseToken khoảng mỗi
5 phút, và ở mỗi mốc thật sự (test xanh, đã mở PR).
- Chỉ gọi request_input cho quyết định mà con người phải đưa ra: bất cứ thứ gì
không đảo ngược được (production, tiền, xuất bản, xóa dữ liệu) hoặc một ngã rẽ thật
không có mặc định hợp lý. Đưa ra các phương án. Không bao giờ xin phép để làm tiếp.
- Khi xong, gọi complete_task với:
- outcome: một hai câu về những gì đã thay đổi
- artifacts: mã băm commit, URL của PR, lệnh test và kết quả của nó
- notDone: những gì bạn bỏ qua hoặc để lại sau
- unknowns: những gì bạn chưa kiểm chứng được
- nextStep: bước duy nhất bạn sẽ làm nếu người dùng chấp nhận
- Nếu dừng mà chưa xong, hãy nói rõ và để công việc ở Doing.Artifacts biến “xong rồi” thành thứ bạn kiểm tra được. Lượt gọi này không bao giờ thất bại vì thiếu bằng chứng, vì mất công việc đã xong còn tệ hơn ghi nhận nó khi chưa kiểm chứng.
Chuyện gì xảy ra khi một phiên Claude Code chết giữa chừng?
Không cần ai dọn dẹp sau nó. Quyền nhận việc là một lease, không phải một cờ đánh dấu. start_task cấp 20 phút, và mỗi lần report_progress lại gia hạn. Một phiên bị sập, mất mạng hay bị đóng thì không báo cáo được, nên sự im lặng chính là tín hiệu.
- Sau 20 phút không có tín hiệu nhịp, lượt chạy bị đánh dấu là cũ, lease token bị xóa và công việc trở về trạng thái chưa giao.
- Một lượt quét chạy mỗi 10 phút, và công việc cũng được giải phóng ngay khi một ứng dụng khác thử nhận nó.
- Một lượt chạy đang chờ câu trả lời của bạn giữ quyền nhận việc trong 60 phút. Sau đó lease hết, nhưng câu hỏi vẫn mở trong Hộp thư của bạn.
- Quyền nhận việc do cơ sở dữ liệu quyết định, nên hai cửa sổ Claude Code tranh cùng một công việc không thể cùng thắng. Bên thua nhận already_claimed kèm id và tiêu đề của công việc.
Chạy nhiều agent cùng lúc được bàn trong bài nhiều agent AI trên một bảng.
Tôi có xem được cùng bảng đó từ ChatGPT hay điện thoại không?
Có. Đó là một bảng sau một endpoint. Weft là ứng dụng đã phát hành trong ChatGPT trên mọi gói, kể cả Free (thiết lập), nên bạn có thể hỏi ChatGPT xem Claude Code đã làm xong gì trong đêm. Cursor cài bằng một cú nhấp (thiết lập) và Codex dùng một mục cấu hình cộng codex mcp login weft (thiết lập). Trên claude.ai và Claude Desktop, Weft được thêm làm connector tùy chỉnh.
Weft cũng có ứng dụng iOS và Android. Khi một công việc rơi vào hàng chờ của bạn, điện thoại nhận một thông báo đẩy, tối đa một lần mỗi 10 phút cho mỗi không gian làm việc, nên câu hỏi từ Claude Code tới được bạn khi bạn không ngồi ở bàn. Mỗi ứng dụng OAuth là một tác nhân riêng, và bảng hiển thị tên mà nó đã đăng ký.
Để đọc lại những gì agent đã làm, xem bài agent AI của tôi đã làm gì?
Những gì có thể trục trặc, và sửa thế nào?
Chưa đăng nhập
Nếu Claude Code báo weft cần xác thực, gõ /mcp, chọn weft và xác thực. Nếu bạn đã ngắt kết nối ứng dụng trong Cài đặt → Client AI đã kết nối của Weft, token cũ của nó bị từ chối ở lượt gọi tiếp theo, nên hãy đăng nhập lại theo cách tương tự.
Không thấy công cụ của Weft
Chạy claude mcp list và kiểm tra weft có ở đó với URL https://letsweft.com/api/mcp. Máy chủ được lưu theo từng dự án, trừ khi bạn thêm nó với --scope user, nên một thư mục khác có thể không có.
already_claimed
Đây là một câu trả lời, không phải lỗi. Một ứng dụng khác đang giữ lease còn hiệu lực trên công việc đó. Agent nên chọn việc khác. Nếu bạn biết phiên kia đã chết, hãy chờ: lease hết hạn trong vòng 20 phút và công việc được giải phóng.
attention_queue_full
Quá nhiều việc đã xong hoặc bị kẹt đang chờ bạn: 5 mục trong không gian làm việc một người hoặc 10 trong đội, hoặc 45 phút xem xét ước tính, tùy cái nào tới trước. Câu hỏi cũng được tính. start_task từ chối cho tới khi bạn dọn bớt Hộp thư. Phản hồi liệt kê những gì agent vẫn làm được (report_progress, get_my_work, get_board_state, search), để nó hoàn thành hoặc dọn dẹp thay vì bắt đầu thêm.
Lượt gọi dừng lại ở gói Free
Free gồm 200 lượt gọi AI mỗi tháng, và 48 giờ đầu sau khi đăng ký không bị tính. Một phiên dài với tín hiệu nhịp mỗi năm phút tiêu lượt gọi đều đặn. Pro bỏ giới hạn này; xem bảng giá.
So với TODO.md, GitHub Issues hay Hypertask thì sao?
Thông tin về GitHub dẫn tới tài liệu và trang giá của GitHub; thông tin về Hypertask dẫn tới tài liệu của họ. Để xem bảng rộng hơn, xem so sánh trình quản lý công việc MCP.
| Weft | Một file TODO.md trong repo | GitHub Issues MCP | Hypertask | |
|---|---|---|---|---|
| Claude Code kết nối thế nào | Một lệnh claude mcp add, Streamable HTTP | Không cần kết nối: Claude Code đọc file | Máy chủ chính thức được lưu trữ sẵn api.githubcopilot.com/mcp/ | Thiết lập theo tài liệu: cấu hình với một API key sao chép; Streamable HTTP tại /mcp, SSE cũ tại /sse |
| Đăng nhập và hết hạn | OAuth trong trình duyệt; có refresh token, nên ứng dụng tự gia hạn đăng nhập. Token truy cập không bắt buộc cho ứng dụng không có OAuth | Không cần | OAuth hoặc personal access token | Key sao chép hết hạn sau 30 ngày; kết nối duyệt qua trình duyệt kéo dài 90 ngày, không có refresh token |
| Nhận việc kèm lease, ngay trong MCP | Có: start_task, lease 20 phút, already_claimed cho agent thứ hai | Không. Hai phiên có thể sửa cùng một dòng | Không được mô tả trong tài liệu của GitHub | Lease có dưới dạng endpoint REST, không phải công cụ MCP, có chủ đích |
| Hỏi người dùng giữa chừng | request_input kèm phương án; Hộp thư và thông báo đẩy trên điện thoại | Chỉ trong terminal bạn đang nhìn | Bình luận trên issue | Chuyển cấp chỉ qua REST |
| Số công cụ MCP | 32 | Không có | Không nêu | 21 |
| Cùng bảng đó từ ChatGPT | Ứng dụng ChatGPT đã phát hành, mọi gói kể cả Free | Không | Tài liệu của GitHub không đề cập | Custom GPT với OpenAPI Actions, hoặc connector qua developer mode theo llms.txt của họ |
| Điện thoại | Ứng dụng iOS và Android | Một file văn bản | GitHub Mobile, iOS và Android (App Store, Google Play) | Không có ứng dụng iOS gốc (web app trên màn hình chính); APK Android trên GitHub, không có trên Play |
| Ngôn ngữ | 27 | Ngôn ngữ của bạn | Không nêu | Chỉ tiếng Anh |
| CLI cho script và CI | Không | Bất kỳ công cụ shell nào | Không nêu ở đây | Có, @hypertask/hypertask_cli |
| Giá mỗi chỗ | Free: 50 công việc, 200 lượt gọi AI mỗi tháng. Pro: $7/tháng hoặc $60/năm | Miễn phí | Gói Free; gói Team trả phí, xem bảng giá GitHub | Free (3 bảng mỗi người); BYOK $8 theo năm / $10 theo tháng; Pro $16 theo năm / $20 theo tháng |
| Cần tín dụng AI | Không: phần suy nghĩ diễn ra trong Claude Code | Không | Không, với issue | AI tích hợp: hạn mức khởi đầu ở Free, key của bạn ở BYOK, có sẵn ở Pro |
Một file TODO.md là câu trả lời đúng cho một lập trình viên trên một repo: có phiên bản cùng code, không cần tài khoản, không cần xác thực. Nó vỡ khi hai phiên cùng sửa nó, hoặc khi bạn muốn trả lời một câu hỏi từ điện thoại.
GitHub Issues là nơi tự nhiên khi công việc của bạn vốn đã là issue và pull request và cả đội đều sống trên GitHub. Weft không tích hợp GitHub, nên đường dẫn commit và PR đi theo dạng artifacts trên biên nhận thay vì qua đồng bộ.
Hypertask là lựa chọn tốt hơn nếu bạn muốn CLI cho hook và CI, REST API, agent như tài khoản dịch vụ có danh tính riêng, tính năng AI tích hợp, theo dõi thời gian hoặc một ứng dụng ưu tiên bàn phím. Weft không có CLI, không có API công khai và không theo dõi thời gian. Weft khác ở chỗ việc nhận việc, tín hiệu nhịp và câu hỏi gửi cho người dùng là các công cụ MCP mà Claude Code gọi trực tiếp, đăng nhập là OAuth có gia hạn, và cùng một bảng có trong ChatGPT lẫn trên cả hai kho ứng dụng điện thoại. Xem thêm trong bài so sánh với Hypertask.
- Claude Code có cần API key không?
- Không. Claude Code đăng nhập bằng OAuth trong trình duyệt, và Weft cấp refresh token để ứng dụng tự gia hạn đăng nhập. Token truy cập cá nhân có cho những ứng dụng không làm được OAuth, nhưng Claude Code không cần.
- Claude Code có tự đánh dấu công việc là Done mà không có tôi không?
- Mặc định là có: complete_task chuyển công việc sang Done kèm biên nhận. Công việc cần xem xét, hoặc có bước kiểm chứng thất bại, sẽ dừng lại trong Hộp thư của bạn để chọn Chấp nhận, Làm lại, Để sau hoặc Bỏ.
- Tôi có ngăn Claude Code xóa đồ được không?
- Đặt kết nối ở mức write trên màn hình xin quyền, hoặc sau đó trong Cài đặt → Client AI đã kết nối. Write cho phép mọi thứ trừ ba công cụ phá hủy (trash_task, archive_done_tasks, complete_sprint). Read chỉ cho phép 11 công cụ chỉ đọc. Dù thế nào agent cũng không xóa vĩnh viễn công việc được; thùng rác giữ chúng 30 ngày, và khôi phục từ thùng rác là tính năng của gói Pro.
- Weft có tính phí AI ngoài Claude không?
- Không. Weft không có tín dụng AI: phần suy nghĩ diễn ra trong Claude Code theo gói Claude của chính bạn. Weft đếm lượt gọi công cụ: 200 mỗi tháng ở Free, không giới hạn ở Pro với $7 mỗi chỗ mỗi tháng hoặc $60/năm. Xem bảng giá.
- Nếu tôi đang giữ công việc trong Linear, Jira, Notion hay Trello thì sao?
- Nhập dữ liệu miễn phí trên mọi gói: file CSV xuất từ Linear, Jira hoặc Notion, hoặc một bảng Trello dạng JSON. Claude Code cũng có thể tạo nhiều công việc cùng lúc bằng bulk_create_tasks.