CLI

Lệnh nextfarm đưa trợ lý nông trại NextFarm AI và nền tảng nhà phát triển vào terminal: gõ nextfarm là chat trên dữ liệu thật của trang trại; kèm subcommand để gọi API, quản lý API key, nghe webhook về máy và cài MCP cho trợ lý khác.

Cài đặt

macOS / Linux
curl -fsSL https://developers.nextfarm.vn/install.sh | sh
Windows (PowerShell)
irm https://developers.nextfarm.vn/install.ps1 | iex
Homebrew
brew install nextx-organization/nextfarm/nextfarm
npm (Node ≥ 20)
npm install -g nextfarm

Có sẵn cho macOS (Apple Silicon và Intel), Linux (x64, arm64) và Windows x64. Mã nguồn và bản phát hành: nextfarm-cli · bản 0.3.3

Bắt đầu nhanh

Shell
nextfarm login            # trình duyệt; qua SSH thì --qr và quét bằng app NextFarm
nextfarm                  # mở khung chat
nextfarm -p "lô nào sắp thu hoạch tuần này" --json
nextfarm doctor
  • Trợ lý chỉ ghi khi bạn xác nhận. Việc chạm thiết bị, tự động hoá hoặc tiền (bơm, van, quy tắc tự chạy, thu chi) chỉ xác nhận trong app NextFarm, máy chủ cũng chặn từ terminal.
  • Script và CI: đặt NEXTFARM_API_KEY rồi dùng nextfarm tools call, nextfarm api. Chat với trợ lý cần đăng nhập người dùng.
  • Gói Miễn phí có 30 câu hỏi AI mỗi tuần cho cả trang trại, mở lại 00:00 thứ Hai. nextfarm ai usage để xem còn bao nhiêu.

Đăng nhập

CáchDùng khi
nextfarm loginMáy có trình duyệt — OAuth + PKCE, session tự gia hạn.
nextfarm login --qrQua SSH: quét mã QR bằng app NextFarm.
nextfarm login --deviceMáy không có trình duyệt lẫn app: nhập device code ở id.nextfarm.vn/oauth/device trên máy khác.
NEXTFARM_API_KEYScript, server, CI chỉ đọc — đúng scope của API key, không chat AI.
nextfarm login --ciGitHub Actions / GitLab CI: đổi OIDC token lấy session 15 phút, không cần secret trong repo. Khai báo repo bằng ci trust add.

Permission mode

ModeÝ nghĩa
readChỉ đọc — trợ lý không tạo write proposal.
proposeMặc định: trợ lý tạo write proposal, bạn xác nhận từng cái (y/N).
autoTự ghi việc thường; ghi lớn vẫn phải gõ lại con số.
Thiết bị, tự động hoá và tiền (bơm, van, lịch tưới, thu chi) chỉ xác nhận trong app NextFarm ở mọi mode — server từ chối từ terminal.

Slash commands

