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.
pip install wican-cliOr with uv:
uv tool install wican-cli# 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| 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 |
# 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 --rebootwican-cli looks for configuration in this order:
WICAN_URLenvironment variable (overrides everything)./config.yaml(project-local)~/.config/wican-cli/config.yaml(user-global)
If none is found, it defaults to 192.168.80.1 (WiCAN's built-in AP).
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 defaultUse --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.
| 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 |
wican-cli uses argcomplete for tab completions in bash, zsh, and fish.
# 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# 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 | sourcePrerequisites: 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 .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.
Public domain — see LICENSE (Unlicense).