Command-line tool for managing WiCAN Pro OBD-II devices
Project description
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.
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:
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).
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).
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wican_cli-0.4.0.tar.gz.
File metadata
- Download URL: wican_cli-0.4.0.tar.gz
- Upload date:
- Size: 32.2 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
553be3d9b797f3d9b3e35d971c5ed52e6be38f72860ff346b971720d60ec0cbd
|
|
| MD5 |
6d8757b91e65da9fbda77bfebf4965f2
|
|
| BLAKE2b-256 |
72a5814635891d2d8b553c36be4b59e631be41adfe2d3cfbd8b1d9d3500ab574
|
File details
Details for the file wican_cli-0.4.0-py3-none-any.whl.
File metadata
- Download URL: wican_cli-0.4.0-py3-none-any.whl
- Upload date:
- Size: 27.5 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2b5a6510cc560be521af791f7a247abc40d8bbbaaba848f398d4bd9e298180ab
|
|
| MD5 |
b0dedf5a231fb5a3eb31d3e707ece7f3
|
|
| BLAKE2b-256 |
303c0bda735498eb0b6b0ab40d2c073b3876c9b6a121e8d43d69c1174df49e6c
|