Tài liệu FuJue Harness
Dành cho người vừa cài app lần đầu và người đang nối CI vào model. Mọi lệnh dưới đây chạy trên bản 0.9.2.
Bắt đầu nhanh
Tải app ở trang Tải về, mở lên và đăng nhập. Nếu bạn dùng khoá DeepSeek có sẵn, bỏ qua bước đăng nhập và dán khoá vào Cài đặt → Nhà cung cấp.
# 1. Cài đặt
npm i -g @fujue/harness
# 2. Đăng nhập bằng trình duyệt (mã 8 ký tự)
fujue login
# 3. Chạy tác vụ đầu tiên trong thư mục dự án
cd ~/du-an && fujue "tóm tắt cấu trúc repo này"Dòng lệnh
fujueMở phiên tương tác trong thư mục hiện tạifujue "<tác vụ>"Chạy một tác vụ rồi thoátfujue login / logoutNối hoặc ngắt tài khoản trên máy nàyfujue modelsLiệt kê model và giá hiện hànhfujue session listXem các phiên đã lưu trên máyfujue session resume <id>Mở lại một phiên cũfujue jobsXem các tác vụ đang chạy nềnTham chiếu API
Cổng API tương thích OpenAI. Base URL https://api.fujue.dev/v1, xác thực bằng Authorization: Bearer fj_live_….
POST /v1/chat/completions
{
"model": "deepseek-v4",
"messages": [{ "role": "user", "content": "…" }],
"stream": true,
"tools": []
}Model khả dụng lấy từ GET /v1/models. Mã lỗi theo chuẩn HTTP; phần thân lỗi có dạng { "error": "…", "field": "…" }.
# Liệt kê model bằng khoá của bạn
curl https://api.fujue.dev/v1/models \
-H "Authorization: Bearer $FUJUE_KEY"Cấu hình model mặc định cho harness nằm ở cùng một nơi: app gọi GET /v1/harness/config sau khi đăng nhập để nhận base URL, model mặc định và danh mục kèm nguồn của từng model — không phải chép tay danh sách model.
curl https://api.fujue.dev/v1/harness/config \
-H "Authorization: Bearer $FUJUE_KEY"
{
"api": { "base_url": "https://api.fujue.dev/v1" },
"default_model": "deepseek-v4",
"models": [
{
"id": "deepseek-v4",
"context_window": 262144,
"default": true,
"source": {
"provider": "FuJue",
"base_url": "https://api.fujue.dev/v1",
"upstream_id": "deepseek-v4"
}
}
]
}Kết nối thiết bị
App không lưu mật khẩu. Nó xin một mã thiết bị, bạn duyệt mã đó khi đã đăng nhập trên web, rồi app nhận một khoá API riêng cho máy đó.
POST /api/v1/device/start → { device_code, user_code, expires_in }
POST /api/v1/device/approve → duyệt mã (cần phiên web)
POST /api/v1/device/token → { api_key, user } khi mã đã duyệtMã hết hạn sau 10 phút. Mỗi lần cấp khoá sẽ ghi một dòng vào nhật ký thao tác và khoá xuất hiện trong bảng điều khiển với tên thiết bị.
Viết plugin
Plugin là một gói Cordis: khai báo service, đăng ký công cụ, thêm lệnh. Harness nạp plugin từ ~/.fujue/plugins hoặc từ cấu hình dự án.
export const name = "plugin-ví-dụ";
export function apply(ctx) {
ctx.tool({
name: "deploy_staging",
description: "Đẩy bản dựng hiện tại lên staging",
async run() {
return ctx.shell.run("pnpm deploy:staging");
},
});
}Liên hệ
Câu hỏi về gói Đội nhóm, hoá đơn hoặc triển khai trong mạng nội bộ: gửi tới team@fujue.dev. Đội ngũ trả lời trong ngày làm việc.