---
title: "Cài đặt & đăng nhập các nguồn"
url: https://phatdev.net/docs/aiusage/cai-dat
lang: vi
updated: 2026-10-23
alternate:
  en: https://phatdev.net/en/docs/aiusage/cai-dat
markdown: https://phatdev.net/docs/aiusage/cai-dat.md
---

# Cài đặt & đăng nhập các nguồn

Thuộc bộ tài liệu: [AIUsage](https://phatdev.net/docs/aiusage.md)

> Yêu cầu, build từ mã nguồn, cài phần chạy nền, đăng nhập Claude, Console, Codex, Antigravity, Gemini và xử lý sự cố.

AIUsage chạy hoàn toàn trên máy của bạn. Trang này mô tả cách dựng ứng dụng từ mã nguồn, cài phần chạy nền và đăng nhập các nguồn dữ liệu.

## Yêu cầu

- macOS 26 trở lên và Xcode 27 trở lên để build.
- Các công cụ và tài khoản bạn muốn theo dõi, đã đăng nhập sẵn: `claude.ai` và Anthropic Console (trong trình duyệt nhúng của ứng dụng), `codex`, `agy`, và một service account Google Cloud cho Gemini API (tuỳ chọn).

## Build và cài ứng dụng

```sh
xcodebuild -project AIUsage.xcodeproj -scheme AIUsage -configuration Release \
  -derivedDataPath /tmp/AIUsage_build CODE_SIGN_IDENTITY="-" CODE_SIGNING_ALLOWED=YES build
cp -R /tmp/AIUsage_build/Build/Products/Release/AIUsage.app /Applications/
open /Applications/AIUsage.app
```

Sau khi cài, xoá bản build tạm và đăng ký lại ứng dụng với Launch Services để WidgetKit không chạy widget từ thư mục tạm. Luôn kiểm tra dòng `BUILD SUCCEEDED` trước khi chép: nếu bản build hỏng bị chép vào `/Applications`, ứng dụng sẽ không mở được.

## Cài phần chạy nền

Có ba LaunchAgent: `refresh` chạy mỗi 5 phút, `trigger` chạy khi bấm nút làm mới ở ứng dụng hoặc widget, `login` mở cửa sổ đăng nhập từ widget. Các tệp mẫu nằm trong thư mục `launchd/` của kho mã, dùng `__HOME__` thay cho đường dẫn người dùng.

## Đăng nhập các nguồn

1. **Claude:** mở cửa sổ đăng nhập của helper và chọn **Continue with email**. Đăng nhập Google bị chặn trong WebView. Gõ mã xác nhận gửi qua email hoặc dán bằng menu Chỉnh sửa.
2. **Anthropic Console:** chạy helper với tham số `login-console` và đăng nhập một lần. Số dư tín dụng API sẽ hiện thành dòng "API" trong thẻ Claude.
3. **Codex:** chạy `codex login`. Ứng dụng dùng token trong file đăng nhập của Codex.
4. **Antigravity:** đăng nhập `agy` một lần.
5. **Gemini API (tuỳ chọn):** lưu service account JSON đã mã hoá base64 vào Keychain với tên `aiusage.gcp.sa`, rồi sửa các hằng số project, bảng BigQuery và billing account ở đầu nhánh `gemini` trong `fetch_one.sh`. Số dư credit đọc từ trang AI Studio; đăng nhập Google một lần bằng tham số `login-aistudio`.
6. **Máy chủ từ xa (tuỳ chọn):** khai tên máy vào `REMOTE_HOSTS` trong `fetch_one.sh` và chép `remote_insights.py` lên máy đó. Cần SSH bằng khoá, không hỏi mật khẩu.

Ứng dụng không bao giờ nhập hộ mật khẩu hay mã xác nhận: bạn tự đăng nhập trong cửa sổ của helper.

## Xử lý sự cố thường gặp

- **Thẻ Claude hiện "cần đăng nhập".** Phiên đã hết hạn. Bấm nút đăng nhập trên thẻ hoặc chạy lại `login`.
- **Dòng API không xuất hiện.** Chưa đăng nhập Console. Chạy `login-console` rồi bấm làm mới.
- **Mật khẩu lưu trong Passwords của macOS không tự điền.** Cửa sổ đăng nhập là WebKit nhúng trong ứng dụng nên không dùng được tự điền của hệ thống; dùng đăng nhập bằng mã gửi qua email.
- **Build báo lỗi ký mã "detritus not allowed".** Thư mục nguồn nằm trong vùng đồng bộ (Documents hoặc Desktop) nên bị gắn thuộc tính mở rộng. Ký trên bản sao ở thư mục tạm.
- **Widget không cập nhật nút làm mới.** Tiến trình widget cũ vẫn sống sau khi deploy. Chạy `pkill -f AIUsageWidgetExtension` rồi thử lại.
