Skip to content

Glossary

Definitions of hooks, steps, groups, profiles, file locks, stashing, and workspaces in hk.

Builtin

A reusable Pkl step definition supplied by hk. It describes how to invoke a linter or utility; external linter executables must be installed separately. Browse builtins.

Check

A command that reports problems without modifying files. hk relies on this convention to run checks concurrently with shared read locks. hk check runs the configured check hook.

Dependency

The depends property names steps that must finish before another step runs. Use it to establish order, such as depends = "eslint" on a formatter. Dependencies.

File lock

Coordination for a file selected by a step within a hook run. Multiple checks can hold read locks; a writer needs exclusive access. Locks only cover the files hk knows the step uses. Execution model.

Fix

A command that may modify files to resolve problems. A fix can still fail if some findings need manual changes. hk fix runs the configured fix hook.

Glob

A pattern that selects file paths, such as *.py or src/**/*.ts. A step’s patterns filter the files selected for the run; they do not force a changed-file run to scan the whole repository.

Group

A collection of steps with a scheduling boundary: its children can run concurrently, while later groups wait. Groups can provide defaults such as dir and prefix for children. Group defaults.

Hook

A named collection of steps. Git hooks include pre-commit and pre-push; custom hooks such as check can be invoked manually. Git hooks.

Job

A unit of step execution. A step may create multiple jobs through batching or workspace selection. --jobs and HK_JOBS limit concurrency; tools may also start their own workers.

Profile

A label used to enable or disable steps, such as slow or types. Activate one with --profile types or HK_PROFILE=types. A step requires all of its positive profile names. Profiles.

Stage

To add file content to Git’s index for the next commit. A hook can stage fixes automatically, or leave them for review with stage = false. This differs from a step’s stage property, which specifies file patterns to stage.

Stash

Temporarily saved unstaged work. A hook with stash = "git" isolates staged content before running its steps and restores saved changes afterward. "patch-file" currently uses the same implementation. Stashing and partial commits.

Step

An individual check, formatter, or task within a hook. A step defines commands and can select files, declare dependencies, and require profiles. Define a step.

Workspace

A project directory located through a marker such as package.json or Cargo.toml. workspace_indicator partitions selected files so a step can run once per matching workspace. Workspaces.

MIT LicenseCopyright © 2026jdx.dev