LệnhViệc
/helpDanh sách lệnh và phím tắt
/newHội thoại mới (giữ workspace, agent)
/resume [query]Mở lại hội thoại cũ
/rename <name>Đặt tên hội thoại này
/pinGhim / bỏ ghim hội thoại
/workspace [code]Đổi workspace đang làm việc
/mode read|propose|autoPermission mode: chỉ đọc · đề xuất · tự ghi việc thường
/model [name]Đổi model: NextFarm AI hoặc model của bạn
/attach <file>Đính kèm tệp Excel / CSV / ảnh / tệp chữ
/undo [id]Hoàn tác lần ghi gần nhất
/why [runId]Vì sao AI trả lời vậy (các bước, công cụ đã gọi)
/memoryAI đang nhớ gì về công ty — sửa, khoá, quên
/schedule "question" daily 08:00Lên lịch một câu hỏi chạy hằng ngày / tuần / tháng
/sau-benh <photo>Chẩn đoán sâu bệnh từ ảnh lá, quả, thân
/thoi-tiet [plot]Thời tiết mấy ngày tới ở trang trại / lô
/ban-tinBản tin sáng mới nhất của trang trại
/export md|json [file]Xuất hội thoại ra Markdown / JSON
/toolsCông cụ AI bạn đang được dùng (theo quyền thật)
/usageCâu hỏi AI còn lại tuần này
/feedback up|downBáo câu trả lời vừa rồi tốt / chưa tốt
/statusTài khoản, workspace, môi trường, phiên bản
/doctorKiểm kết nối, đồng hồ, token, gói
/config [key value]Cài đặt: ngôn ngữ, màu, thông báo cập nhật
/initTạo NEXTFARM.md: chỉ dẫn riêng cho thư mục này
/mcpCài máy chủ MCP vào client khác
/logoutĐăng xuất hồ sơ này
/clearXoá màn hình (không xoá hội thoại)
/exitThoát
PhímViệc
Enter · Shift+Enter (\ + Enter)Gửi · xuống dòng
/Menu lệnh
@Đính kèm tệp, chọn Agent cho câu này
#Ghi nhớ nhanh vào NEXTFARM.md của thư mục
Shift+TabXoay permission mode
EscDừng câu trả lời đang chạy
Esc EscSửa lại câu vừa gửi
↑ / ↓Lịch sử câu đã gõ
Ctrl+OMở / gập chi tiết các bước
Ctrl+LXoá màn
Ctrl+C · Ctrl+DHuỷ dòng đang gõ (2 lần để thoát) · thoát

Command reference

