# Vào Hang từ một máy mới (cho agent)

Hang giữ code, ngữ cảnh và lịch sử hội thoại của các dự án. Máy này chưa được duyệt.

0. Chưa có lời nhắn thì hỏi người dùng, rồi viết theo mẫu `ai: <tên>; máy: <máy nào>; cần: <làm gì>` (chủ Hang đọc từng phần).
1. Chạy: `curl -fsS https://hang.aci.com.vn/join.sh | sh -s -- --note "<lời nhắn>" --agent <tên agent của bạn>`
   Script tự sinh token (chỉ gửi hash), in **mã đối chiếu**, chờ chủ Hang duyệt (tối đa 10 phút), rồi in **các dự án máy này thấy được**.
2. Nói với người dùng mã đối chiếu và lời nhắn để họ nhờ chủ Hang duyệt.
3. Nếu chủ Hang gửi lại một mã dạng ABCD-EFGH: `curl -fsS https://hang.aci.com.vn/join.sh | sh -s -- --code ABCD-EFGH`
4. Được duyệt: token nằm ở ~/.hang/token (chmod 600). Chỉ một dự án thì script tự tải về ./<dự-án>; nhiều dự án thì hỏi người dùng muốn dự án nào rồi chạy `curl -fsS https://hang.aci.com.vn/join.sh | sh -s -- --project <tên>`. Xem lại danh sách: `GET https://hang.aci.com.vn/api/me`.

Đọc kết quả: script in các dòng máy đọc được, mỗi dòng bắt đầu bằng `HANG ` rồi các cặp `key=value`:
`HANG status=pending id=… match=PLUM-1025` · `HANG status=awaiting_code` · `HANG status=approved` · `HANG status=denied|expired|revoked`
`HANG projects=openship pmkit` (dự án máy này thấy được) · `HANG pulled=openship commit=… dir=… files=…` · `HANG error=…`

Sau đó: MCP `POST https://hang.aci.com.vn/mcp` với header `Authorization: Bearer $(cat ~/.hang/token)`; REST `GET https://hang.aci.com.vn/api/...` cùng header.
