Code Remote

Cổng & xem trước

Mở các dev server trên máy tính từ iPhone, chia sẻ một cái trong một lúc, và xem các request đến nó.

Tất cả điều này cần coderemote 0.2.0 trở lên trên máy tính. Với bản cũ hơn, app sẽ báo: chạy coderemote update (hoặc npm install -g coderemote@latest) và khởi động lại coderemote up.

Tab Cổng

Liệt kê các cổng TCP mà người dùng của bạn đang lắng nghe, làm mới mỗi vài giây:

  • Started in Code Remote: các server bạn khởi chạy từ terminal trong app, kèm lối tắt quay lại terminal đó.
  • Other: mọi thứ còn lại chạy trong một thư mục dự án, như một server bạn đã bật ngay trên máy tính.
  • Background: app và dịch vụ hệ thống, ẩn cho đến khi bạn yêu cầu.

Vuốt một cổng để dừng tiến trình phía sau nó (nó nhận SIGTERM, như Ctrl+C); giữ để chọn Force Stop (SIGKILL). Chỉ dừng được tiến trình đang lắng nghe ngay lúc này, và không bao giờ của người dùng khác. Dừng một coderemote agent khác sẽ hỏi trước, vì mọi thiết bị đã ghép đôi với nó sẽ mất thư mục.

Xem trước

Nhấn một cổng để mở trong app. Lần đầu mất vài giây trong khi máy tính mở nó trên tunnel; sau đó nó tải như trang bất kỳ, đã đăng nhập sẵn là bạn.

  • Server trên localhost, 127.0.0.1 hay ::1 đều dùng được: không cần cho dev server lắng nghe trên mọi giao diện.
  • Các request đến server của bạn với địa chỉ localhost:<port>, nên các server kiểm tra tên host (như Vite) chấp nhận chúng nguyên trạng.
  • Copy Link và Open in Safari cho bạn địa chỉ của bản xem trước. Nó là riêng tư: trước tiên Safari yêu cầu bạn đăng nhập bằng cùng tài khoản.
  • Stop Preview gỡ cổng khỏi tunnel. Server của bạn vẫn chạy.
  • Khi server của bạn dừng (bạn dừng nó trong tab Cổng, đóng terminal của nó, nhấn Ctrl+C, hoặc nó bị crash), bản xem trước tự kết thúc sau khi không có gì lắng nghe trên cổng đó trong 30 giây, kể cả liên kết công khai. Server khởi động lại trong khoảng đó vẫn giữ bản xem trước. Cái bạn dừng từ tab Cổng thì mất ngay. Cần coderemote 0.3.8 trở lên.

Các cổng đang xem trước được đánh dấu trong tab Cổng.

Chia sẻ liên kết công khai

Để cho ai đó chưa có tài khoản xem công việc của bạn, mở menu của bản xem trước và chọn Share Publicly, trong một giờ, tám giờ hoặc một ngày. Trong thời gian đó, ai có liên kết cũng mở được cổng này mà không cần đăng nhập.

  • Chỉ cổng đó được chia sẻ. Agent, tệp và terminal của nó vẫn riêng tư, trên một tunnel riêng.
  • Một banner hiện đến khi nào liên kết còn công khai, với Make Private để kết thúc ngay. Tab Cổng đánh dấu cổng bằng biểu tượng quả địa cầu.
  • Liên kết cũng ngừng hoạt động khi bạn dừng bản xem trước hoặc agent.

Hãy nhớ đây là một development server: chỉ chia sẻ với những người bạn sẵn lòng cho xem màn hình, và chuyển về riêng tư khi xong việc.

Requests

Biểu tượng danh sách trong một bản xem trước hiện các request đã đến cổng đó, mới nhất trước và trực tiếp: method, đường dẫn, status, thời gian và kích thước, tô màu theo status. Nhấn một request để xem header và body; JSON được thụt lề và body nén được giải nén.

  • Nó hoạt động với mọi thứ đi qua liên kết xem trước: chính trang đó, các lệnh gọi API của nó, một webhook bạn trỏ vào liên kết được chia sẻ.
  • 200 request gần nhất cho mỗi cổng được giữ, với body tới 64 KB. WebSocket (hot reload) đi qua nguyên vẹn; chỉ phần handshake được liệt kê.
  • Chúng nằm trên máy tính của bạn, trong bộ nhớ: Clear xóa chúng, và dừng coderemote up cũng vậy.

Thanh dưới danh sách giúp thu hẹp. Nút lọc chọn một loại (All, Fetch/XHR, CSS, Image hoặc JS, xác định từ kiểu phản hồi và phần mở rộng tệp), và ô tìm kiếm khớp với method và đường dẫn.

Cùng nhật ký này có thể đọc trong terminal trên máy tính bằng coderemote requests, để một coding agent như Claude Code có thể dùng nó khi gỡ lỗi. Token và cookie được che ở đó trừ khi nó yêu cầu.

Cách hoạt động

Phần xem trước không đi qua tunnel của chính agent. Lần đầu bạn xem trước một cổng, agent tạo một tunnel riêng thứ hai, nhãn coderemote-preview, và chuyển tiếp các cổng của bạn vào đó. Thêm hay bớt một cổng sẽ khởi động lại kết nối của tunnel đó, nên các bản xem trước đang mở khác nháy một lúc, trong khi terminal, tệp và git của bạn không hề hay biết.

Mỗi cổng được xem trước đi qua một proxy nhỏ trong agent, chính là thứ ghi lại các request. Đó là lý do địa chỉ xem trước mang số cổng của proxy chứ không phải của server bạn (…-49213.usw2.devtunnels.ms cho server ở 5173): app luôn hiện cổng của chính server bạn.

Agent xóa preview tunnel khi nó dừng; nếu không làm được (chẳng hạn máy tính mất mạng), lần coderemote up tiếp theo sẽ xóa. Liên kết chia sẻ không bao giờ sống lâu hơn agent đã tạo ra chúng, và các bản xem trước cũ không chiếm 10 tunnel của tài khoản. Khi tài khoản vẫn đầy, một bản xem trước mới sẽ xóa trước các preview tunnel không agent nào phục vụ; nếu chưa đủ, app sẽ báo, và coderemote tunnels trên máy tính cho thấy cần xóa gì.