LệnhViệc
nextfarm loginđăng nhập (tự chọn trình duyệt hoặc QR)
nextfarm logoutđăng xuất hồ sơ này (thu hồi session trên máy chủ)
nextfarm statustài khoản, workspace, môi trường, gói AI, session
nextfarm sessionssession của bạn trên mọi thiết bị
nextfarm sessions listdanh sách session
nextfarm sessions revokethu hồi một session, hoặc --others để thu hồi mọi session khác
nextfarm workspacecác workspace (công ty) của bạn
nextfarm workspace listdanh sách workspace
nextfarm workspace useđổi workspace đang làm việc (lưu vào hồ sơ)
nextfarm aitrợ lý AI: hỏi, lịch sử, write proposal, bộ nhớ, lịch chạy
nextfarm ai askhỏi một câu không tương tác (giống -p)
nextfarm ai historydanh sách hội thoại
nextfarm ai showin toàn bộ một hội thoại
nextfarm ai renameđặt tên hội thoại (bỏ trống = xoá tên)
nextfarm ai pinghim hội thoại
nextfarm ai deletexoá hẳn một hội thoại (không hoàn tác)
nextfarm ai whyvì sao trợ lý trả lời vậy: các bước, công cụ đã gọi
nextfarm ai applyxác nhận một write proposal (ghi thật)
nextfarm ai rejecttừ chối một write proposal
nextfarm ai undohoàn tác đề xuất đã ghi (trong 24 giờ)
nextfarm ai memorytrợ lý đang nhớ gì về trang trại
nextfarm ai memory list
nextfarm ai memory forgetquên một điều (chỉ chủ trại)
nextfarm ai schedulecâu hỏi chạy định kỳ
nextfarm ai schedule list
nextfarm ai schedule add
nextfarm ai schedule run
nextfarm ai schedule delete
nextfarm ai briefbản tin sáng mới nhất
nextfarm ai pestchẩn đoán sâu bệnh từ ảnh
nextfarm ai usagecâu hỏi AI còn lại tuần này
nextfarm ai feedbackbáo câu trả lời tốt (up) / chưa tốt (down)
nextfarm modelmodel của bạn cho --model (khoá lưu keychain, không gửi về NextFarm)
nextfarm model listcác model đã thêm
nextfarm model addthêm nhà model: claude, gemini, gpt, grok, ollama
nextfarm model removegỡ model và xoá khoá khỏi keychain
nextfarm model defaultmodel mặc định khi mở chat (nextfarm = NextFarm AI)
nextfarm toolscông cụ AI bạn được dùng (theo quyền thật)
nextfarm tools logincấp quyền công cụ AI cho CLI trên máy này (một lần)
nextfarm tools logoutthu hồi quyền công cụ AI của CLI
nextfarm tools listdanh sách công cụ
nextfarm tools describetham số và ví dụ của một công cụ
nextfarm tools callgọi một công cụ. Công cụ ghi chỉ tạo đề xuất để xác nhận
nextfarm apigọi thẳng API (vd: api GET /gis/parcels -f page_size=5)
nextfarm keysAPI key của workspace
nextfarm keys listdanh sách khoá
nextfarm keys createtạo khoá mới (in khoá đúng một lần)
nextfarm keys revokethu hồi khoá (dừng ngay)
nextfarm keys deletexoá khoá
nextfarm keys usagesố lượt gọi 7 ngày
nextfarm keys calls50 lượt gọi gần nhất của một khoá
nextfarm webhookssự kiện webhook: xem, trigger, nghe về máy
nextfarm webhooks eventsdanh sách sự kiện
nextfarm webhooks schemaschema và ví dụ payload
nextfarm webhooks endpointsendpoint nhận webhook của workspace
nextfarm webhooks endpoints list
nextfarm webhooks endpoints create
nextfarm webhooks endpoints delete
nextfarm webhooks endpoints rotate-secretđổi khoá ký (khoá cũ còn hiệu lực một thời gian)
nextfarm webhooks triggerbắn một sự kiện mẫu tới endpoint
nextfarm webhooks deliverieslượt giao gần đây
nextfarm webhooks retrygửi lại một lượt giao
nextfarm webhooks verifykiểm signature webhook tại máy (không gọi máy chủ)
nextfarm webhooks listennhận sự kiện thật về máy và chuyển tới địa chỉ local
nextfarm openapitải đặc tả OpenAPI công khai
nextfarm openapi pull
nextfarm docsmở tài liệu (cli, quickstart, api-keys, oauth, mcp, ai-tools, webhooks, sdk, errors, rate-limit, sandbox, changelog, versioning, security)
nextfarm changelogthay đổi API gần đây
nextfarm mcpkết nối máy chủ MCP vào trợ lý AI khác
nextfarm mcp urlin địa chỉ máy chủ MCP
nextfarm mcp installcài vào: chatgpt, claude, claude-desktop, codex, copilot, cursor, gemini, grok, vscode, windsurf
nextfarm mcp uninstall
nextfarm mcp servechạy MCP qua stdio bằng quyền của CLI (cho client không hỗ trợ OAuth)
nextfarm ciđăng nhập từ CI không cần secret (OIDC)
nextfarm ci trustkho CI được phép đăng nhập workspace này
nextfarm ci trust list
nextfarm ci trust addcho một kho đăng nhập (token đứng tên bạn, sống 15 phút)
nextfarm ci trust revokethu hồi (có hiệu lực ngay)
nextfarm ci policychính sách duyệt trước: cho CI tự ghi trong trần
nextfarm ci policy list
nextfarm ci policy kindsloại ghi đưa được vào chính sách
nextfarm ci policy show
nextfarm ci policy requestxin cho một kho CI tự ghi (người quản lý API key duyệt; có quyền thì có hiệu lực ngay)
nextfarm ci policy revokethu hồi (lượt ghi kế tiếp quay về chỉ in link)
nextfarm ci examplein mẫu workflow GitHub Actions
nextfarm doctorkiểm kết nối, đồng hồ, token, gói, phiên bản
nextfarm configcài đặt
nextfarm config list
nextfarm config get
nextfarm config setlang · mode · updateChannel · updateCheck · telemetry · color · defaultProfile
nextfarm completiongợi ý Tab cho bash | zsh | fish | powershell
nextfarm updatenâng lên bản mới
nextfarm inittạo NEXTFARM.md: chỉ dẫn riêng cho thư mục này

nextfarm login

đăng nhập (tự chọn trình duyệt hoặc QR)

