Windows command line
The AirCode Zero Windows setup installs an aircode command for PowerShell and
Command Prompt. It uses the Node.js runtime and ConPTY support already embedded
in the desktop application; WSL and a system Node.js installation are not
required.
Open a new terminal after installing or updating AirCode so it receives the
updated user PATH, then verify the command:
aircode version
aircode serve --help
The installer resolves the command relative to its own installation directory, so choosing a custom directory in setup is supported.
Start a server
serve is the default command, so these forms are equivalent:
aircode serve --projects-root "D:\Projects"
aircode --projects-root "D:\Projects"
The server runs in the foreground and writes logs to that terminal. Press
Ctrl+C to stop it cleanly.
Serve options
| Option | Default | Purpose and equivalent setting |
|---|---|---|
--projects-root <dir> | current directory | Root whose subfolders AirCode presents as projects. The directory must already exist. Env: AIRCODE_PROJECTS_ROOT; JSON: projectsRoot |
--host <address> | Tailscale IP, otherwise 127.0.0.1 | Network interface on which the HTTP server listens. Env: AIRCODE_HOST; JSON: host |
--port <number> | 7860 | HTTP port from 1 to 65535. An explicit busy port fails instead of silently changing. Env: AIRCODE_PORT; JSON: port |
--public-url <url> | none | Public HTTP(S) base URL used in links and notifications. Env: AIRCODE_PUBLIC_URL; JSON: publicUrl |
--config <file> | user config file | Alternate JSON configuration file. Env: AIRCODE_CONFIG |
--state-dir <dir> | user state directory | Alternate runtime-state directory. Env: AIRCODE_STATE_DIR |
-h, --help | — | Show command help without starting the server |
The standard Windows config file is
%USERPROFILE%\.config\aircode\config.json; runtime state defaults to
%USERPROFILE%\.local\state\aircode.
Paths containing spaces must be quoted. Both --option value and
--option=value are accepted. Command-line options take precedence over
environment variables, which take precedence over config.json, then defaults.
There is deliberately no --password argument because command arguments can
be exposed through process inspection and shell history. On first run AirCode
generates a password, stores it in the selected configuration file, and prints
it once. For unattended provisioning, set AIRCODE_AUTH_PASSWORD securely in
the process environment or place authPassword in a protected configuration
file.
Examples
Local machine only
aircode serve `
--projects-root "D:\Projects" `
--host 127.0.0.1 `
--port 7860
Open http://127.0.0.1:7860.
Tailscale or a private VPN
Bind the exact VPN address assigned to the Windows machine:
aircode serve `
--projects-root "D:\Projects" `
--host 100.84.12.30 `
--port 7860
Other devices on the same private network can then open
http://100.84.12.30:7860. Prefer an exact VPN address over 0.0.0.0.
Local network
aircode serve `
--projects-root "D:\Projects" `
--host 192.168.1.25 `
--port 7860
Windows Firewall may ask whether to allow the connection. Only allow the network profiles you intend to use.
Reverse proxy or tunnel URL
aircode serve `
--projects-root "D:\Projects" `
--host 127.0.0.1 `
--port 7860 `
--public-url "https://aircode.example.com"
--public-url only tells AirCode which address to place in generated links. It
does not open a firewall port, start a reverse proxy, or create a tunnel.
Use Remote access for the built-in outbound tunnel,
Tailscale, or private-network guidance.
Separate configuration and state
aircode serve `
--projects-root "D:\Projects" `
--config "D:\AirCodeData\config.json" `
--state-dir "D:\AirCodeData\state"
If another terminal needs to run a lifecycle command against this instance, set the same state directory first:
$env:AIRCODE_STATE_DIR = "D:\AirCodeData\state"
aircode status
aircode stop
Desktop app coexistence
The foreground CLI server and the local server managed by the desktop window are separate processes. Before reusing the same host and port, quit AirCode Zero from its notification-area icon, not only by closing its window. Alternatively, give the CLI server another port.
Starting from a terminal exposes the AirCode web application and its
authenticated API. It does not turn the projects directory into a public file
share: file access remains scoped to projects beneath projectsRoot and is
enforced by the server.
Additional settings
Agent executable paths, session limits, browser controls, knowledge,
orchestration, notifications, and token optimization remain available through
environment variables and config.json. See Configuration
for the complete configuration precedence and common settings.