Bỏ qua đến nội dung
Thoát khỏi thế giới subscription: làm chủ notes, password và dữ liệu cá nhân của mình

Thoát khỏi thế giới subscription: làm chủ notes, password và dữ liệu cá nhân của mình

Một cách thực tế để thoát khỏi vòng lặp subscription: quản lý notes bằng folder local, đồng bộ qua Google Drive, mở bằng Obsidian, dùng plugin cộng đồng, rồi quản lý password bằng Enpass theo cùng triết lý local-first và có CLI cho AI Agent.

Mấy năm gần đây, gần như phần mềm nào cũng muốn biến thành subscription.

Ghi chú thì trả theo tháng. Quản lý task thì trả theo tháng. Password manager cũng trả theo tháng. App lưu file, app scan tài liệu, app viết journal, app quản lý bookmark, app AI assistant... cái gì cũng nhỏ nhỏ vài đô một tháng. Nhìn riêng từng món thì không lớn, nhưng cộng lại thì thành một khoản đều đặn, và quan trọng hơn: dữ liệu cá nhân của mình bị khóa trong rất nhiều dịch vụ khác nhau.

Vấn đề không chỉ là tiền.

Vấn đề là mỗi lần muốn đổi công cụ, mình phải tự hỏi:

  • Dữ liệu có export ra được không?
  • Export ra rồi có còn đọc được bình thường không?
  • Nếu app ngừng hoạt động thì sao?
  • Nếu giá tăng thì sao?
  • Nếu muốn cho AI đọc notes của mình thì phải đưa dữ liệu lên cloud của ai?

Sau một thời gian dùng nhiều công cụ khác nhau, mình càng ngày càng nghiêng về một triết lý đơn giản hơn: dữ liệu quan trọng nên nằm trong file local trước, sync là lớp phụ, app chỉ là lớp giao diện.

Nói cách khác: mình không muốn "sở hữu tài khoản". Mình muốn sở hữu dữ liệu.

Cách 1: quản lý toàn bộ notes bằng local folder

Thay vì dùng một note app đóng, mình có thể quản lý toàn bộ ghi chú bằng một thư mục bình thường trên máy.

Ví dụ:

Notes/
├── 1-Projects/
├── 2-Areas/
├── 3-Resources/
├── 4-Archive/
└── attachments/

Bên trong là các file Markdown:

ke-hoach-tai-chinh-2026.md
y-tuong-lam-web-ca-nhan.md
mat-khau-wifi-nha-khong-luu-o-day.md
checklist-bao-tri-server.md

Markdown là định dạng cực kỳ đơn giản: mở bằng Obsidian được, VS Code được, iA Writer được, Typora được, thậm chí TextEdit cũng đọc được. Không cần server riêng, không cần database, không cần export phức tạp.

Điểm quan trọng nhất: nếu ngày mai app ghi chú bạn đang dùng biến mất, file của bạn vẫn còn nguyên.

Đây là khác biệt rất lớn so với nhiều app subscription. Với app đóng, bạn thường phải tin rằng họ sẽ giữ server ổn định, giữ giá hợp lý, giữ tính năng export tử tế. Với local folder, niềm tin đó được giảm xuống rất nhiều, vì dữ liệu nằm ngay trên máy của bạn.

Sync qua Google Drive: đủ tốt cho phần lớn nhu cầu

Local-first không có nghĩa là chỉ dùng trên một máy.

Cách đơn giản nhất là đặt thư mục notes vào Google Drive:

Google Drive/My Drive/Notes/

Sau đó cài Google Drive trên Mac, Windows, hoặc Linux, để thư mục này tự đồng bộ giữa các máy.

Lúc này mô hình trở thành:

File local trên máy
        ↓
Google Drive sync
        ↓
File local trên máy khác

Google Drive chỉ đóng vai trò vận chuyển file. Công cụ đọc, viết, tổ chức, tìm kiếm, mở rộng tính năng là do mình chọn.

Nếu một ngày không muốn dùng Google Drive nữa, mình có thể chuyển qua iCloud Drive, Dropbox, Syncthing, Nextcloud, hoặc rsync về NAS tại nhà. Cấu trúc dữ liệu vẫn là file Markdown bình thường.

Đây là một khác biệt tinh tế nhưng rất đáng giá: mình phụ thuộc vào chuẩn file phổ thông, không phụ thuộc vào một app cụ thể.

Obsidian: giao diện đẹp cho dữ liệu nằm trong tay mình

