JITX Setup — Reference Companion (JS0)#
Human-facing companion to the JITX Setup Runbook. Use it if you have no AI agent (follow the Manual CLI path), or you’re preparing a locked-down / enterprise machine (see Environment & IT readiness).
Same commands as the runbook, resequenced for working by hand — the JITX skills need an agent, so you enable them last.
Manual CLI path (no AI agent)#
Run these in a terminal — you’ll get a working, authenticated install, proven by a real build.
Check prerequisites.
python3 --version(need 3.12+) andgit --version;uv --versionis optional. If Python is older than 3.12, install 3.12+ first.Install the JITX CLI.
pip install jitx. If you hit the PEP 668 “externally-managed-environment” error — the Python packaging rule that stopspipwriting into a system-managed interpreter — installuv(https://astral.sh/uv) and runuv tool install jitxinstead. Verify:jitx --version(4.4.0 or newer).Install the runtime.
jitx runtime install— do this before signing in. On Windows, this launches an MSI installer in a separate popup window (possibly behind others) — complete it to finish. If it fails withnot tested on Linux distribution '<x>', retry asjitx runtime install --target ubuntu; the Ubuntu build runs on most glibc Linux. Check it withjitx runtime introspect, which works anywhere —jitx runtime statusis project-scoped and fails withNo pyproject.toml founduntil you create the project in step 5.Sign in.
jitx auth loginprints an activation link and a code; open it in any browser, approve, and the command completes on its own. It does not launch the browser for you, which matters on a headless or remote machine. The link expires in 10 minutes — re-run the command if it lapses. In the browser, Sign in with Google is simplest; if you’re not using a Google-enabled account, enter your registered email and JITX password. Confirm withjitx auth show.Validate with two builds. The global CLI (step 2) has no
pip, so run this inside each project once it exists. Create and activate a virtual environment —python3 -m venv .venv && source .venv/bin/activateon macOS or Linux, orpy -3.12 -m venv .venvthen.\.venv\Scripts\Activate.ps1in Windows PowerShell — thenpip install jitx,jitx project dependencies upgrade,jitx runtime start --background, andjitx find.Simplest. Create a new project with
jitx project layout init(this seeds a two-resistor sample design). Build the seeded non-test target fromjitx find— ignore any target whose module path comes fromtest,tests, or a test file. Take the target verbatim fromjitx find— the scaffold names the seeded design class after the project directory, lowercased with hyphens and spaces turned into underscores, so a directory calledmy-first-boardbuilds asjitx build my_first_board.main.my_first_board. Then open the views withjitx ui open --schematicandjitx ui open --board.Full. Clone
https://github.com/JITx-Inc/jitx-examplesand build thesi_bga_optimizationdesign, taking the target verbatim fromjitx findas above — expectjitxexamples.demos.si_bga_optimization.bga_escape.bga_optimization_design. Open the board view to confirm.The first view may be slow. The very first board or schematic window can take a few minutes to appear — more likely on macOS. If it doesn’t show up straight away, wait it out rather than re-running. If nothing shows after 5 minutes, something is wrong. Later views come up faster.
jitx ui openholds the terminal while its window is open — use a second terminal, or background it, for the next command. Later calls return straight away and add their windows to the JITX app already running; there’s no limit on how many views can be open at once, so leave the Simplest build’s windows up.
(Optional) Install the editor JITX extension. Search your editor’s (or VSCode’s) marketplace for the JITX extension and install it, then confirm you’re authenticated in its sidebar.
(Once you have an AI agent) Enable the JITX skills. Follow the per-runtime steps in the runbook to enable them for your agent (Claude Code, Codex / GPT, or Devin). In the Claude Code VSCode / Cursor extension the
/plugincommand isn’t available — use theclaude plugin marketplace add …/claude plugin install …CLI form the runbook gives.Close the loop — change a design parameter. With an agent, ask it to “change the differential-pair trace width to 0.0762 mm and the pair spacing to 0.1568 mm” on the
si_bga_optimizationdesign; it edits the diff-pair constants (DIFFPAIR_TRACE_WIDTH/DIFFPAIR_PAIR_SPACINGin the design’ssubstrate.py), rebuilds, and the board view redraws. Those constants are the 85 Ω stripline geometry, so the new values detune every 85 Ω signal layer: you’re changing them to watch a source edit reach the board, and in real work you’d re-solve the geometry for the impedance target. SelectL2-Signal1and zoom into the BGA escape region to see it — the change is subtle but visible there, and won’t show on the defaultL1-Ground1whole-board view. No agent? Edit the constants yourself and rebuild. Full build didn’t build? Do it on the template instead — change a resistor’sresistanceinmain.py(sayr2to10 * kohm), rebuild, and the schematic redraws with the new value. Either way you’ve seen the design-as-code loop (intent → code → build → view), and you’re ready for JS1.
Environment & IT readiness#
For machine sizing, network egress, deployment architecture, licensing models, and data handling — especially on managed or locked-down machines — see the JITX Architecture and Systems Requirements.
For what sits on top of that on a single engineer’s machine — package and extension trust, installing the AI skills per runtime, and a consolidated [IT/Admin] vs [Engineer] readiness checklist — see JS0 — Environment Setup.