19 điểm bởi GN⁺ 2026-01-07 | 6 bình luận | Chia sẻ qua WhatsApp
  • Hướng dẫn mã nguồn mở giải thích từng bước cách chỉ với điện thoại thông minh vẫn có thể code ở bất cứ đâu, bất cứ lúc nào
  • Có thể truy cập máy tính từ xa và chạy mã trực tiếp trong terminal bằng Tailscale, Termius, Claude Code
  • Máy tính cần duy trì kết nối Internet 24/7, còn trên điện thoại cần thiết lập VPN và SSH client
  • Bao gồm các mẹo giúp tăng hiệu quả phát triển trên di động như xem trước website, truy cập cơ sở dữ liệu, quản lý bản ghi phiên làm việc
  • Một cách tiếp cận thực tế giúp mở rộng năng suất và mức độ tự do của lập trình viên bằng cách duy trì môi trường phát triển ngay cả khi đang di chuyển

Tổng quan về Doom Coding

  • Doom Coding là cách code trong terminal bằng điện thoại thông minh, một đề xuất cho hoạt động hiệu quả để thay thế Doom Scrolling (lướt vô nghĩa)
    • Chỉ cần có kết nối Internet là có thể code ở bất cứ đâu
    • Tác giả nhắc đến trải nghiệm truy cập máy tính ở Philadelphia từ Đài Loan để phát triển prototype
  • Hướng dẫn này được cấu thành như một chỉ dẫn từng bước có thể thiết lập trong vòng 5 phút
  • Dự kiến sẽ có cập nhật so sánh về các công cụ code di động mới nhất (ví dụ: Claude Code on the Web)

Chuẩn bị

  • Máy tính có kết nối Internet hoạt động 24/7
  • Điện thoại thông minh
  • Tài khoản đăng ký Claude Pro

Tổng quan cấu hình

  • Xây dựng môi trường phát triển từ xa bằng Tailscale, Termius, Claude Code
  • Có thể truy cập trực tiếp terminal của máy tính từ điện thoại thông minh thông qua VPN và SSH

Bước 1: Thiết lập máy tính

Bước 2: Thiết lập điện thoại thông minh

  • Cài ứng dụng Tailscale và đăng nhập bằng cùng một tài khoản
  • Cài Termius (SSH client trên di động)
  • Kiểm tra địa chỉ MagicDNS (ví dụ: my-computer.tailnet-name.ts.net)
  • Tạo host mới trong Termius
    • Label: tên kết nối
    • Hostname: địa chỉ MagicDNS
    • Port: 22
    • Username/Password: thông tin đăng nhập máy tính

Bước 3: Kết nối và code

  • Bật Tailscale VPN trên điện thoại thông minh
  • Trong Termius, chọn host rồi kết nối
  • Chạy lệnh claude trong terminal rồi bắt đầu code

Khắc phục sự cố (Troubleshooting)

  • Biện pháp khi kết nối thất bại
    • Kiểm tra xem Tailscale VPN đã được bật chưa
    • Kiểm tra biểu tượng chấm tròn màu xanh cạnh thiết bị trong ứng dụng Tailscale (nếu không có thì có vấn đề mạng)
  • Kiểm tra trạng thái nguồn và mở khóa của máy tính
    • Khi cấp lại nguồn, bắt buộc phải mở khóa

Thực hành tốt nhất (Best Practices)

Kết luận

  • Doom Coding là một phương thức code từ xa thực tế giúp tiếp tục phát triển ngay cả khi đang di chuyển
  • Người dùng được khuyến khích chia sẻ best practice và các trường hợp ứng dụng của riêng mình
  • Dự án khép lại bằng lời chào “Happy Doom Coding!”

6 bình luận

 
huiya 2026-01-08

Á, xin làm ơn đừng để công ty nhìn thấy bài này.

 
shakespeares 2026-01-08

hahahahahahahahahaha

 
cadenzah 2026-01-08

Hóa ra không phải là kiểu doom đó

 
shakespeares 2026-01-08

Đây đúng là DOOM thật rồi.

 
roxie 2026-01-26

