TROISINH
Ứng dụng cơ bảnVibe Coding — Build app không cần biết code

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.db

Bâ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 repository
  • task-prioritizer: Chỉ áp dụng Eisenhower matrix lên todo list, không bị ảnh hưởng bởi conversation về database migration
  • habit-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.db

Slash 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:/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/TikTok

Subagent 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-1 tự độ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-evaluator tự độ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 build2-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 logicCao (code bất cứ gì)Thấp (giới hạn bởi feature của tool)Rất cao (natural language logic)
Data ownershipCần tự host để đảm bảo privacyPhụ thuộc vendor (Notion/Airtable)100% local (SQLite/file trên máy bạn)
UI/UXĐẹp, mobile-friendlyTrung bình, dễ dùngText-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)

Đọc tiếp

On this page