Mọi lệnh của devkit, lấy từ devkit <command> --help của phiên bản v1.0.0. Ở chỗ nào lệnh nhận <site> hoặc <site|lane>, lane được viết là <site>--<lane>. Flag bật sẵn theo mặc định được tắt bằng --flag=false.
Flag toàn cục
Flag
Ý nghĩa
--json
in đúng một object JSON ra stdout (xem Output JSON)
--progress
báo các bước của lane new, site clone và site setup ra stderr: … <step>, hoặc mỗi bước một dòng {"progress":"…"} khi có --json
-h, --help
trợ giúp cho bất kỳ lệnh nào
-v, --version
phiên bản
devkit completion bash|zsh|fish|powershell in ra script tự hoàn thành cho shell.
Stacks
Lệnh
Flag
Tác dụng
stack add <compose-folder>
thêm một thư mục Docker Compose
stack list
các stack cùng service tìm được, vai trò, port và trạng thái
stack up <stack> [service…]
docker compose up -d cho cả stack hoặc một số service
stack restart <stack> [service…]
khởi động lại cả stack hoặc một số service
stack down <stack> [service…]
cả stack: docker compose down (giữ volume); một số service: docker compose stop
stack logs <stack> <service>
--tail N (200)
log gần đây của container
Sites
Lệnh
Flag
Tác dụng
park <dir>
serve mọi thư mục Laravel (có artisan) bên trong dir
link <dir>
--name n (mặc định: tên thư mục)
thêm một thư mục Laravel thành site
site list
--all (gồm cả site đã ẩn)
các site đã park và link, lane của chúng, git branch và trạng thái hiện tại
site up <site>
chạy các service của stack mà site cần, tạo database, render .env, serve site, chạy các process autostart
chạy (lại) các bước thiết lập của site clone trên một site có sẵn
site hide <site>
dừng site và các lane của nó, bỏ khỏi danh sách; file, database và template vẫn giữ
site unhide <site>
đưa một site đã ẩn trở lại danh sách
site delete <site> --yes
--trash, --drop-db, --force, --yes
xoá các lane, dừng site, xoá thư mục của nó (hoặc chuyển vào Thùng rác), với --drop-db thì xoá cả database và snapshot. Từ chối với DIRTY_WORKTREE trừ khi có --force
site actions <site>
các thao tác nhanh của site
site action <site> <action>
chạy một thao tác: clear-log, clear-cache, publish-core hoặc thao tác riêng của site
site action-set <site> <name>
--command c (php là PHP của site), --label l
thêm một thao tác hoặc ghi đè thao tác mặc định
site action-rm <site> <name>
xoá một thao tác (xoá bản ghi đè thì thao tác mặc định trở lại)
Templates
Lệnh
Flag
Tác dụng
template get <site>
in template (tạo từ .env khi chưa lưu template nào)
template set <site> --file <path>
--file
lưu một template
template render <site|lane>
--file path
in .env mà site up sẽ ghi vào lúc này, từ template đã lưu hoặc từ file; không ghi gì
Processes, exec và log
Lệnh
Flag
Tác dụng
proc list <site>
các process với trạng thái hiện tại, port và autostart
proc start <site> [proc…]
chạy process (mặc định: các process autostart)
proc stop <site> [proc…]
dừng process (mặc định: mọi process đang chạy)
proc restart <site> [proc…]
khởi động lại process (mặc định: mọi process đang chạy)
proc logs <site> <proc>
--lines N (200)
các dòng cuối trong log của một process
proc add <site> <name> --command <cmd>
--command ({port} được thay thế), --port, --autostart
thêm một process tuỳ chỉnh
proc set <site> <proc>
--command, --port=bool, --autostart=bool
sửa một process
proc rm <site> <proc>
xoá một process đã dừng
proc reset <site>
bỏ các tuỳ chỉnh và dò lại các process mặc định
exec <site> -- <command…>
--timeout d (10m), --xdebug
chạy một lệnh trong thư mục site, với PHP của site đứng đầu PATH (caddy: php chạy trong container PHP)
logs <site>
--source laravel|serve|proc:<name>|container:<service> (laravel), --lines N (200)
các dòng cuối trong log của site
Lanes
Lệnh
Flag
Tác dụng
lane new <site> <name>
--branch b (feat/<name>), --base ref (HEAD của site), --schema-only, --no-fork-db, --start
tạo một lane: worktree, submodule trên branch của chúng, vendor và node_modules dạng copy-on-write, database fork từ site
lane list [site]
các lane với branch, database, URL và trạng thái hiện tại
lane up <lane>
render .env của lane và serve nó (như site up)
lane down <lane>
dừng lane (như site down)
lane rm <lane>
--dry-run, --force, --keep-db, --delete-branch
dừng lane, xoá database và snapshot của nó, xoá worktree; từ chối với DIRTY_WORKTREE trừ khi có --force
Database
Lệnh
Flag
Tác dụng
db snapshot <site|lane> [name]
sao chép database sang <db>__snap_<name> (tên mặc định: thời điểm hiện tại)
db snapshots <site|lane>
liệt kê snapshot, mới nhất trước
db snapshot rm <site|lane> <name> --yes
--yes
xoá một snapshot
db restore <site|lane> <name> --yes
--safety (mặc định true), --yes
thay database bằng một snapshot; PHP của site được dừng rồi chạy lại
db reset <lane> --yes
--schema-only, --safety, --yes
fork lại database của lane từ database hiện tại của site
db query <site|lane> <sql>
một câu SELECT/SHOW/DESCRIBE/EXPLAIN chỉ đọc, tối đa 500 dòng
Git và module
Lệnh
Flag
Tác dụng
git status <site|lane>
branch, ahead/behind so với upstream, thay đổi chưa commit, tóm tắt submodule
git checkout <site|lane> <branch>
--create, --with-submodules (mặc định true)
checkout một branch local, một branch từ origin, hoặc một branch mới; từ chối với DIRTY_WORKTREE; khởi động lại site đang chạy
git fetch <site|lane>
--with-submodules (mặc định true)
git fetch --prune trong site (và các submodule)
git pull <site|lane>
--with-submodules (mặc định true)
git pull --ff-only trong site và trong mỗi submodule sạch đang ở trên một branch
git push <site|lane>
--with-submodules (mặc định true)
push các submodule đang ahead, rồi push site; đặt upstream ở lần push đầu
modules <site|lane>
--fetch, --group g, --only a,b
từng submodule: branch, branch được theo dõi, HEAD so với commit đã ghi nhận, ahead/behind, có thay đổi chưa commit không
modules checkout <site|lane> <branch>
--create, --group, --only
checkout một branch trong mọi submodule (hoặc các submodule được chọn); submodule có thay đổi chưa commit bị bỏ qua (MODULE_DIRTY)
modules pull <site|lane>
--group, --only
git pull --ff-only trong mỗi submodule sạch đang ở trên một branch
modules push <site|lane>
--group, --only
push mỗi submodule đang ahead, đặt upstream khi chưa có
modules add <site|lane> <git-url>
--group (extensions), --name n, --path p, --branch b
git submodule add vào thư mục của một nhóm; đã stage, chưa commit
PHP và Xdebug
Lệnh
Flag
Tác dụng
php list
các binary PHP tìm thấy trên đường dẫn quét
php info <version>
một binary: php.ini, extension, Xdebug và các site đang dùng nó
php check <version> <site|lane>
composer check-platform-reqs cho site với PHP đó; không thay đổi gì
php containers
các service PHP của stack (caddy) cùng chế độ Xdebug và các site của chúng
php scan-paths
nơi devkit tìm PHP (đường dẫn hoặc glob với * và ~) và mỗi nơi tìm được gì
php scan-paths add|rm|enable|disable <path>
thêm (quét ngay), xoá, quét lại, giữ lại nhưng không quét
php scan-paths reset
trả về các đường dẫn quét mặc định của hệ thống này
xdebug status <site|lane>
chế độ hiện tại và Xdebug đã được cài chưa
xdebug on <site|lane>
--mode debug|coverage|profile (debug)
bật Xdebug; khởi động lại server và các process PHP (caddy: container PHP, ảnh hưởng mọi site trên đó)
đặt chế độ cho một container PHP (tạo lại container; mọi site trên đó bị ảnh hưởng)
Cài đặt, chứng chỉ, hosts
Lệnh
Flag
Tác dụng
settings
hiện các thiết lập
settings set
--default-engine artisan|caddy, --default-php X.Y ("": php trên PATH), --domain-suffix s (localhost), --port-min N (8100), --port-max N (8999), --dry-run
đổi các giá trị mặc định; --dry-run cho biết điều gì sẽ thay đổi và site đang chạy nào sẽ bị dừng
trust
mkcert -install, trừ khi CA của mkcert đã được tin cậy (có thể hỏi mật khẩu của bạn)
certs
CA của mkcert và các chứng chỉ devkit đã cấp; không thay đổi gì
hosts
khối của devkit trong /etc/hosts so với nội dung đúng (chỉ khi dùng suffix khác localhost)
hosts sync
ghi lại khối của devkit bằng sudo (hỏi mật khẩu một lần)
Status, doctor, watch, MCP
Lệnh
Flag
Tác dụng
status
stack, site và lane (kể cả những mục đã ẩn) cùng process, agent đang kết nối và các vấn đề như PORT_IN_USE, kiểm tra trực tiếp, không bao giờ ghi gì
doctor [site]
kiểm tra Docker, stack, PHP và site; mỗi mục kiểm tra một dòng kèm gợi ý
watch
--interval d (2s)
in những gì thay đổi cho tới khi bấm Ctrl-C hoặc khi process đã khởi động nó thoát; --json: mỗi dòng một event
mcp
MCP server trên stdio, do agent của bạn khởi động
mcp config [agent]
--write, --dir project
cách thêm devkit vào claude-code, codex, gemini, cursor, vscode, claude-desktop hoặc other
mcp tools
các tool cùng nhóm và mô tả (--json: input schema)
mcp audit
--limit N (100)
các lần gọi gần nhất của agent, mới nhất trước
doctor kiểm tra những gì
Máy: docker, từng stack, php.binaries. Từng site: site.php, site.composer (kiểm tra platform), site.ports, site.template, site.db (bảng và dung lượng), site.submodules. Khi có site dùng caddy: mkcert, caddy (admin API), hosts (chỉ khi domain suffix không phải localhost), và với từng site caddy là site.web (service và mount) và site.cert. site.xdebug cho site caddy và site đang bật Xdebug. Site đã ẩn được bỏ qua trừ khi bạn chỉ định tên. Mỗi dòng là ok, warn hoặc fail; dòng cuối đếm số lượng từng loại.
Output JSON
Với --json, stdout chứa đúng một object. Thông báo cho người đọc đi ra stderr.
{"ok":true,"data":{"site":"shop","url":"http://localhost:8100","port":8100,"php":"8.4.19"}}
{"ok":false,"error":{"code":"PHP_VERSION_MISSING","message":"PHP 8.1 not found on this machine","hint":"brew install php@8.1"}}
Các lệnh git và module chạy hàng loạt báo kết quả theo từng repository: {"site", "results": [{"path", "status", "detail", "error"}], "done", "unchanged", "skipped", "failed"}, trong đó status là done, unchanged, skipped hoặc failed, và path . là chính site.
devkit watch --json in mỗi dòng một event, {"v":1,"seq":N,"time":"…","type":T,"change":C,"subject":S,"data":…}: đầu tiên là snapshot (giống kết quả của status --json), sau đó là các event stack, service, site, process, mcp và issue với change là added, changed hoặc removed, và error khi một lần poll thất bại.
Exit code
Mã
Khi nào
0
thành công
1
mọi lỗi; doctor khi có mục kiểm tra fail; git fetch|pull|push và modules checkout|pull|push khi có repository bị bỏ qua hoặc thất bại (ở chế độ cho người đọc)
mã của chính lệnh
exec ở chế độ cho người đọc thoát với exit code của lệnh
124
exec bị dừng do --timeout (như timeout(1))
Với --json, exit code theo envelope: các lệnh hàng loạt và doctor thoát với 0 và báo các mục bị bỏ qua, thất bại hoặc kiểm tra fail trong data, còn exec thoát với 0 và đặt mã của lệnh vào data.exitCode (cùng timedOut khi bị --timeout dừng).
Mã lỗi
Mã
Ý nghĩa
NOT_FOUND
không có site, lane, stack, branch, file đó
INVALID_ARGUMENT
tên, giá trị flag hoặc tổ hợp flag không hợp lệ
CONFIRM_REQUIRED
lệnh phá huỷ chạy mà không có --yes (MCP: không có confirm); thông báo cho biết lệnh sẽ làm gì
DIRTY_WORKTREE
thay đổi chưa commit, commit chưa push hoặc stash sẽ bị mất; thông báo liệt kê chúng
MODULE_DIRTY
một submodule có thay đổi chưa commit đã bị bỏ qua
GIT_FAILED
bản thân git bị lỗi (thông báo kèm output của git)
PORT_IN_USE
một chương trình khác đang giữ port của site
DOCKER_UNAVAILABLE
docker chưa được cài hoặc daemon chưa chạy
STACK_SERVICE_DOWN
một service site cần không có hoặc không chạy
DB_UNREACHABLE
database server không phản hồi
SNAPSHOT_NOT_FOUND
không có snapshot nào tên đó
PHP_VERSION_MISSING
phiên bản PHP chưa được cài (gợi ý kèm lệnh cài)
XDEBUG_MISSING
Xdebug chưa được cài cho PHP đó (gợi ý kèm lệnh cài)
TEMPLATE_VAR_UNRESOLVED
một biến template không xác định hoặc service của nó không có
ENGINE_FAILED
web server không khởi động được
PROC_FAILED
một process thoát ngay sau khi chạy
ACTION_FAILED
một thao tác nhanh thoát với mã khác 0 (thông báo kèm các dòng cuối của nó)
SITE_NOT_MOUNTED
container caddy hoặc PHP không thấy site ở cùng đường dẫn
CADDY_UNREACHABLE
admin API của Caddy không phản hồi
INTERNAL
mọi lỗi khác
Biến môi trường
Biến
Dùng bởi
Ý nghĩa
XDG_CONFIG_HOME
CLI
devkit lưu trạng thái trong $XDG_CONFIG_HOME/devkit (mặc định ~/.config/devkit). Trỏ nó tới một thư mục trống để thử nghiệm mà không đụng vào thiết lập thật của bạn
XDG_DATA_HOME
CLI (Linux)
Thùng rác cho site delete --trash: $XDG_DATA_HOME/Trash (mặc định ~/.local/share/Trash)
CODEX_HOME
mcp config codex
nơi chứa config.toml của Codex (mặc định ~/.codex)
CAROOT
CLI, qua mkcert
thư mục CA của mkcert
PATH
CLI
nơi tìm docker, git, composer, pnpm, mkcert và php mặc định
DEVKIT_BIN
app
binary devkit mà app chạy (như --devkit)
DEVKIT_CONFIG_HOME
app
chạy devkit với XDG_CONFIG_HOME đặt bằng giá trị này (như --config-home)
DEVKIT_APP_LOG
app
file log của app
DEVKIT_EDITOR
app Linux
lệnh mở editor cho Mở trong editor; được ưu tiên hơn Cài đặt
TERMINAL
app Linux
terminal cho Mở terminal tại đây, Tin cậy và đồng bộ hosts
DEVKIT_APP_THEME
app Linux
light hoặc dark
DEVKIT_APP_CONFIG
app Linux
file thiết lập riêng của app (mặc định ~/.config/devkit-app/settings.json)
LANGUAGE, LC_ALL, LC_MESSAGES, LANG
app Linux
ngôn ngữ khi app đặt ngôn ngữ là Theo hệ thống
Bên trong một site, exec, các process và thao tác nhanh nhận môi trường của bạn, cộng thêm PHP của site đứng đầu PATH; process có port còn nhận thêm PORT. Biến template có thể đọc môi trường của devkit bằng {{env.NAME}}.