Build công cụ cá nhân bằng Claude Code: Quản lý chi tiêu, todo, thói quen không cần code
Cách xây dựng công cụ cá nhân (chi tiêu, todo, thói quen) bằng Claude Code không cần viết code. Dùng MCP lưu trữ local, Subagents phân tích, Hooks tự động hóa.
Định nghĩa
Build công cụ cá nhân nghĩa là biến Claude Code thành "hệ điều hành" cho cuộc sống của bạn — thay vì viết app hoàn chỉnh, bạn dùng conversation làm giao diện, filesystem làm database, và AI làm backend. Kết hợp MCP để lưu trữ dữ liệu local (SQLite, CSV), Subagents để xử lý logic riêng biệt cho từng domain (chi tiêu, công việc, thói quen), và Hooks để tự động hóa mà không cần server hay deployment.
Giải thích chi tiết
Vấn đề với app truyền thống cho nhu cầu cá nhân
Bạn muốn ghi chép chi tiêu hàng ngày hay quản lý việc nhà, nhưng cách truyền thống bắt bạn phải viết app full-stack: React frontend, Node.js backend, PostgreSQL database, rồi deploy lên AWS. Điều này quá thừa thãi cho nhu cầu của một người dùng duy nhất — bạn phải trả tiền server, maintain hệ thống, viết hàng trăm dòng boilerplate CRUD, chỉ để thêm một dòng "Mua sữa" vào database.
Hơn nữa, app truyền thống tạo ra context switching phiền phức: đang làm việc trong terminal, phải chuyển sang browser mở Notion hoặc Excel, rồi quay lại. Claude Code giải quyết cả hai vấn đề bằng cách biến chính cuộc trò chuyện thành giao diện, và thư mục trên máy bạn thành database — không cần mở app nào khác.
Kiến trúc AI-native: AI làm runtime
Thay vì viết business logic bằng if-else và SQL queries, bạn mô tả ý định bằng tiếng Việt, và LLM tự sinh logic ngay lập tức. Đây là inversion of control: AI trở thành runtime thay vì chỉ là công cụ viết code.
Ví dụ thực tế: với app chi tiêu truyền thống, bạn phải hardcode các danh mục (Ăn uống, Di chuyển, Giải trí). Khi muốn thêm quy tắc mới như "Cảnh báo nếu tiền cà phê Highlands/Starbucks vượt quá 30% ngân sách ăn uống", bạn phải viết query, update backend, deploy lại.
Với AI-native: bạn tạo subagent finance-guardian với prompt "Theo dõi bảng expenses. Nếu user thêm 'Highlands', 'Starbucks' hoặc 'Phúc Long' và tổng chi cà phê tháng này vượt 30% danh mục Food, hãy gợi ý tự nấu ăn để tiết kiệm." Không cần viết thêm dòng code nào. Schema thay đổi? Chỉ cần nói với agent.
Ba trụ cột kỹ thuật
MCP — Persistence Layer
MCP biến Claude từ "chatbot không nhớ gì" thành "ứng dụng có trạng thái". Điểm then chốt: Persistence thông qua khả năng truy vấn, không phải qua bộ nhớ. Claude không cần nhớ toàn bộ dữ liệu (vì context window có hạn), nó chỉ cần capability để query khi cần qua MCP servers.
Với công cụ cá nhân, bạn dùng stdio transport để nối local SQLite:
claude mcp add --transport stdio sqlite -- npx @modelcontextprotocol/server-sqlite ~/data/personal.dbBây giờ Claude có thể thực thi SELECT * FROM expenses WHERE date > '2025-01-01' như một developer đang dùng TablePlus, nhưng bạn chỉ cần nói: "Cho tôi xem chi tiêu tháng này" hoặc "Tính tổng tiền Grab tháng trước".
Subagents — Logic Segregation
Tại sao cần subagents cho công cụ cá nhân? Vì ô nhiễm context là kẻ thù của việc tổ chức cuộc sống. Nếu bạn vừa chat với Claude về expense tracker, rồi chuyển sang debug Python script, context về chi tiêu vẫn nằm trong conversation làm nhiễu suy luận của các câu hỏi coding sau đó.
Subagents tạo cửa sổ context riêng biệt cho từng lĩnh vực:
budget-analyzer: Chỉ nhìn vào bảng expenses, không biết gì về code repositorytask-prioritizer: Chỉ áp dụng Eisenhower matrix lên todo list, không bị ảnh hưởng bởi conversation về database migrationhabit-coach: Chỉ đọc file CSV thói quen, đưa ra gợi ý dựa trên dữ liệu lịch sử
Mỗi subagent có thể dùng model khác nhau (Haiku cho read-only exploration, Sonnet cho phân tích phức tạp), tiết kiệm chi phí API.
Hooks — Event-Driven Automation
Hooks chuyển Claude từ "trợ lý đợi lệnh" thành "hệ thống chủ động". Dùng PostToolUse hooks để:
- Tự động phân loại chi tiêu khi file
expenses.csvđược ghi - Validate định dạng task trước khi lưu vào
todo.json - Gửi cảnh báo khi ngân sách danh mục nào đó bị vượt quá
Hooks chạy dưới 100ms overhead, tạo automation workflows mà không cần bạn nhớ chạy lệnh thủ công mỗi ngày.
Ví dụ thực tế
Expense Tracker thông minh với SQLite MCP
Setup (một lần duy nhất):
# Tạo SQLite MCP server
claude mcp add sqlite -- npx @modelcontextprotocol/server-sqlite ~/finance.dbSlash command .claude/commands/add-expense.md:
---
name: add-expense
description: "Thêm khoản chi tiêu với tự động phân loại. Dùng khi user nhắc đến chi tiền (ví dụ: 'Highlands 45k', 'Grab 120k', 'chuyển Momo 200k')."
---
Parse mô tả chi tiêu, phân loại vào Food/Transport/Shopping/Entertainment dựa trên keywords (Highlands/Starbucks -> Food, Grab/Be -> Transport, Shopee/Lazada -> Shopping), và INSERT vào bảng expenses với timestamp.Usage: Gõ /add-expense "Highlands 65k cà phê sáng" → Claude tự động parse số tiền (65000), danh mục (Food), ngày tháng (today), lưu vào SQLite. Hoặc /add-expense "Quét VietQR chuyển khoản 5 triệu đóng tiền nhà" → phân loại Housing.
Subagent monitoring: Tạo agent finance-guardian với prompt:
Bạn theo dõi bảng expenses hàng tuần. Nếu chi tiêu ăn uống vượt quá 5 triệu trước ngày 20 của tháng, cảnh báo về việc vượt ngân sách. Nếu số lần đi cà phê Highlands/Starbucks vượt quá 10 lần/tuần, đề xuất mua cà phê hòa tan về nhà uống để tiết kiệm.Chạy /loop 1d /finance-guardian để kiểm tra tự động mỗi ngày.
Todo app với Eisenhower Matrix và Memory
Memory file ~/.claude/memory/personal-workflow.md:
# Sở thích làm việc cá nhân
- Ưu tiên họp vào buổi sáng (9-11h)
- Deep work: 14h-17h (không họp, không trả lời tin nhắn)
- Ma trận Eisenhower:
- Gấp+Quan trọng: Bug của client, deadline < 24h
- Quan trọng+Không gấp: Học tập, tập gym
- Gấp+Không quan trọng: Phần lớn email
- Không gấp+Không quan trọng: Lướt Facebook/TikTokSubagent task-prioritizer:
name: task-prioritizer
description: "Áp dụng Ma trận Eisenhower cho task mới. Tự động phân loại vào Làm ngay/Lên lịch/Ủy thác/Bỏ qua."
allowedTools: ["Read", "Write", "memory_search"]Workflow: Khi bạn thêm task "Review PR của team", subagent tự động đọc memory, thấy bạn đang trong giờ deep work (14h-17h), và tag task là "Gấp+Không quan trọng — đề xuất ủy thác cho junior dev hoặc làm sau 17h".
Habit Tracker tích hợp CSV và Hook
Data storage: ~/habits.csv (đơn giản, không cần SQL):
date,habit,status,note
2025-01-15,gym,1,"Leg day"
2025-01-16,meditation,0,"Bận họp cả ngày"
2025-01-17,reading,1,"Đọc 20 trang sách"Hook ~/.claude/hooks/posttooluse/log-habit.json:
{
"matcher": "Write.*habits.csv",
"command": "python3 ~/.claude/scripts/analyze_streak.py"
}Slash command /daily-review:
Đọc ~/habits.csv 7 ngày gần nhất. Phân tích:
- Chuỗi streak hiện tại (ngày liên tiếp thực hiện)
- Pattern (ví dụ: "hay skip gym vào thứ 4 do deadline báo cáo tuần")
- Gợi ý cải thiện dựa trên thời gian trong ngày
Xuất báo cáo markdown với biểu đồ ASCII thể hiện tiến độ tuần.Claude tự động phát hiện pattern: "Bạn thường bỏ tập gym vào thứ 4, có thể do deadline báo cáo hàng tuần. Đề xuất đổi lịch tập sang thứ 5 sáng hoặc thứ 6."
Ứng dụng
Sinh viên
- Theo dõi deadline: Kết nối Google Calendar MCP để tự động tính ngày còn lại cho assignment, đề xuất lịch học dựa trên độ khó (đọc syllabus từ PDF đính kèm).
- Tính GPA: Subagent đọc file transcript CSV, tính điểm trung bình tích lũy, dự đoán điểm cần đạt ở các môn còn lại để đủ điều kiện học bổng.
Freelancer/Người đi làm
- Time tracker: Hook bắt sự kiện bắt đầu/kết thúc task trong Claude Code, log thời gian vào SQLite để cuối tháng tính invoice cho khách hàng.
- Tạo invoice: Slash command
/invoice-thang-1tự động query database, generate PDF invoice với template, điền thông tin công ty vào draft email sẵn sàng gửi.
Startup founder (1 người)
- Kho ý tưởng: Dùng memory system để lưu ý tưởng startup, subagent
idea-evaluatortự động phân tích khả thi dựa trên xu hướng thị trường (qua MCP kết nối search API). - Content calendar: Theo dõi lịch đăng bài LinkedIn/Zalo OA, subagent đề xuất content dựa trên trending topics trong ngành.
So sánh
| Tiêu chí | App truyền thống (React/Node/DB) | No-code tools (Notion/Airtable) | Claude Code Personal Tool |
|---|---|---|---|
| Thời gian build | 2-4 tuần (setup, deploy, bug fix) | 1-2 ngày (học tool, giới hạn template) | 30-60 phút (prompt + MCP setup) |
| Chi phí vận hành | $5-50/tháng (server, database) | $0-20/tháng (subscription) | $0.10-2/tháng (API tokens) |
| Linh hoạt logic | Cao (code bất cứ gì) | Thấp (giới hạn bởi feature của tool) | Rất cao (natural language logic) |
| Data ownership | Cần tự host để đảm bảo privacy | Phụ thuộc vendor (Notion/Airtable) | 100% local (SQLite/file trên máy bạn) |
| UI/UX | Đẹp, mobile-friendly | Trung bình, dễ dùng | Text-based (conversation), không có mobile GUI |
Kết luận: Nếu bạn cần một công cụ chỉ cho bản thân, không cần chia sẻ với người khác, và logic thay đổi thường xuyên theo nhu cầu cá nhân, Claude Code personal tool là "điểm ngọt" giữa "không phải học no-code tool phức tạp" và "không phải maintain server".
Bài viết liên quan
Cùng cụm (Vibe Coding)
- Vibe Coding là gì? Người không biết code cũng build được app — Hiểu rõ paradigm "mô tả bằng tiếng Việt, AI làm phần còn lại"
- Bài tập: Build app đầu tiên chỉ bằng mô tả tiếng Việt — Bài tập thực hành cho người mới bắt đầu
- Build Chrome Extension trong 45 phút — không cần biết JavaScript — Ứng dụng vibe coding cho browser automation
- Build landing page chuyên nghiệp trong 1 giờ — Xây dựng web presence nhanh chóng
Đọc tiếp
- Slash commands và workflow hàng ngày — Tìm hiểu sâu về
/plan,/commit, và cách tạo custom commands cho personal workflow - Case study: Build SaaS trong 4 giờ với $20 — Nâng cấp từ personal tool lên production SaaS khi bạn sẵn sàng scale
- Claude Agent SDK: Build agent tùy chỉnh — Kỹ thuật nâng cao để tạo subagents phức tạp hơn cho personal automation
Build App Đầu Tiên Bằng Claude Code: Chỉ Mô Tả Tiếng Việt, Không Cần Code
Hướng dẫn tạo ứng dụng đầu tiên với Claude Code chỉ bằng mô tả tiếng Việt. Từ ý tưởng đến sản phẩm chạy được trong 30 phút, hoàn toàn không cần biết lập trình.
Build Chrome Extension trong 45 phút bằng Claude Code — không cần biết JavaScript
Build Chrome Extension trong 45 phút bằng Claude Code: Từ ý tưởng đến sản phẩm chạy được chỉ với mô tả tiếng Việt, không cần biết JavaScript.