Metadata-Version: 2.4
Name: ventilatepro-cli
Version: 0.7.0
Summary: VentilatePro CLI
Project-URL: Homepage, https://ventilatepro.com/exam/cli/
Project-URL: Documentation, https://ventilatepro.com/exam/cli/
Project-URL: Support, https://ventilatepro.com/exam/support/
Requires-Python: >=3.10
Description-Content-Type: text/markdown
Requires-Dist: typer>=0.16.0
Requires-Dist: requests>=2.32.0
Requires-Dist: keyring>=25.6.0
Requires-Dist: platformdirs>=4.3.0
Requires-Dist: mcp<2.0.0,>=1.23.0
Requires-Dist: PsychroLib==2.5.0
Requires-Dist: CoolProp==8.0.0

# VentilatePro CLI

VentilatePro CLI is a local command-line client for authenticating to VentilatePro, recording project notes and meeting minutes, and running scoped engineering workflows.

It also includes offline HVAC calculations for PsychroLib-based psychrometrics,
sensible and total air loads, complete air-process balances, hydronics,
IAPWS-IF97 saturated steam through CoolProp 8.0.0, fan and pump power, duct sizing, and LMTD. Local
calculations require no login and are also available as typed MCP tools.

## Install

Published releases install from PyPI:

```bash
pipx install ventilatepro-cli
```

Upgrade an existing install:

```bash
pipx upgrade ventilatepro-cli
```

Local development install:

```bash
cd ventilatepro-cli
pip install -e .
```

## Commands

```bash
ventilatepro auth login
ventilatepro projects list
ventilatepro projects show 1
ventilatepro rooms list --project 1
ventilatepro room-equipment summary --project 1
ventilatepro room-equipment create --data '{"room": 501, "name": "Sterilizer", "heat_gain_value": 1.8, "heat_gain_unit": "KW"}'
ventilatepro revit-imports review --project 1 --json
ventilatepro revit-imports confirm 41 --project 1 --review-token <token-from-review> --yes
ventilatepro categorization review --project 1 --output room-categorization.json
ventilatepro categorization apply --project 1 --input room-categorization.json --yes
ventilatepro ahus list --project 1
ventilatepro systems hierarchy --project 1
ventilatepro calc status --project 1
ventilatepro calc ahu-properties --ahu 1
ventilatepro calc psychrometrics --dry-bulb 75 --relative-humidity 50 --json
ventilatepro calc air-process --cfm 5000 --entering-dry-bulb 80 --entering-rh 50 --leaving-dry-bulb 55 --leaving-rh 95 --json
ventilatepro calc steam --pressure 15 --pressure-units psig --load 1000000 --json
ventilatepro calc fan-power --cfm 20000 --static-pressure 4 --fan-efficiency 0.68 --motor-efficiency 0.92
ventilatepro design-day context --project 1
ventilatepro notes create --project 1 --body "Captured from terminal"
ventilatepro notes sync
ventilatepro meetings context --project 1 --json
ventilatepro meetings record --project 1 --input meeting.json --json
ventilatepro meetings list --project 1
ventilatepro decisions create --project 1 --text "Use heat recovery on AHU-2" --reason "Energy model payback" --tags ahu,energy
ventilatepro decisions list --project 1
ventilatepro decisions revise 51 --text "Use heat recovery with bypass control"
ventilatepro tasks context --project 1 --json
ventilatepro tasks create --project 1 --description "Issue updated duct plan" --assignee-id 12 --priority high
ventilatepro mcp doctor
ventilatepro-mcp
```

`ventilatepro-mcp` starts the local stdio MCP server for Codex, Claude Desktop,
and other MCP clients. It uses the same saved base URL and CLI token created by
`ventilatepro auth login`.

Local HVAC tools (`vp_calculate_psychrometrics`,
`vp_calculate_air_process`, `vp_calculate_steam`, and the rest of the catalog)
do not use that login or make network requests.

For meeting capture, Codex first reads `meetings context` to resolve names to
stable project-member IDs, interprets the PM's prose into a structured JSON
payload, and calls `meetings record`. The server atomically creates the meeting,
decisions, and assigned project tasks and returns a direct web-app link.

For standalone work, Codex reads `tasks context` to resolve an assignee to a
stable project-member user ID, then calls `tasks create`. The same workflow is
available through the typed `vp_get_task_context` and
`vp_create_project_task` MCP tools.

Design decisions do not require meeting minutes. Codex can call `decisions
create` or `vp_create_decision` as soon as a PM communicates a decision, with
an optional meeting ID only when the relationship is useful. Listing, showing,
and revising decisions are available through first-class CLI and MCP surfaces;
revisions preserve the prior version as immutable history.

For room classification, Codex can read the project-specific categorization
review resource or use the dedicated MCP tools. Review manifests default every
room to rejected so ambiguous spaces remain visible until a category is
explicitly accepted with a reason.

For staged Revit imports, agents use `revit-imports review` or
`vp_review_revit_import` first. The returned review token identifies the exact
payload and diff that was inspected. Confirmation requires that unchanged token
plus explicit `--yes` or MCP `confirm=true`; stale reviews are rejected.

## MCP setup

1. In the VentilatePro web app, open Account Settings and create a CLI token with
   the `Agent Editor` preset.
2. Log in locally:

```bash
ventilatepro auth login --token vpcli_...
```

The production URL defaults to `https://ventilatepro.com`. Use `--url` only for
local development, staging, or self-hosted VentilatePro servers.

3. Confirm the local setup:

```bash
ventilatepro mcp doctor
```

4. Add the stdio server to Codex:

```bash
codex mcp add ventilatepro -- ventilatepro-mcp
```

For JSON-based MCP clients, use:

```json
{
  "mcpServers": {
    "ventilatepro": {
      "command": "ventilatepro-mcp",
      "args": []
    }
  }
}
```

If the client cannot find `ventilatepro-mcp`, run `where ventilatepro-mcp` on
Windows or `which ventilatepro-mcp` on macOS/Linux and use the full path as the
command.

If the hidden token prompt is awkward in your terminal, use either:

```bash
ventilatepro auth login --token-prompt-visible
```

or pipe the token through stdin:

```bash
printf '%s' "$VPCLI_TOKEN" | ventilatepro auth login --token-stdin
```

See the hosted install guide at `https://ventilatepro.com/exam/cli/`, the HVAC
calculation reference at `https://ventilatepro.com/exam/cli/calculations/`, the
machine-readable index at `https://ventilatepro.com/llms.txt`, plus
[docs/commands.md](./docs/commands.md), [docs/auth.md](./docs/auth.md),
[docs/api.md](./docs/api.md), and [docs/releasing.md](./docs/releasing.md) in this repo.