FlagÝ nghĩa
--webđăng nhập qua trình duyệt
--qrquét mã bằng app NextFarm (SSH, máy không có trình duyệt)
--devicenhập mã trên máy khác (RFC 8628)
--citrong GitHub Actions/GitLab CI: đổi token OIDC lấy token ngắn hạn
--no-browserkhông tự mở trình duyệt, chỉ in link

nextfarm logout

đăng xuất hồ sơ này (thu hồi session trên máy chủ)

FlagÝ nghĩa
--allđăng xuất mọi hồ sơ trên máy này

nextfarm sessions revoke [id]

thu hồi một session, hoặc --others để thu hồi mọi session khác

FlagÝ nghĩa
--othersmọi session trừ session này

nextfarm workspace use [code]

đổi workspace đang làm việc (lưu vào hồ sơ)

nextfarm ai ask <question...>

hỏi một câu không tương tác (giống -p)

FlagÝ nghĩa
--conversation <id>hỏi tiếp trong hội thoại này

nextfarm ai history

danh sách hội thoại

FlagÝ nghĩa
--search <text>lọc theo chữ
--limit <n>số dòng · mặc định 30

nextfarm ai show <id>

in toàn bộ một hội thoại

nextfarm ai rename <id> [title...]

đặt tên hội thoại (bỏ trống = xoá tên)

nextfarm ai pin <id>

ghim hội thoại

FlagÝ nghĩa
--offbỏ ghim

nextfarm ai delete <id>

xoá hẳn một hội thoại (không hoàn tác)

nextfarm ai why [runId]

vì sao trợ lý trả lời vậy: các bước, công cụ đã gọi

nextfarm ai apply <proposalId>

xác nhận một write proposal (ghi thật)

nextfarm ai reject <proposalId>

từ chối một write proposal

nextfarm ai undo <proposalId>

hoàn tác đề xuất đã ghi (trong 24 giờ)

nextfarm ai memory forget <id>

quên một điều (chỉ chủ trại)

nextfarm ai schedule add <question>

FlagÝ nghĩa
--at <HH:mm>giờ chạy (giờ Việt Nam)
--weekday <1-7>chỉ một ngày trong tuần (1 = thứ Hai); bỏ trống = hằng ngày

nextfarm ai schedule run <id>

nextfarm ai schedule delete <id>

nextfarm ai pest <photo> [note...]

chẩn đoán sâu bệnh từ ảnh

nextfarm ai feedback <runId> <vote>

báo câu trả lời tốt (up) / chưa tốt (down)

nextfarm model add <provider>

thêm nhà model: claude, gemini, gpt, grok, ollama

FlagÝ nghĩa
--key-from-stdinđọc API key từ stdin (không bao giờ đưa khoá lên dòng lệnh)
--name <model>model dùng khi chỉ ghi tên nhà, vd gpt → --name <model>
--url <url>địa chỉ máy chủ (Ollama hoặc cổng tương thích)

nextfarm model remove <name>

gỡ model và xoá khoá khỏi keychain

nextfarm model default <name>

model mặc định khi mở chat (nextfarm = NextFarm AI)

nextfarm tools login

cấp quyền công cụ AI cho CLI trên máy này (một lần)

FlagÝ nghĩa
--no-browserkhông tự mở trình duyệt

nextfarm tools list

danh sách công cụ

FlagÝ nghĩa
--module <m>lọc theo phân hệ (gis, iot, office…)
--kind <k>lọc theo loại (read | proposal | export)
--publicdanh mục công khai (không cần đăng nhập)

nextfarm tools describe <name>

tham số và ví dụ của một công cụ

nextfarm tools call <name>

gọi một công cụ. Công cụ ghi chỉ tạo đề xuất để xác nhận

FlagÝ nghĩa
--args <json>tham số JSON
--args-file <file>tham số từ tệp JSON (- = stdin)
-a, --arg <key=value>một tham số (lặp được)

nextfarm api <method> <path>

