Get

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

OptionDefaultPurpose and equivalent setting
--projects-root <dir>current directoryRoot 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.1Network interface on which the HTTP server listens. Env: AIRCODE_HOST; JSON: host
--port <number>7860HTTP port from 1 to 65535. An explicit busy port fails instead of silently changing. Env: AIRCODE_PORT; JSON: port
--public-url <url>nonePublic HTTP(S) base URL used in links and notifications. Env: AIRCODE_PUBLIC_URL; JSON: publicUrl
--config <file>user config fileAlternate JSON configuration file. Env: AIRCODE_CONFIG
--state-dir <dir>user state directoryAlternate runtime-state directory. Env: AIRCODE_STATE_DIR
-h, --helpShow 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.