Obsidian là một lựa chọn rất hợp với mô hình này, vì Obsidian không bắt mình đưa notes lên server của họ. Obsidian mở trực tiếp một thư mục local gọi là vault.

Bạn chỉ cần:

  1. Tạo một folder notes.
  2. Mở folder đó bằng Obsidian.
  3. Viết notes bằng Markdown.
  4. Để Google Drive hoặc công cụ sync bạn chọn lo phần đồng bộ.

Vậy là xong.

Điểm mình thích ở Obsidian là nó không cố biến dữ liệu thành thứ chỉ nó hiểu. Notes vẫn là .md. Attachments vẫn là file ảnh, PDF, audio nằm trong folder. Wikilink kiểu [[ten-note]] có thể là syntax riêng, nhưng bản chất vẫn nằm trong text, đọc bằng app khác vẫn không mất dữ liệu.

Với nhu cầu cá nhân, chỉ riêng setup này đã đủ thay thế rất nhiều app subscription:

  • note app
  • personal wiki
  • project notebook
  • bookmark có mô tả
  • nhật ký kỹ thuật
  • thư viện prompt
  • SOP cá nhân
  • knowledge base cho AI Agent

Plugin cộng đồng: muốn nâng cấp gì thì tự chọn

Một lý do nhiều người trả subscription là vì app cloud thường có nhiều tính năng tiện: kanban, calendar, graph, template, task, daily notes, publish, AI, export đẹp...

Obsidian giải quyết phần này bằng plugin.

Bạn có thể cài plugin cộng đồng để thêm:

  • Kanban board cho project cá nhân.
  • Dataview để query notes như database.
  • Calendar và Periodic Notes cho daily/weekly note.
  • Templater để tạo note theo mẫu.
  • Excalidraw để vẽ sơ đồ.
  • Tasks để quản lý todo.
  • Git để version control vault.

Điểm hay là mình không phải mua cả một bộ tính năng cồng kềnh. Cần gì thì cài đó. Không cần thì bỏ. Dữ liệu vẫn ở local folder.

Tất nhiên plugin cộng đồng cũng có rủi ro: plugin có thể ngừng maintain, có thể lỗi sau khi update, có thể xử lý dữ liệu theo cách riêng. Nhưng rủi ro này dễ quản lý hơn nếu bạn giữ nguyên tắc: phần cốt lõi vẫn là Markdown, plugin chỉ là lớp tăng năng suất.

Tương thích hoàn hảo với AI

Đây là chỗ mô hình local folder trở nên cực kỳ mạnh trong thời AI Agent.

AI Agent làm việc tốt nhất khi nó có thể đọc file thật, search trong folder thật, sửa nội dung bằng diff thật, và tạo tài liệu mới theo cấu trúc có sẵn. Một vault Markdown local đáp ứng gần như hoàn hảo chuyện này.

Ví dụ bạn có thể yêu cầu AI:

  • "Đọc toàn bộ notes về Home Assistant và tổng hợp lại thành checklist bảo trì."
  • "Tìm các bài viết đang dang dở trong thư mục Geek Playground."
  • "Tạo note mới theo format frontmatter của vault."
  • "Chuyển ý tưởng rời rạc trong daily notes thành outline bài blog."
  • "Kiểm tra wikilink nào đang bị lỗi."
  • "Tóm tắt các quyết định quan trọng trong project này."

Với app cloud đóng, AI thường phải đi qua API, plugin riêng, OAuth, hoặc copy-paste thủ công. Với local folder, AI chỉ cần quyền đọc thư mục.

Quan trọng hơn: bạn có thể kiểm soát phạm vi. Cho AI đọc folder nào thì nó đọc folder đó. Không cần cấp quyền toàn bộ tài khoản cloud nếu không muốn.

Password và thông tin nhạy cảm: cùng triết lý, nhưng phải nghiêm túc hơn

Notes có thể lưu trong Markdown, nhưng password thì không nên.

Không nên lưu password, API key, recovery code, private key, seed phrase trong notes thường, kể cả khi folder nằm trên máy cá nhân. Markdown rất dễ đọc, dễ sync, dễ bị index, dễ bị copy nhầm, dễ bị đưa vào context AI quá rộng.

Với password, mình thích mô hình của Enpass hơn nhiều password manager cloud-first: vault nằm local, dữ liệu được mã hóa, và bạn có thể chọn sync qua cloud của chính mình như Google Drive, iCloud, OneDrive, Dropbox, Box, Nextcloud hoặc WebDAV. Enpass cũng nói rõ cơ chế sync không yêu cầu gửi dữ liệu lên server Enpass; cloud storage chỉ giữ vault đã mã hóa.

