Skip to main content

wican-cli

Command-line tool for managing WiCAN Pro OBD-II WiFi devices.

View and save device configuration, toggle sleep mode, switch protocol modes, query SD card logs, check AutoPID values, manage vehicle profiles, and reboot — all from your terminal.

Screenshot 2026-05-19 at 21 36 38 Screenshot 2026-05-19 at 21 30 26

Installation

pip install wican-cli

Or with uv:

uv tool install wican-cli

Quick start

# Connect to WiCAN on its default AP address (192.168.80.1)
wican status

# Or specify a device address
wican --use 192.168.1.100 status

# Set up a config file to avoid typing the address every time
mkdir -p ~/.config/wican-cli
cat > ~/.config/wican-cli/config.yaml << 'EOF'
wican_addresses:
  home: "192.168.1.100"
  vpn: "10.8.0.50"
default_wican: home
EOF

# Now just use the named alias (or omit --use to auto-discover)
wican status
wican --use vpn status

Commands

Command Description
wican config View device configuration (optionally save to file)
wican sleep View or modify sleep/power settings
wican status Device status summary
wican protocol View or switch CAN protocol mode
wican logs List, download, or query SD card OBD log databases
wican autopid Show latest AutoPID cached values
wican profile View or upload vehicle profile (AutoPID configuration)
wican reboot Reboot the device

Examples

# Save a config snapshot with credentials stripped
wican config --save --redact

# Enable sleep mode with 12.5V threshold
wican sleep --enable --voltage 12.5

# Switch to ELM327 mode for use with Torque/Car Scanner
wican protocol --set elm327

# Download all log databases from the SD card
wican logs --download

# Query a specific parameter from the latest log
wican logs --query SOC_BMS --limit 20

# Show AutoPID values filtered by name
wican autopid -f tyre

# View current vehicle profile
wican profile

# Upload a new vehicle profile and reboot to apply
wican profile --upload ioniq-2017.json --reboot

Configuration

wican-cli looks for configuration in this order:

  1. WICAN_URL environment variable (overrides everything)
  2. ./config.yaml (project-local)
  3. ~/.config/wican-cli/config.yaml (user-global)

If none is found, it defaults to 192.168.80.1 (WiCAN's built-in AP).

Config file format

wican_addresses:
  home: "192.168.1.100"    # Device on local LAN
  vpn: "10.8.0.50"         # Device via VPN tunnel
  ap: "192.168.80.1"       # Direct AP connection (WiCAN default)
default_wican: home         # Which address to use by default

Use --use <name> to select a different address, or pass an IP/URL directly: --use 192.168.1.100.

When --use is omitted, the CLI probes the default address first, then falls back to other configured addresses automatically.

Global flags

Flag Description
--use ADDR Device address: named alias or IP/URL (auto-discovers if omitted)
--timeout SEC Request timeout in seconds (default: 10)
--json JSON output (available on most commands)
--version Show version and exit

Shell completions

wican-cli uses argcomplete for tab completions in bash, zsh, and fish.

Global activation (all argcomplete-enabled tools)

# bash (add to ~/.bashrc)
activate-global-python-argcomplete

# zsh (add to ~/.zshrc)
autoload -U bashcompinit && bashcompinit
activate-global-python-argcomplete

# fish
register-python-argcomplete --shell fish wican | source

Per-command activation

# bash (add to ~/.bashrc)
eval "$(register-python-argcomplete wican)"

# zsh (add to ~/.zshrc)
autoload -U bashcompinit && bashcompinit
eval "$(register-python-argcomplete wican)"

# fish (add to ~/.config/fish/completions/wican.fish)
register-python-argcomplete --shell fish wican | source

Local development

Prerequisites: Python 3.10+ and uv.

# Clone the repository
git clone https://github.com/philipkocanda/wican-cli.git
cd wican-cli

# Install dependencies (including dev extras)
uv sync --extra dev

# Run the CLI locally
uv run wican --help

# Run tests
uv run pytest

# Run tests with coverage
uv run pytest --cov

# Lint and format
uv run ruff check .
uv run ruff format .

What is WiCAN?

WiCAN Pro is an ESP32-based WiFi/BLE OBD-II adapter that supports multiple protocols (AutoPID, SLCAN, ELM327, SavvyCAN, RealDash). It can publish vehicle data via MQTT to Home Assistant, log to SD card, and provide a WebSocket terminal interface.

This CLI tool manages the device itself — it does not send CAN/OBD requests to the vehicle. For that, use tools like python-can, SavvyCAN, or Torque.

License

Public domain — see LICENSE (Unlicense).

Metadata

Release files for wican-cli 0.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for wican-cli 0.4.0
File Size Uploaded
wican_cli-0.4.0.tar.gz 32.2 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for wican-cli 0.4.0
File Interpreter ABI Platform
wican_cli-0.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 59.7 kB

Release files / wican_cli-0.4.0.tar.gz

Download URL wican_cli-0.4.0.tar.gz
Size 32.2 kB
Tags Source
SHA-256 checksum
How to use checksums
553be3d9b797f3d9b3e35d971c5ed52e6be38f72860ff346b971720d60ec0cbd
BLAKE2b-256 checksum
How to use checksums
72a5814635891d2d8b553c36be4b59e631be41adfe2d3cfbd8b1d9d3500ab574
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / wican_cli-0.4.0-py3-none-any.whl

Download URL wican_cli-0.4.0-py3-none-any.whl
Size 27.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2b5a6510cc560be521af791f7a247abc40d8bbbaaba848f398d4bd9e298180ab
BLAKE2b-256 checksum
How to use checksums
303c0bda735498eb0b6b0ab40d2c073b3876c9b6a121e8d43d69c1174df49e6c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.4.0 This release

2 release files

0.3.0

2 release files

0.2.0

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page