- A value tagged
!jsindekit.yamlor a fragment is a JavaScript
expression, computed when the config loads, as in
FIXTURES: !js std.path.join(ctx.dir, "fixtures");ctxhas the
file'sdir, therunner, and thevars vars:indekit.yamlnames values that!jsreads asctx.vars, in
orderdekit wait <target>waits until tasks are ready, or with--for exit
until they have exited, and exits 0, 1 for a failure, or 124 when
--timeoutruns out;--timeout 0checks once--waitonup,start, andrestartreturns once what they started
is ready, and onstop,kill, andvetoonce it is down;
--wait-timeoutbounds it. A failure names the task at the root and
shows the end of its screenstd.dekit.wait(target, {for, timeoutMs})waits from a scriptdekit run x --dep dbwaits fordbwhen it is not ready yet, instead
of exiting 1 at once- A running job shows as
running, notready;ls --jsonandwhy
carrykind - A stop dekit gave up on, because the process outlived a kill, shows as
idle (stop timed out), withreason: "kill_timeout" - RPC: the
waitmethod and feature,kindin task-info, and the
kill_timeoutreason - A
tasks:key that ends in/is a folder:apps/: {collapsed: true}
lists theappsfolder collapsed at first, and a folder stays while it
is empty dekit rm appsremoves a folder or a group with everything in it- The console keeps which groups are collapsed across restarts;
Hand
Lcollapse and expand every group, and thefoldaction opens,
closes, or toggles the groups a path or glob names ready: {sd_notify: true}counts a task ready when it sendsREADY=1
to the socketNOTIFY_SOCKETnames, as it would to systemddekit reloadbrings what changed indekit.yamlinto a running
project; the console's header says when the file changed and opens the
reload dialog- A runner restart,
downandup, and a live upgrade bring every task
back as it was;dekit.yamlis read at a fresh start and byreload - The console adds, edits, duplicates, moves, and removes tasks:
a,
e,C,J/Kor dragging a row, andd;Spaceor a right click
opens a task's menu,ycopies its command - Changes made in the console are written back to
dekit.yamlin place,
keeping its comments; what can't be edited safely goes to a coding
agent (agent: {cmd: [...]}in the user config) or is copied as a
prompt - Tasks are listed in the runner's order: a task moved in the console
stays where it was put, across restarts too dekit rm +dynamicremoves every task not fromdekit.yaml; a
dynamictag written in the config is refuseddekit spawn --cwdis relative to where the command is typed- The terminal emulator and renderer were rewritten: true color,
underline styles and colors, hyperlinks, the kitty keyboard and
graphics protocols, sixel, and output shaped to what the attached
terminal can show - Keymap:
eopens the edit dialog (show-rename-taskstill works) and
Cthe duplicate dialog;duplicate-taskcopies without a dialog - RPC:
reload; theupdate,move, andset-origincommands;add
takes the task entry underspec;duplicatetakespathand
start; thechangedandbad_configerror codes; terminal
capabilities and the cell size onattach, and input askey,
mouse,paste,focus, andresizeevents - The console follows the terminal's light or dark background;
tui.theme: dark | lightin the user config pins it