gọi thẳng API (vd: api GET /gis/parcels -f page_size=5)

FlagÝ nghĩa
-f, --raw-field <key=value>tham số dạng chuỗi: query với GET/DELETE, thân JSON với POST/PUT/PATCH (lặp được)
-F, --field <key=value>như -f nhưng đoán kiểu: số, true/false, JSON
--input <file>thân request từ tệp JSON (- = stdin)
-H, --header <K: V>thêm header (lặp được)
--paginateđi hết các trang (kết quả dạng items/pageNumber)
--select <path>chỉ in một phần, vd .items[0].name
-i, --includein cả status code và header
--idempotency-key <key>khoá chống trùng cho POST

nextfarm keys create

tạo khoá mới (in khoá đúng một lần)

FlagÝ nghĩa
--name <name>
--scopes <codes>mã quyền, phẩy ngăn cách, vd gis.parcels.view,iot.devices.view
--expires <dur>thời hạn: 30d, 6m, 1y · mặc định 90d
--description <text>

nextfarm keys revoke <id>

thu hồi khoá (dừng ngay)

nextfarm keys delete <id>

xoá khoá

nextfarm keys usage [id]

số lượt gọi 7 ngày

nextfarm keys calls <id>

50 lượt gọi gần nhất của một khoá

nextfarm webhooks events

danh sách sự kiện

FlagÝ nghĩa
--module <m>

nextfarm webhooks schema <event>

schema và ví dụ payload

nextfarm webhooks endpoints create <url>

FlagÝ nghĩa
--events <list>sự kiện, phẩy ngăn cách
--description <text>

nextfarm webhooks endpoints delete <id>

nextfarm webhooks endpoints rotate-secret <id>

đổi khoá ký (khoá cũ còn hiệu lực một thời gian)

nextfarm webhooks trigger <event>

bắn một sự kiện mẫu tới endpoint

FlagÝ nghĩa
--endpoint <id>endpoint đích (mặc định: endpoint đầu tiên nhận sự kiện này)

nextfarm webhooks deliveries

lượt giao gần đây

FlagÝ nghĩa
--status <s>success | failed | pending
--endpoint <id>
--limit <n> · mặc định 30

nextfarm webhooks retry <deliveryId>

gửi lại một lượt giao

nextfarm webhooks verify

kiểm signature webhook tại máy (không gọi máy chủ)

FlagÝ nghĩa
--secret <secret>
--payload <file>thân thô đã nhận (- = stdin)
-H, --header <K: V>header đã nhận (lặp được)
--signature <sig>signature trong header *-Signature-256
--timestamp <ts>dấu thời gian trong header *-Timestamp

nextfarm webhooks listen

nhận sự kiện thật về máy và chuyển tới địa chỉ local

FlagÝ nghĩa
--forward-to <url>vd localhost:3000/hook
--events <list>sự kiện, phẩy ngăn cách (mặc định: tất cả)
--print-secretin đủ khoá ký
--print-jsonin thân sự kiện

nextfarm openapi pull

FlagÝ nghĩa
--module <m>chỉ một phân hệ
-o, --out <file> · mặc định openapi.json

nextfarm docs [topic]

mở tài liệu (cli, quickstart, api-keys, oauth, mcp, ai-tools, webhooks, sdk, errors, rate-limit, sandbox, changelog, versioning, security)

nextfarm mcp install [clients...]

cài vào: chatgpt, claude, claude-desktop, codex, copilot, cursor, gemini, grok, vscode, windsurf

nextfarm mcp uninstall <client>

nextfarm mcp serve

chạy MCP qua stdio bằng quyền của CLI (cho client không hỗ trợ OAuth)

FlagÝ nghĩa
--stdiodùng stdin/stdout (mặc định)

nextfarm ci trust add

cho một kho đăng nhập (token đứng tên bạn, sống 15 phút)