Về chi phí, cần nói cho chính xác: Enpass không phải mọi thứ đều miễn phí vô điều kiện. Desktop app có thể bắt đầu miễn phí, còn nhu cầu mobile/unlimited/premium có thể cần trả phí hoặc mua lifetime tùy thời điểm. Nhưng xét về triết lý sản phẩm, nó vẫn khác nhóm password manager subscription-first ở điểm quan trọng: dữ liệu của bạn không bị buộc nằm trong cloud riêng của nhà cung cấp password manager.

Mô hình lúc này khá giống notes:

Vault Enpass local đã mã hóa
        ↓
Google Drive sync
        ↓
Vault Enpass local đã mã hóa trên máy khác

Google Drive không biết password của bạn. Nó chỉ thấy một file vault đã mã hóa. Enpass app trên thiết bị của bạn mới là nơi mở vault bằng master password.

Tách rõ notes và secrets

Một setup thực tế nên chia làm hai lớp:

Notes, tài liệu, SOP, ý tưởng

  • Lưu bằng Markdown.
  • Sync qua Google Drive hoặc công cụ bạn chọn.
  • Mở bằng Obsidian.
  • Cho AI Agent đọc khi cần.

Password, API key, thông tin đăng nhập, thông tin nhạy cảm

  • Lưu trong Enpass hoặc password manager mã hóa tương đương.
  • Không copy plaintext vào notes.
  • Không commit vào Git.
  • Không chụp screenshot có secrets.
  • Chỉ lấy ra đúng field cần dùng, đúng lúc cần dùng.

Cách chia này giúp AI vẫn làm việc được với hệ thống cá nhân của bạn, nhưng không biến toàn bộ đời sống số thành một đống plaintext nằm trong context.

Enpass CLI: cầu nối cho AI Agent làm việc với credential

Một vấn đề thực tế xuất hiện khi dùng AI Agent: nhiều tác vụ cần credential.

Ví dụ:

  • AI cần đăng nhập một dịch vụ nội bộ.
  • AI cần gọi một API có key đang lưu trong password manager.
  • AI cần tìm đúng tài khoản theo domain hoặc email.
  • AI cần chạy script deploy cần token.

Cách tệ nhất là copy password vào chat. Cách cũng không hay là lưu password vào .env rồi quên mất nó đang nằm trong repo.

Một hướng tốt hơn là dùng CLI để AI có thể hỏi password manager theo quy tắc kiểm soát được.

Repo leolionart/enpass-cli được thiết kế đúng cho nhu cầu này: đọc local Enpass vault từ command line, search entry không lộ password, rồi chỉ get đúng credential khi cần. Nó là một fork từ hazcod/enpass-cli, không phải sản phẩm chính thức của Enpass.

Cài bằng Go:

go install github.com/leolionart/enpass-cli/cmd/enpass-cli@latest

Trên macOS nếu muốn binary nằm trong Homebrew path:

GOBIN=/opt/homebrew/bin go install github.com/leolionart/enpass-cli/cmd/enpass-cli@latest

Khai báo vault path:

export ENPASS_VAULT="/path/to/vault"

Search trước, chưa lộ password:

enpass-cli -vault="$ENPASS_VAULT" search github

Khi đã xác định đúng entry, lấy đúng field cần dùng:

enpass-cli -vault="$ENPASS_VAULT" -field login get github
enpass-cli -vault="$ENPASS_VAULT" get github

Nếu muốn output JSON cho automation:

enpass-cli -vault="$ENPASS_VAULT" -json get github

Với AI Agent, pattern mình thích là:

  1. Agent dùng search để tìm entry phù hợp, không đọc password.
  2. Nếu có nhiều kết quả, agent báo lại để mình chọn hoặc dùng thêm filter.
  3. Agent chỉ dùng get khi cần credential cụ thể.
  4. Master password không nằm trong command argument, không nằm trong repo, không nằm trong notes.
  5. Nếu cần automation không tương tác, master password nên được lấy từ secret manager của hệ điều hành, ví dụ macOS Keychain, rồi truyền qua environment variable trong runtime ngắn hạn.

Đây không phải là "đưa toàn bộ password cho AI". Đây là tạo một cổng hẹp, có quy trình, để AI lấy đúng thông tin cần thiết trong lúc làm việc.

Setup tối thiểu mình khuyên dùng

Nếu muốn bắt đầu thoát dần khỏi subscription, không cần làm mọi thứ cùng lúc. Có thể đi theo thứ tự này:

