@wiziscool/nevo-cli
v0.3.5
Published
Unofficial TypeScript CLI for Changan Qiyuan (NEVO) vehicle — condition, parking photos, remote control via pure HTTP
Maintainers
Readme
Nevo-CLI
Unofficial TypeScript CLI for Changan Qiyuan (NEVO) vehicles. It reads vehicle condition and location, downloads parking photos, and sends explicitly confirmed remote-control commands over HTTP.
Remote control operates a physical vehicle. Nevo-CLI validates controls offline first, requires
--yesfor execution, and never treats command acceptance as proof of physical state.
Quick start
Requires Node.js 20.19 or newer.
Install from the public npm registry:
npm install --global @wiziscool/nevo-cli
nevo --versionOr build and install from a source checkout:
npm ci
npm run build
cp .env.example .env
# Set NEVO_PHONE and NEVO_PASSWORD in .env.
node dist/index.js auth login --phone <phone> --password-stdin
node dist/index.js --json vehicle condition
node dist/index.js --json vehicle location
npm install --global .Agent-friendly interface
Use global --json for one stable result object on stdout. Failures produce one error object on stderr and a nonzero exit status.
nevo --json auth status
nevo --json vehicle condition --refresh
nevo --json vehicle parking --no-download
# Real controls: validate without side effects, then execute once confirmed.
nevo --json vehicle control lock --dry-run
nevo --json vehicle control lock --yes
nevo --json vehicle condition --refreshSensitive defaults are deliberately redacted: token is a hidden compatibility alias for auth status; vehicle list omits plate/VIN/carId, and vehicle condition --json returns the mapped summary. Raw condition data and vehicle identifiers require explicit --raw or --show-identifiers.
Install the bundled skill without GitHub credentials or network access:
nevo --json skill install --agent codex
# Also supported: claude, copilot, hermes, genericMain commands
auth login [--phone <phone>] [--password-stdin|--password-env <name>|--password-file <path>],auth status,auth logout— local authentication lifecyclevehicle status,vehicle condition,vehicle location,vehicle list— safe vehicle readsvehicle parking— parking duration and four-direction photosvehicle control unlock|lock|ac|window|seekcar— confirmed real-vehicle controlsupdate check,update install --yes— self-update from public GitHub Releases (no token required)skill install(skill syncalias) — offline Agent Skill installation
Run nevo <command> --help for exact options and validation ranges.
Shell completion
Enable tab completion for bash, zsh, or fish (scripts call the CLI at runtime, so they never go stale):
# bash
eval "$(nevo completion bash)"
# zsh
eval "$(nevo completion zsh)"
# fish
nevo completion fish | sourceOne command installs it permanently into your shell config (idempotent):
nevo completion --install # auto-detects bash/zsh/fish from $SHELL
# or explicitly: nevo completion --install zshOr generate and eval manually:
# bash
eval "$(nevo completion bash)"
# zsh
eval "$(nevo completion zsh)"
# fish
nevo completion fish | source
``` `nevo help <command...>` resolves nested paths (for example `nevo help vehicle list`), including aliases.
## Self-update
The CLI updates itself from public GitHub Releases, so no GitHub or npm token
is needed:
```bash
nevo update check # compare versions (read-only)
nevo update install --yes # download, verify digest, replace the global packageReleases are published to the public npm registry (@wiziscool/nevo-cli) by
GitHub Actions using npm Trusted Publishing (OIDC) with build provenance.
Quality and documentation
npm run check # lint + strict typecheck + coverage gates + build
npm audit- Repository agent guidance (also referenced by CLAUDE.md)
- Human usage guide
- Maintainer and Agent context
- Code quality audit and remediation report
- Reverse-engineering summary
- Agent Skill
Credentials and local sessions are never committed. Public/static application protocol constants are documented separately from user secrets.
