Project commands#

Use project layout to create or repair project files and project dependencies to check installed Python packages. These commands do not install the JITX runtime. Layout commands default to the current directory; except for init, create the target directory first. Dependency commands operate on the current project and the Python environment running the CLI.

jitx project#

Choose layout or dependencies; the group itself shows help.

jitx project layout#

Choose a file operation below; the group itself shows help.

jitx project layout init#

Create the target directory, pyproject.toml, .gitignore, .vscode settings, launch/tasks files, and a Python package with a sample design and local resistor. The default name is derived from the target directory. Existing ordinary files are preserved unless --force is set. .gitignore appends missing entries and VSCode launch/tasks files merge even without --force. A VSCode bootstrap pyproject.toml is replaced with the full project definition.

jitx project layout init myboard --name myboard

Argument / option

Default

Meaning

path

.

Target directory.

--name

unset

Project/package name; omitted: derive it from the target directory.

--force

false

Overwrite existing files where supported; see this command’s behavior above.

jitx project layout vscode#

Discover designs and regenerate .vscode/launch.json and tasks.json. JITX-owned entries are refreshed while non-JITX configurations are retained. --force is accepted but has no additional effect for this command in 4.4.0. The project must be importable for design discovery.

jitx project layout vscode .

Argument / option

Default

Meaning

path

.

Target directory.

--force

false

Overwrite existing files where supported; see this command’s behavior above.

jitx project layout gitignore#

Create .gitignore, or append missing JITX ignore entries to an existing file. --force replaces the entire file, including your custom entries.

jitx project layout gitignore .

Argument / option

Default

Meaning

path

.

Target directory.

--force

false

Overwrite existing files where supported; see this command’s behavior above.

jitx project layout settings#

Write .vscode/settings.json for Pylance. Existing settings are preserved unless --force replaces the file; this command does not merge custom settings.

jitx project layout settings .

Argument / option

Default

Meaning

path

.

Target directory.

--force

false

Overwrite existing files where supported; see this command’s behavior above.

jitx project layout pyproject#

Write project metadata with a name derived from the directory or supplied by --name. Preserve an existing file unless --force is set or it is the temporary VSCode bootstrap file. The 4.4.0 template declares jitx>=4.4.0,<5 and jitxlib-standard>=4.4.0,<5; this permits later minor versions. For reproducible 4.4.0 examples, pin both packages to ==4.4.0 before installing dependencies.

jitx project layout pyproject . --name myboard

Argument / option

Default

Meaning

path

.

Target directory.

--name

unset

Project/package name; omitted: derive it from the target directory.

--force

false

Overwrite existing files where supported; see this command’s behavior above.

jitx project dependencies#

With no subcommand, perform check. Options for the default action go after dependencies; options for an explicit subcommand go after check or upgrade.

jitx project dependencies
jitx project dependencies check --check-include-group test

Argument / option

Default

Meaning

--allow-prereleases, --pre

false

Allow prerelease package candidates; otherwise use stable candidates.

--check-include-group

unset

Include this optional dependency group; repeat for multiple groups. Repeatable.

jitx project dependencies check#

Report available updates within pyproject.toml constraints and versions beyond those constraints. This does not install packages, but writes a check timestamp and may write a dependency report. Recent checks can be skipped during the cooldown. The environment needs pip; with uv, install it using uv pip install pip. Without pip, a check reports that it was skipped. Selected groups are entries in [project.optional-dependencies].

jitx project dependencies check

Argument / option

Default

Meaning

--allow-prereleases, --pre

false

Allow prerelease package candidates; otherwise use stable candidates.

--check-include-group

unset

Include this optional dependency group; repeat for multiple groups. Repeatable.

jitx project dependencies upgrade#

Resolve and install updates within declared constraints, then editable-install the project. This modifies the active environment, does not rewrite dependency bounds, and does not update a uv lockfile. It bypasses the check cooldown and requires pip. Run from the project root so the editable install targets the project.

jitx project dependencies upgrade

Argument / option

Default

Meaning

--allow-prereleases, --pre

false

Allow prerelease package candidates; otherwise use stable candidates.

--check-include-group

unset

Include this optional dependency group; repeat for multiple groups. Repeatable.