1. Tạo vault notes local

Google Drive/My Drive/Notes/

Mở folder này bằng Obsidian. Tạo vài thư mục cơ bản:

1-Projects/
2-Areas/
3-Resources/
4-Archive/
attachments/

2. Chuyển notes quan trọng sang Markdown

Không cần migrate toàn bộ lịch sử ngay. Chuyển trước những thứ có giá trị dài hạn:

  • tài liệu cá nhân
  • checklist vận hành
  • hướng dẫn cài đặt
  • ý tưởng bài viết
  • quyết định quan trọng
  • knowledge base cho AI

3. Chuẩn hóa nguyên tắc secrets

Tạo một rule rất rõ:

Notes không chứa password plaintext.

Nếu note cần nhắc tới credential, chỉ ghi metadata:

Credential: Enpass entry "GitHub - personal"
Purpose: deploy blog

Không ghi password thật.

4. Dùng Enpass cho password

Tạo vault Enpass, bật sync qua Google Drive nếu cần nhiều thiết bị. Với dữ liệu cực kỳ nhạy cảm, cân nhắc thêm backup offline định kỳ và không phụ thuộc duy nhất vào một cloud provider.

5. Thêm CLI cho AI Agent

Cài enpass-cli, test với vault của bạn, sau đó tạo wrapper nội bộ để AI chỉ được dùng các lệnh an toàn:

  • search
  • get theo filter cụ thể
  • không dùng lệnh ghi/xóa nếu chưa test trên vault giả

Nếu làm kỹ hơn, wrapper có thể log lại metadata truy cập, ví dụ thời gian, entry title, command, nhưng tuyệt đối không log password.

Những thứ vẫn cần cẩn thận

Local-first không phải phép màu.

Bạn vẫn cần nghĩ về backup, mã hóa ổ đĩa, bảo mật máy tính, quyền truy cập của AI Agent, và rủi ro sync nhầm file. Nếu laptop bị mất mà ổ đĩa không mã hóa, local-first không cứu được bạn. Nếu bạn copy password vào notes rồi sync khắp nơi, Enpass cũng không cứu được bạn.

Một số nguyên tắc mình thấy đáng giữ:

  • Bật FileVault trên macOS hoặc disk encryption tương đương.
  • Không lưu secrets trong Markdown.
  • Không cho AI đọc toàn bộ home directory nếu chỉ cần một project folder.
  • Tách vault cá nhân và vault công việc nếu có thể.
  • Backup định kỳ ra một nơi khác với Google Drive.
  • Với password manager, luôn nhớ master password và giữ recovery plan riêng.

Kết luận: subscription không xấu, nhưng dữ liệu phải thuộc về mình

Subscription không phải lúc nào cũng sai. Có những dịch vụ mình vẫn sẵn sàng trả tiền nếu họ tạo ra giá trị liên tục: hạ tầng tốt, bảo mật tốt, sync tốt, support tốt, tính năng mới thật sự cần thiết.

Nhưng với dữ liệu cá nhân cốt lõi như notes, SOP, tài liệu, password, API key, mình muốn bắt đầu từ câu hỏi khác:

Nếu ngày mai app này biến mất, dữ liệu của mình còn sống không?

Với notes, câu trả lời tốt nhất là Markdown trong local folder, sync bằng cloud mình chọn, mở bằng Obsidian hoặc bất kỳ editor nào.

Với password, câu trả lời tốt hơn là vault mã hóa local-first như Enpass, sync qua cloud của mình, và nếu cần cho AI Agent làm việc thì dùng một CLI có kiểm soát như enpass-cli.

Không phải để chống lại mọi subscription. Mà để subscription trở lại đúng vị trí của nó: một dịch vụ tiện ích, không phải cái khóa giữ dữ liệu của mình.

Bạn thấy bài viết hữu ích?

Đăng ký để nhận thông báo khi có bài viết mới.

Kiểm tra hộp thư để xác nhận email!
Bạn đã đăng ký thành công vào Geek Playground
Tuyệt vời! Tiếp theo, hoàn tất thanh toán để có quyền truy cập đầy đủ vào Geek Playground
Chào mừng trở lại! Bạn đã đăng nhập thành công.
Thành công! Tài khoản của bạn đã được kích hoạt đầy đủ, bạn hiện có quyền truy cập vào tất cả nội dung.
Thành công! Thông tin thanh toán của bạn đã được cập nhật.
Cập nhật thông tin thanh toán không thành công.