Haha, chắc đây là lần đầu tiên mình thấy vui chỉ với file README như vậy.

 
GN⁺ 2026-01-07
Ý kiến trên Hacker News
  • Vì không muốn để máy tính bật 24/7, tôi đã tạo ra một cách giải quyết đồng thời tiết kiệm điệntự động khởi động
    ssh-wol-proxy mà tôi làm sẽ gửi gói WOL đến máy đích khi có kết nối SSH, rồi giữ kết nối cho đến khi máy khởi động xong
    Sau đó tôi cấu hình debian-autoshutdown để máy tự tắt nếu không có lưu lượng SSH trong 15 phút
    Làm vậy thì chỉ cần SSH từ laptop hay điện thoại là máy chủ sẽ thức dậy trong vòng 30 giây. Không cần bấm nút vật lý
    Tôi đã ghi lại quy trình chi tiết trên blog của mình, và hiện đang phát triển phiên bản “machine on proxy (mop)” để bật từ xa Proxmox VM

  • Tôi dùng terminal trên Android và Claude Code để code ngay cả khi đang di chuyển
    Khi ở cùng gia đình, tôi vẫn vừa nấu ăn hay dọn dẹp vừa trò chuyện với Claude để phát triển phần mềm
    Với prompt khoảng 500 từ, Claude đã dùng nmap để quét cổng mạng, fuzz bằng cURL, rồi tìm API của cầu nối Hue và một chiếc TV Samsung cũ để tạo script điều khiển đèn cùng một remote HTML+JS
    Điều thú vị nhất là lúc Claude ra lệnh cho tôi nhấn nút trên cầu nối Hue để lấy API key
    Kết quả là tôi đã hiểu được cấu trúc xác thực của Hue, chế độ Entertainment, và cả giao tiếp dựa trên websocket của SmartThings. Việc học được ngần ấy chỉ với 500 từ là một trải nghiệm đáng kinh ngạc

    • Tôi đã đọc README và thấy tò mò không biết liệu tất cả chuyện này có thực sự làm được chỉ bằng giao diện CLI của Claude hay không
      Nó có đủ ít lỗi để đạt mức năng suất thực tế khi vừa sửa file vừa chạy utility hay không, và liệu chỉ Claude mới cung cấp được kiểu tính năng này hay không
  • Tôi đã thấy nhiều bài viết nói về việc dùng VPN để code bằng điện thoại, nhưng tự hỏi liệu dùng Claude Code qua giao diện email có tốt hơn không
    Ý tưởng là gửi email yêu cầu Claude làm việc, rồi nếu cần thêm thông tin thì Claude sẽ hỏi lại qua mail và mình trả lời để tiếp tục chỉ đạo
    Có vẻ cũng có thể gửi ảnh chụp màn hình kết quả chạy chương trình. Trông đơn giản hơn VPN, nên tôi tò mò không biết nhược điểm là gì

    • Tôi nghĩ ngay đến câu “khi bạn chỉ có cái búa, mọi thứ đều trông như cái đinh”. Tự động hóa qua email phù hợp với kiểu như ticket hỗ trợ, nhưng không hợp với môi trường phát triển cần tính tức thời
      Nói thật thì code bằng điện thoại khá thú vị, nhưng tôi không muốn làm vậy trong thực tế. Nếu phát triển nghiêm túc thì cuối cùng laptop vẫn cho trải nghiệm tốt hơn nhiều
    • Hầu hết các bài kiểu này đều nhắc đến Tailscale, nên tôi có cảm giác vài ngày nữa có khi lại có tin gọi vốn
    • Email thì phản hồi chậm và bất tiện. Trong khi đó Tailscale dễ cấu hình và ổn định
      Tác giả dùng ứng dụng SSH Termius và Mosh để giữ phiên làm việc, rồi dùng tmux để tiếp tục công việc
      Tôi cũng làm gần giống vậy, nhưng thay vì Mac ở nhà thì dùng Linode VPS giá $5. Có vẻ đây là cách mà Pieter Levels(@levelsio) đã phổ biến đầu tiên
    • Thay vì email, cũng có thể tạo bot Telegram để thay mặt chạy lệnh CLI. Cũng không cần mở cổng router
    • Tôi đang dùng ứng dụng Claude Code cho iOS (tài khoản Pro). Kết nối repo GitHub rồi chỉ định issue là Claude tự xử lý. Gần như không cần cấu hình gì cả
  • Trước đây tôi nghĩ có một chu kỳ qua lại giữa tính toán cục bộ và terminal từ xa, nhưng giờ có vẻ đang chuyển sang cấu trúc từ xa kép (điện thoại → máy tính → máy chủ Claude)

    • Trong 5 năm qua, laptop của tôi gần như đã hoàn toàn trở thành terminal của một máy khác. Tôi chỉ duyệt web hay chạy script đơn giản ở local, còn mọi tính toán thực sự đều chạy từ xa
      Ngay cả với tư cách nhà nghiên cứu, AI coding vẫn là một lĩnh vực mà tôi chưa thật sự bắt được cảm giác. Nhưng trên điện thoại thì vì gõ phím bất tiện nên nó có vẻ vẫn có ý nghĩa
    • Trong tương lai, có thể chúng ta sẽ có trung tâm dữ liệu tại nhà, còn việc tính toán AI sẽ được xử lý ở datacenter gần đó, và chúng ta truy cập từ bất cứ đâu bằng kính VR hoặc máy tính bảng
    • Tất nhiên, một kịch bản còn tệ hơn là mọi cuộc trò chuyện nội bộ và mã nguồn đều bị lưu trong log máy chủ của Microsoft. Chỉ tưởng tượng thôi cũng đã rợn người
  • Nếu dùng Android thì chỉ với QPython cũng đã đủ để code. Có vẻ chẳng cần phải phụ thuộc vào một máy tính từ xa luôn bật 24/7

    • Nếu là điện thoại Pixel thì có thể chạy Debian VM bằng ứng dụng Terminal mới được bổ sung. Về cơ bản nó là một máy Linux trong lòng bàn tay. Không chỉ Python mà cài cả Anaconda cũng được
    • Tôi dùng iPhone nên hơi tiếc, nhưng thay vì build trực tiếp trên server, tôi cũng đang cân nhắc cách chạy Dockerfile bằng QPython rồi push bằng git
  • Việc có thể code bằng cách trò chuyện trên điện thoại tạo cảm giác như một thay đổi lớn
    Trước đây code trên điện thoại rất khổ sở, nhưng nếu là kiểu hội thoại thì có khi lại tốt hơn
    Giờ đã có thể sửa bug trên giường hoặc tạo MVP khi đang di chuyển
    Nếu muốn một cách tiếp cận nhỏ gọn và tích hợp hơn, tôi khuyên dùng trình xây dựng ứng dụng mã nguồn mở tinykit mà tôi tạo ra
    Nó có các dịch vụ tích hợp như cơ sở dữ liệu, file, xác thực, thanh toán giống như Lovable, và có thể tạo ứng dụng chỉ với một file Svelte 5. Nó dựa trên Node + PocketBase nên chạy tốt cả trên VPS $2

    • Gõ phím trên điện thoại vẫn kinh khủng. Nhưng nếu nhận dạng giọng nói hoạt động tốt thì có lẽ sẽ khá dùng được
  • Tôi dùng toadopencode để hiện thực hóa ngay những ý tưởng chợt nảy ra. Rất tuyệt để ghi lại suy nghĩ xuất hiện bất ngờ, nhưng có giới hạn với các dự án lớn

    • Dù vậy, tôi vẫn tò mò liệu có cách tổ chức nào để áp dụng kiểu làm này cho các side project lớn hơn hay không
  • Tôi đã dùng bàn phím hacker tùy biến (có các phím ctrl/meta cho GNU screen, emacs) cùng một SSH client bản fork suốt nhiều năm
    Ngay cả khi gập Pixel Fold lại, tôi vẫn đạt năng suất gần như tương đương; còn khi mở ra thì màn hình và phím lớn hơn nên thoải mái hơn
    Tôi đang rất mong chờ Click Communicator sắp ra mắt
    Tôi định viết lại toàn bộ thiết lập của mình thành bài và công khai mã nguồn
    Nếu dùng ngôn ngữ súc tích như Clojure thì trên điện thoại vẫn ổn, nhưng cú pháp dài như Java thì khó chịu vì giới hạn 80 ký tự

  • Có người đùa rằng thay vì gọi là “đăng ký Claude Pro”, nên gọi là ‘Doom Slopping’ thì hợp hơn

    • Hoàn toàn đồng ý
  • Code trên điện thoại không phải chuyện mới. Trước đây cũng đã có nhiều người phát triển trực tiếp bằng tmux
    Ở một số nơi, người ta không có laptop nên điện thoại là phương tiện phát triển duy nhất
    Tuy vậy, các hình minh họa trong bài lần này khá buồn cười

    • Nhưng liệu có thật sự tồn tại quốc gia nào không bán laptop hay không thì tôi cũng thắc mắc