Unofficial CLI for the Ninebot (九号) scooter Passport + business APIs
Project description
ninecli
Unofficial CLI for the Ninebot (九号) scooter app — read vehicle info, view ride history, and run vehicle controls (engine start/stop, seat trunk, find-me bell) from the terminal.
Reverse-engineered from the official Ninebot Android app's encrypted business APIs. Not affiliated with Ninebot / Segway.
Install
# one-off, no install
uvx ninecli
# or install into current env
pip install ninecli
Multi-platform wheels are published for Linux (amd64, arm64) and
macOS (amd64, arm64); pip / uv picks the right one automatically.
Quick start
ninecli login # password login, saves tokens.json
ninecli whoami # verify the saved token
ninecli vehicles # list owned + shared vehicles
ninecli status # show one vehicle's status (asks which one)
ninecli travel # ride history for the current month
Vehicle controls (bell, engine-start, engine-stop, buck) print
a y/N safety prompt — pass -y to skip.
--help
$ ninecli --help
ninecli — Ninebot scooter Passport + vehicle info + control
Usage:
ninecli [command]
Available Commands:
bell Ring the find-my-vehicle bell
buck ⚠️ Open the seat trunk
completion Generate the autocompletion script for the specified shell
engine-start ⚠️ Power on / unlock the vehicle
engine-stop ⚠️ Power off / lock the vehicle
help Help about any command
login Password login (Passport) — saves tokens.json
login-code SMS-code login (Passport) — sends code, then consumes it
status Show vehicle status (location, battery, lock, acc, perms)
travel Ride history (default: list current month); --detail <id> shows one ride
vehicles List owned + shared vehicles
whoami Verify the saved token (calls POST /v5/user)
Flags:
--config string config directory (default: $NINEBOT_CONFIG_DIR or ~/.config/ninebot)
-h, --help help for ninecli
--json emit raw decrypted JSON instead of human-readable output
-y, --yes bypass the y/N safety prompt on control commands (engine-start/engine-stop/buck)
Use "ninecli [command] --help" for more information about a command.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
Built Distributions
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 ninecli-0.1.0-py3-none-manylinux_2_17_x86_64.whl.
File metadata
- Download URL: ninecli-0.1.0-py3-none-manylinux_2_17_x86_64.whl
- Upload date:
- Size: 2.7 MB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
78d3c82b93f393dc749e90db313c2e7dd81619d4a11e7683fdb8981609f5c529
|
|
| MD5 |
c32402164d339b1c1a6470187f1491b0
|
|
| BLAKE2b-256 |
47bb4de8ac66c10d576bb4b1e4b2027ded78d9531612cfc91a62a98b45047df6
|
File details
Details for the file ninecli-0.1.0-py3-none-manylinux_2_17_aarch64.whl.
File metadata
- Download URL: ninecli-0.1.0-py3-none-manylinux_2_17_aarch64.whl
- Upload date:
- Size: 2.5 MB
- Tags: Python 3, manylinux: glibc 2.17+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
adf60eb9417abdc7ceaad073f41cfc64e73acd4e7f80fd42fe56a8047fd1f2c9
|
|
| MD5 |
472bb36835e6d9a7b0c4517432eba625
|
|
| BLAKE2b-256 |
c523944e02197ad557d98f1b2ed8f30119939bd8b6d80edbd373e7322c4c5f57
|
File details
Details for the file ninecli-0.1.0-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: ninecli-0.1.0-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 2.6 MB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6d1c0f583395675c3551d9b57ee6a0a3ae1baee118edb883216baffb0922e2b1
|
|
| MD5 |
1c61658d3330482195e505cfd34fdfa2
|
|
| BLAKE2b-256 |
4d16fa12eb7cb8bf7326232fc6b45fdbf7f2562d4894f4fa806abc146cfe3214
|
File details
Details for the file ninecli-0.1.0-py3-none-macosx_10_9_x86_64.whl.
File metadata
- Download URL: ninecli-0.1.0-py3-none-macosx_10_9_x86_64.whl
- Upload date:
- Size: 2.8 MB
- Tags: Python 3, macOS 10.9+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.13.5
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
3051f6a50aed1bf5240412fbcc1f482e8e610669895fb645492c58115831ca3c
|
|
| MD5 |
a1043a18a21e75c9e4b79ff680235f15
|
|
| BLAKE2b-256 |
8b1d30d6124d39e3b36a2ac02c470d0977b8e5c326a9a96cc95b637c4c5c3d99
|