FlagÝ nghĩa
--repo <owner/repo>
--provider <p>github | gitlab · mặc định github
--ref <ref>nhánh hoặc tiền tố tag, vd main · refs/tags/v* · mặc định main
--environment <name>environment GitHub bắt buộc (khuyên dùng cho nhánh chính)
--expires <dur>thời hạn: 90d, 1y
--name <name>

nextfarm ci trust revoke <id>

thu hồi (có hiệu lực ngay)

nextfarm ci policy show <id>

nextfarm ci policy request

xin cho một kho CI tự ghi (người quản lý API key duyệt; có quyền thì có hiệu lực ngay)

FlagÝ nghĩa
--trust <id|owner/repo>CI trust (xem: ci trust list)
--kinds <a,b>loại ghi (xem: ci policy kinds)
--max <n>trần số bản ghi (1–1000) · mặc định 50
--expires <dur>thời hạn tối đa 30d · mặc định 14d
--note <text>
--approveduyệt luôn (cần quyền quản lý API key)

nextfarm ci policy revoke <id>

thu hồi (lượt ghi kế tiếp quay về chỉ in link)

nextfarm ci example

in mẫu workflow GitHub Actions

FlagÝ nghĩa
--repo <owner/repo>
--workspace <code>
--writemẫu có tự ghi (cần chính sách: ci policy request)

nextfarm config get <key>

nextfarm config set <key> <value>

lang · mode · updateChannel · updateCheck · telemetry · color · defaultProfile

nextfarm completion <shell>

gợi ý Tab cho bash | zsh | fish | powershell

nextfarm update

nâng lên bản mới

FlagÝ nghĩa
--channel <c>latest | next

Scripting & CI

Shell
nextfarm -p "tóm tắt nhật ký tuần" --json   # không tương tác, in JSON
nextfarm tools call parcels_list --args '{"page_size":5}'
nextfarm api GET /gis/parcels -f page_size=5

Trong CI, session của nextfarm login --ci không có người bấm xác nhận: write proposal chỉ được ghi khi có pre-approval policy cho đúng repo đó (loại ghi, record limit, hạn ≤ 30 ngày) — xem nextfarm ci policy. Ngoài policy, lệnh in link để xác nhận trong app và trả exit code 7.

Flag chung

FlagÝ nghĩa
-v, --versionin phiên bản
-p, --print [question]không tương tác: in câu trả lời rồi thoát (đọc thêm từ stdin)
-c, --continuenối hội thoại gần nhất
-r, --resume [id]mở lại hội thoại cũ (không id = chọn trong danh sách)
-f, --file <path>đính kèm tệp Excel/CSV, ảnh hoặc tệp chữ (lặp được, tối đa 3)
--profile <name>hồ sơ đăng nhập
--sandboxdùng sandbox
-w, --workspace <code>chạy lệnh này trên workspace khác
--agent <code>chọn Agent thay cho Trợ lý chung
--model <provider/name>dùng model của bạn qua MCP: claude, gemini, gpt, grok, ollama/<name>
--mode <mode>permission mode
--output-format <format>output format
--jsonviết tắt của --output-format json
--lang <lang>ngôn ngữ
--no-colortắt màu
--quietchỉ in kết quả
--verbosein chi tiết
--debugin request-id và thời gian từng cửa (không in token)

Environment variables

NEXTFARM_API_KEY · NEXTFARM_TOKEN · NEXTFARM_PROFILE · NEXTFARM_ENV · NEXTFARM_WORKSPACE · NEXTFARM_LANG · NEXTFARM_DEBUG · NEXTFARM_NO_UPDATE_CHECK · NEXTFARM_NO_KEYCHAIN · NEXTFARM_ID_TOKEN

Exit codes

Exit codeÝ nghĩa
0Thành công
1Lỗi chung hoặc lỗi server
2Sai cú pháp lệnh
3Chưa đăng nhập hoặc session hết hạn
4Thiếu quyền, scope hoặc gói
5Hết lượt AI hoặc vượt rate limit
6Lỗi mạng
7Write proposal chưa được xác nhận
8Không tìm thấy
130Bị huỷ (Ctrl+C)