Console phát triển từ xa cho lập trình viên doanh nghiệpCài trên máy chủ nội bộMáy tính · Điện thoại

Claude Code của lập trình viên,
qua máy chủ công ty, ở bất cứ đâu.

SSemBridge là console phát triển từ xa cho Claude Code dành cho lập trình viên doanh nghiệp. Khi công ty đặt máy chủ trung gian trên máy chủ của mình, lập trình viên có thể xem và điều khiển các phiên Claude Code chạy bằng tmux trên Mac của mình từ trình duyệt máy tính và điện thoại thông qua máy chủ đó — từ gửi prompt · phê duyệt quyền · trả lời câu hỏi · dừng.

Cài trên máy chủ nội bộ · Mỗi Mac cần macOS + tmux · Đã kiểm chứng với Claude Code 2.1.x · Trình duyệt máy tính và điện thoại (ứng dụng trên màn hình chính)

SSemBridgeĐã kết nối Cần phản hồi 2Tác vụ 1Mức sử dụngQuản lýCài đặtPhiên mới
Phiên4 phiên · 2 host
api-serverĐang chạy
Mac Studio · Claude 1 · sonnet-5-5
Đang đổi số tiền thanh toán sang đơn vị nhỏ nhất
✻ Refactoring… 1:12
todo-appChờ phê duyệt
MacBook · Claude 1 · opus-5-5
Giờ tôi sẽ chạy kiểm thử.
docs-siteChờ nhập
MacBook · Claude 2 · haiku-4-5
Đã sửa ba trang hướng dẫn cài đặt.
ml-notebookĐang chạy
Mac Studio · Ollama · qwen3-coder
Đang kiểm tra script dọn dữ liệu
2 tác tử con đang chạy · tổng 3
api-server Đang chạy
Mac Studio · Claude 1 · sonnet-5-5 · ~/work/api-server · main
■ DừngTệpsonnet-5-5 · highQuyền: Tự động⋯
Hãy đổi số tiền thanh toán sang đơn vị nhỏ nhất của từng loại tiền tệ, và đảm bảo một đơn hàng không bị thanh toán hai lần
Tôi sẽ tạo hàm chuyển đổi số tiền và thêm khóa idempotency vào lệnh gọi thanh toán.
Sửasrc/payments/charge.ts +2 −1
31 export async function charge(order: Order) {32- const res = await gateway.pay(order.total);32+ const amount = toMinorUnits(order.total, order.currency);33+ const res = await gateway.pay(amount, { key: order.id });34 if (!res.ok) throw new PaymentError(res.code);
Bashnpm test -- payments
PASS src/payments/charge.test.ts ✓ gửi tiền won không có phần thập phân (3 ms) ✓ không thanh toán cùng một đơn hàng hai lần (5 ms)Xem thêm +14 dòng
Cả 18 bài kiểm thử đều đã đạt. Tôi sẽ đổi phần hoàn tiền theo cách tương tự.
✻ Refactoring… 1:12 · ↓ 2.8k tokenDừng (Esc)
Mô hình·effort/compact/clear/cost/status
Tin nhắn gửi tới api-server
⌘↵ để gửi · kéo thả tệp hoặc dán bằng ⌘V

Chờ phê duyệt 1

todo-app · Yêu cầu quyền · Bash
npm test -- login
Cho phépTừ chối

Host chạy Agent

MacBook2 phiên · 12ms
Mac Studio2 phiên · 18ms

Sự kiện hook

14:02PermissionRequest · todo-app
14:01PostToolUse · api-server
13:58Stop · docs-site
13:57SubagentStop · ml-notebook
todo-appChờ phê duyệt
MacBook · opus-5-5 · xhigh · Quyền: Mặc định
Hãy thêm nút hiện mật khẩu vào màn hình đăng nhập và chạy luôn kiểm thử
Tôi đã thêm nút. Giờ tôi sẽ chạy kiểm thử.
Sửasrc/Login.tsx +9 −1
41 <input type={show ? "text" : "password"} />42 + <button onClick={toggle}>Hiện</button>
Yêu cầu quyền · Bash
npm test -- login
Cho phépLuôn cho phép lệnh nàyTừ chối
Brewing… 42 giây · ↓ 1.2k token
Tin nhắn gửi tới todo-app
PhiênThông báoTác vụMức sử dụngQuản lý

Máy tínhDanh sách phiên · hội thoại · phê duyệt trải rộng trên ba cột

Điện thoạiCùng phiên đó bằng một tay — phê duyệt · trả lời · dừng

Chạy trên máy chủ của công ty

SSemBridge được cài trên máy chủ do chính công ty vận hành. Lập trình viên vẫn dùng Claude Code trên Mac của mình như thường lệ, và tiếp tục các phiên đó qua máy chủ công ty ngay cả khi không ngồi tại bàn làm việc.

Trung gian đặt tại máy chủ công ty

Console web · trung gian · bản sao hội thoại để hiển thị · sao lưu hội thoại đều nằm tại một nơi là máy chủ công ty. Việc điều khiển từ xa không đi qua dịch vụ đám mây bên ngoài.

Bí mật tài khoản chỉ nằm trên từng Mac

Thông tin đăng nhập Claude và khóa Ollama chỉ được giữ trên Mac của lập trình viên. Ngay cả khi đăng nhập từ web, máy chủ chỉ chuyển tiếp quá trình và không lưu giá trị bí mật.

Mac chỉ kết nối ra ngoài

Agent trên mỗi Mac chủ động kết nối tới máy chủ công ty. Mac không cần mở cổng nào, và kết nối Agent chỉ được nhận trong mạng nội bộ (VPN).

Mọi lệnh từ xa đều có nhật ký kiểm toán

Ghi lại ai · ở phiên nào · làm gì · cho đến kết quả. Web chỉ mở sau khi qua ID · mật khẩu và cả OTP.

Màn hình quản trị

Quản trị viên xử lý ngay trên web việc đăng ký · hủy đăng ký host (Mac của lập trình viên), trạng thái đăng nhập tài khoản trên từng Mac, các mô hình được dùng và giá trị mặc định, mức sử dụng, cài đặt máy chủ và thời gian lưu giữ.

Sao lưu · khôi phục hội thoại

Lịch sử hội thoại trên mỗi Mac được sao lưu lên máy chủ công ty mỗi 10 phút. Khi quản trị viên tìm và khôi phục một hội thoại đã sao lưu, có thể mở nó bằng “Tiếp tục” trong phiên mới.

Việc trao đổi giữa Claude Code và mô hình (Anthropic API, v.v.) vẫn diễn ra trực tiếp từ mỗi Mac như trước, không liên quan đến console.

Tổng quan

Không cần ngồi trước terminal vẫn có thể trả lời Claude, xem đã dùng bao nhiêu và chuyển công việc sang Mac khác. Các màn hình dưới đây được vẽ bằng dữ liệu ví dụ giả định.

Claude đang hỏi
Phạm vi triển khai
Nên tiến hành đến đâu?
Đến máy chủ phát triển (Recommended)Môi trường vận hành để sau buổi diễn tập
Đến cả môi trường vận hànhTrong khung giờ bảo trì tối nay
Tự nhập — trả lời bằng nội dung này thay cho lựa chọn
Gửi câu trả lờiKhông trả lời
Trả lời câu hỏi ngayCâu hỏi của Claude hiện thành thẻ. Chọn một · chọn nhiều hay tự nhập đều được gửi đi dưới dạng câu trả lời giống hệt như trên terminal.
Chi phí ước tính
$412
▲ 18%
Tỷ lệ trúng cache
96%
▼ 0.8%p
5 giờ23%
Tuần71%
⚠ Với tốc độ hiện tại, sẽ chạm hạn mức tuần vào 14:00 thứ Sáu
Mức sử dụng và dự báo hạn mứcXem hạn mức tài khoản (5 giờ · tuần), dự báo theo tốc độ hiện tại và chi phí ước tính quy đổi theo đơn giá API — theo mô hình · dự án · khung giờ.
api-server → Mac StudioĐang chuyển
Xuất hội thoại2.1 MB
Đóng gói thư mục làm việc38 MB
Tải lên máy chủ62%
Giải nén trên Mac nhận
Mở tiếp
Chuyển sang Mac khácChuyển hội thoại (và cả thư mục làm việc nếu muốn) sang Mac khác để làm tiếp. Quá trình vẫn tiếp tục khi đóng web, và khi quay lại sẽ thấy tiến trình.
MacBook · shellEscTab^CPgUpĐóng cửa sổ
dev@macbook:~/work/api-server$ git status -s M src/payments/charge.ts ?? src/payments/refund.ts dev@macbook:~/work/api-server$ npm test -- payments Tests: 18 passed, 18 total dev@macbook:~/work/api-server$
Terminal webMở shell trên Mac của lập trình viên và màn hình tmux thật của phiên claude trong cửa sổ mới. Chỉ mở được khi đã bật trực tiếp trên Mac đó, và khi mở sẽ xác nhận OTP thêm một lần.
Promptapi-server · 24 · mới nhất trước
#24 · 14:02↳
Hãy đổi cả phần hoàn tiền theo cách tương tự và chạy luôn kiểm thử
#23 · 13:41↳
Hãy đổi số tiền thanh toán sang đơn vị nhỏ nhất của từng loại tiền tệ, và đảm bảo một đơn hàng không bị thanh toán hai lần
#22 · 11:20 · 1 hình ảnh↳
Hãy chỉnh lại thông báo lỗi giống như màn hình này
Danh sách promptChỉ gom lại các chỉ thị của bạn vốn bị chìm giữa những việc AI đã làm. Nhấn ↳ để đến đúng vị trí đó trong hội thoại và đọc lại từ đấy.
SSemBridge
한국어English日本語简体中文FrançaisEspañolBahasa IndonesiaTiếng Việtភាសាខ្មែរالعربية
10 ngôn ngữDùng console web bằng ngôn ngữ của đội ngũ. Trình duyệt ghi nhớ ngôn ngữ đã chọn, số và ngày tháng cũng hiển thị theo ngôn ngữ đó. Tiếng Ả Rập hiển thị từ phải sang trái.

Rộng rãi trên máy tính, một tay trên điện thoại

Dùng cùng một console trên mọi màn hình. Trên trình duyệt máy tính, danh sách phiên · hội thoại · thông báo nằm cạnh nhau thành ba cột, trình soạn thảo tệp và bảng điều khiển mức sử dụng hiển thị rộng rãi; trên điện thoại, chuyển qua lại giữa Phiên · Thông báo · Tác vụ · Mức sử dụng · Quản lý bằng thanh tab bên dưới. Các màn hình dưới đây cũng được vẽ bằng dữ liệu ví dụ giả định.

Ba cột rộng rãi, thu gọn khi cần

Danh sách phiên bên trái · hội thoại ở giữa · phê duyệt và host bên phải trên cùng một màn hình. Khi thu gọn hai cột bên, phiên còn lại thành dải tóm tắt (trạng thái · thời gian đã chạy · số phê duyệt), thông báo thành dải biểu tượng, và hội thoại được mở rộng.

  • Tệp đã sửa hiện diff có số dòng, đầu ra dài được thu gọn
  • Trình duyệt này ghi nhớ trạng thái thu gọn
  • Gửi bằng ⌘↵, kéo thả để thêm tệp

Vuốt sang bên để xem

Trình duyệt tệp và trình soạn thảo

Xem thư mục phiên dạng cây và mở hai tệp cạnh nhau để sửa. Mở khóa, sửa rồi lưu bằng ⌘S; tệp do Claude sửa được đọc lại ngay.

  • Xem trước markdown · xem ảnh
  • Đổi tên · nhân bản · xóa vào Thùng rác (không xóa vĩnh viễn)
  • Không sửa được bên trong .git · .claude

Vuốt sang bên để xem

Bảng điều khiển mức sử dụng

Xem hạn mức tài khoản và dự báo theo tốc độ hiện tại, so sánh chi phí ước tính · yêu cầu · đầu ra · tỷ lệ trúng cache với kỳ trước. Biểu đồ cột theo mô hình mỗi ngày và bản đồ nhiệt thứ × giờ cho thấy đã dùng khi nào · vào đâu.

  • Khoảng thời gian: Hôm nay · 7 ngày · 30 ngày · 90 ngày · Tháng này
  • Ngày tăng đột biến được đánh dấu ▲
  • Chi phí là ước tính quy đổi theo đơn giá API

Vuốt sang bên để xem

Có thể làm được gì

Những việc vẫn làm trên terminal giờ cũng làm được y như vậy trên web. Bản gốc luôn là tệp hội thoại trên từng Mac, còn máy chủ chỉ giữ bản sao để hiển thị.

Xem hội thoại theo thời gian thực

Xem hội thoại · lệnh gọi công cụ · kết quả · tác tử con theo thời gian thực, đúng thứ tự như trên terminal. Tệp đã sửa hiện dưới dạng diff có số dòng, đầu ra dài được thu gọn, và cả markdown · sơ đồ mermaid · hình ảnh cũng được hiển thị. Mỗi phiên còn cho thấy tài khoản thực sự đang dùng (Claude · Ollama).

Phê duyệt quyền · trả lời câu hỏi

Khi Claude xin quyền chạy lệnh hoặc đặt câu hỏi, một thẻ sẽ hiện lên trên web · điện thoại. Hộp thoại tương tự cũng đồng thời hiện trên terminal, và bên nào trả lời trước sẽ được áp dụng. Cả những hộp thoại xác nhận chỉ hiện trên terminal (ví dụ: xác nhận tác vụ chạy nền khi thoát) cũng có thể chọn từ web.

Prompt · tệp · dừng

Văn bản dài cũng được gửi nguyên vẹn; tệp kéo thả hoặc dán vào ô nhập sẽ được tải lên thư mục phiên và chèn vào dưới dạng @đường-dẫn. Theo dõi dòng tiến trình và dừng như khi nhấn Esc.

Phiên mới · tiếp tục

Mở phiên mới bằng tmux trong các thư mục được phép, và mở tiếp hội thoại đã kết thúc. Hội thoại của những thư mục chỉ dùng trên terminal cũng hiện trong danh sách tiếp tục (giống claude --continue), và khi mở tiếp bằng tài khoản khác, tệp hội thoại sẽ được sao chép sang tài khoản đó để dùng.

Mô hình · effort · chế độ quyền

Đổi mô hình và effort ngay trong phiên (mặc định chỉ cho phiên này), và chuyển qua lại giữa năm chế độ quyền (Mặc định · Tự chấp nhận chỉnh sửa · Lập kế hoạch · Tự động · Cho phép tất cả).

Chuyển phiên

Chuyển phiên đã kết thúc sang Mac khác để làm tiếp. Có thể chuyển cả thư mục làm việc (trừ các thư mục có thể tạo lại), và theo dõi từng bước qua thanh tiến trình.

Trình duyệt tệp · trình soạn thảo

Duyệt, xem trước và sửa thư mục phiên. Tệp do Claude sửa được cập nhật ngay, còn xóa chỉ là chuyển vào Thùng rác. Mở trong cửa sổ mới để vừa xem hội thoại vừa xem tệp.

Terminal web

Mở shell trên Mac của lập trình viên và màn hình tmux thật của phiên claude ngay trên web. Cuộn · kéo chọn để sao chép · ⌘K để xóa như trên terminal, còn số dòng được ghi nhớ thì đặt trong cài đặt. Chỉ mở được khi đã bật trực tiếp trên Mac đó.

Danh sách prompt

Gom lại chỉ những prompt người dùng đã nhập trong phiên đó, mới nhất trước. Nhấn vào để đến đúng vị trí đó trong hội thoại và xem xét từ đấy, kể cả các bản ghi cũ (trong thời gian lưu giữ của máy chủ).

Tác vụ — tác tử chạy nền

Xem trên một màn hình các tác tử chạy nền và workflow đang chạy trên mọi phiên, đồng thời kiểm tra cả những cái đã kết thúc trong 24 giờ qua.

Bảng điều khiển mức sử dụng

Xem hạn mức tài khoản và dự báo theo tốc độ hiện tại, chi phí ước tính, biểu đồ cột theo mô hình mỗi ngày, các phiên dùng nhiều, bản đồ nhiệt thứ × giờ. Chi phí là ước tính quy đổi theo đơn giá API.

Quản lý host · tài khoản từ xa

Kết nối Mac của lập trình viên chỉ bằng một dòng lệnh cài đặt do “Thêm host” tạo ra. Xem trạng thái đăng nhập tài khoản Claude · Ollama trên từng Mac và đăng nhập ngay từ web; Agent được cập nhật từ xa bằng “Cập nhật ngay”.

Sao lưu · khôi phục hội thoại

Lịch sử hội thoại và bản sao tệp trước khi Claude sửa được tải lên máy chủ công ty mỗi 10 phút. Xem dung lượng kho lưu trữ · dung lượng đĩa còn trống · trạng thái sao lưu theo host, rồi chọn để khôi phục.

Nhật ký kiểm toán · dọn dẹp lưu giữ · chỉ số

Mọi lệnh từ xa đều được ghi lại: ai · ở phiên nào · làm gì · cho đến kết quả. Bản ghi cũ được dọn theo thời hạn đã đặt, các giá trị nhạy cảm như token được che khi hiển thị. Cũng xem được các chỉ số như độ trễ kết nối theo từng host.

10 ngôn ngữ

Dùng console web bằng tiếng Hàn·English·日本語·简体中文·Français·Español·Bahasa Indonesia·Tiếng Việt·ភាសាខ្មែរ·العربية. Chọn bằng nút 🌐 phía trên; tiếng Ả Rập hiển thị từ phải sang trái.

Khi triển khai, cách sử dụng như sau

Kết nối các Mac của lập trình viên vào một máy chủ công ty. Lập trình viên chỉ cần dùng claude trong tmux như thường lệ.

Cài đặt trên máy chủ công ty

Đặt máy chủ trung gian (máy chủ ứng dụng web · cơ sở dữ liệu) trên máy chủ nội bộ. Console web đặt sau HTTPS proxy của công ty, còn kết nối Agent chỉ mở trong mạng nội bộ.

Kết nối Mac của lập trình viên

Dán một dòng lệnh cài đặt (mã đăng ký dùng một lần, hiệu lực 15 phút) do quản trị viên tạo bằng “Thêm host” vào terminal của Mac, Agent sẽ được cài đặt và kết nối.

Tiếp tục ở bất cứ đâu

Phiên claude chạy trong tmux sẽ xuất hiện trên web. Theo dõi tiến trình từ máy tính hoặc điện thoại để phê duyệt · trả lời · ra chỉ thị tiếp theo · dừng.

Hoạt động như thế nào

Agent trên mỗi Mac đọc tệp hội thoại và hook của claude rồi gửi lên máy chủ công ty, đồng thời nhập các lệnh từ web vào tmux. Vì Agent chủ động kết nối tới máy chủ, phía Mac không cần mở cổng nào.

Sơ đồ SSemBridge Bên trái, trên mỗi Mac, claude ghi tệp hội thoại và gửi hook tới Agent; Agent đọc tệp hội thoại và mở WebSocket tới máy chủ công ty ở giữa. Máy chủ công ty gồm máy chủ ứng dụng web và cơ sở dữ liệu; bên phải, trình duyệt và điện thoại kết nối tới máy chủ qua HTTPS và WebSocket. Các Mac (nhiều máy) claude Claude Code chạy trong tmux Tệp hội thoại JSONL · bản gốc SSemBridge Agent Một tệp chạy Go · launchd ghi đọc hook Máy chủ công ty Web Application Server SSemiYa F/W Relay · login · audit Database Bản sao UI · cài đặt Web Trình duyệt Máy tính Điện thoại Ứng dụng web WebSocket · Agent kết nối trước HTTPS·WS Cài trên máy chủ nội bộ Đăng nhập+OTP mới mở được
Vuốt sang bên để xem
  • Bản gốc là tệp hội thoại trên từng Mac. Máy chủ chỉ giữ bản sao để hiển thị, nên dù khởi động lại máy chủ, Agent sẽ gửi lại tiếp để bù đủ.
  • Kết nối một chiều Agent → máy chủ — máy chủ không truy cập vào Mac. Lệnh cũng được nhận qua chính kết nối đó và nhập vào tmux.
  • hook chỉ được nhận qua 127.0.0.1. Dù Agent không chạy, claude cũng không bị chậm đi (bỏ qua trong vòng 1 giây).
  • Web nằm sau HTTPS proxy của công ty, chỉ mở sau khi qua đăng nhập + OTP, và mọi lệnh từ xa đều được ghi vào nhật ký kiểm toán.
Agent

Một tệp chạy Go duy nhất

Thường trú trên mỗi Mac bằng launchd. Tail tệp hội thoại · nhận hook · điều khiển tmux · cập nhật từ xa.

Máy chủ

SSemiYa F/W
Web Application Server

Trung gian WebSocket, REST, nhật ký kiểm toán, lưu trữ bản sao lưu hội thoại. Cài trên máy chủ nội bộ.

Web

Module JS thuần (vanilla)

Không cần công cụ build, không dùng tài nguyên bên ngoài. Máy tính · điện thoại, giao diện sáng · tối.

DB

Database

Bản sao hội thoại để hiển thị, danh mục tài khoản · mô hình, mức sử dụng, nhật ký kiểm toán.

Nguyên tắc bảo mật

Vì đây là công cụ chạy lệnh từ xa trên Mac của lập trình viên, chúng tôi đã xác định trước những giới hạn cần tuân thủ rồi mới xây dựng.

  • Mọi việc trung gian · lưu trữ phục vụ điều khiển từ xa đều diễn ra trên máy chủ công ty — không đi qua dịch vụ đám mây bên ngoài.
  • Mac chỉ mở kết nối đi ra tới máy chủ công ty — không có cổng nào nhận kết nối từ bên ngoài.
  • Bí mật tài khoản (token Claude · khóa Ollama) chỉ nằm trên từng Mac. Máy chủ không lưu chúng.
  • Mã đăng ký và token của host chỉ được lưu dưới dạng hash; mã đăng ký chỉ dùng được một lần, trong vòng 15 phút.
  • Kết nối dành cho Agent không mở qua proxy bên ngoài mà chỉ được nhận trong mạng nội bộ (VPN).
  • Web bắt buộc ID · mật khẩu kèm OTP, và các thao tác quản trị (host · tài khoản · cài đặt · khôi phục sao lưu) chỉ quản trị viên mới thực hiện được.
  • Phiên mới chỉ mở trong các thư mục được phép, và Agent là bên kiểm tra đường dẫn tệp sau cùng (từ chối ngoài thư mục phiên · .git · .claude).
  • Mọi lệnh từ xa đều được ghi vào nhật ký kiểm toán (ai · phiên nào · làm gì · kết quả).
  • Terminal web chỉ mở được khi đã bật trực tiếp trên Mac đó (không thể bật từ web), và mỗi lần quản trị viên mở đều phải xác nhận OTP thêm một lần. Mở · đóng · số byte được ghi vào nhật ký kiểm toán nhưng nội dung phím gõ thì không, và terminal tự đóng sau 30 phút không có thao tác nhập.
  • Các giá trị trông giống token xuất hiện trên màn hình và trong bản ghi sẽ được che đi.
  • Web không tải script · phông chữ bên ngoài (CSP), và tệp tải lên được kiểm tra kích thước · đường dẫn hai lần.

Điều kiện sử dụng

Các điều kiện để SSemBridge hoạt động.

  • Mỗi Mac cần macOS và tmux. Phiên chạy ngoài tmux (terminal thông thường) chỉ có thể xem; cần mở lại bằng “Mở tiếp bằng tmux” trên web thì mới điều khiển được.
  • Máy chủ công ty cần máy chủ ứng dụng web (WAS) và cơ sở dữ liệu. Console web đặt sau HTTPS proxy của công ty, còn kết nối Agent chỉ mở trong mạng nội bộ (VPN).
  • Tài khoản Claude Code và Ollama là tài khoản đang dùng sẵn trên từng Mac. Tài khoản và chi phí vẫn theo hợp đồng với từng dịch vụ như hiện nay.
  • Định dạng bản ghi · hook · màn hình của Claude Code thay đổi theo từng phiên bản. Agent được cập nhật theo các phiên bản đã kiểm chứng (hiện tại 2.1.288~2.1.291), và bản cập nhật được gửi tới từng Mac bằng “Cập nhật ngay” trên web.
  • Chi phí trong mức sử dụng là ước tính quy đổi theo đơn giá API, không phải phí thuê bao hay số tiền thực tế bị tính.

Bạn đang cân nhắc triển khai SSemBridge?

Hãy cho chúng tôi biết số lượng lập trình viên và môi trường Mac · máy chủ bạn đang dùng, chúng tôi sẽ tư vấn cấu hình phù hợp. Giá và điều kiện triển khai cũng được cung cấp khi liên hệ.

Liên hệ triển khai

halo@levelupsoft.com

Mặc định cài trên máy chủ nội bộ · Levelupsoft Inc.