Skip to main content

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

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

ninecli-0.1.0-py3-none-manylinux_2_17_x86_64.whl (2.7 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

ninecli-0.1.0-py3-none-manylinux_2_17_aarch64.whl (2.5 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

ninecli-0.1.0-py3-none-macosx_11_0_arm64.whl (2.6 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

ninecli-0.1.0-py3-none-macosx_10_9_x86_64.whl (2.8 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file ninecli-0.1.0-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for ninecli-0.1.0-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 78d3c82b93f393dc749e90db313c2e7dd81619d4a11e7683fdb8981609f5c529
MD5 c32402164d339b1c1a6470187f1491b0
BLAKE2b-256 47bb4de8ac66c10d576bb4b1e4b2027ded78d9531612cfc91a62a98b45047df6

See more details on using hashes here.

File details

Details for the file ninecli-0.1.0-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for ninecli-0.1.0-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 adf60eb9417abdc7ceaad073f41cfc64e73acd4e7f80fd42fe56a8047fd1f2c9
MD5 472bb36835e6d9a7b0c4517432eba625
BLAKE2b-256 c523944e02197ad557d98f1b2ed8f30119939bd8b6d80edbd373e7322c4c5f57

See more details on using hashes here.

File details

Details for the file ninecli-0.1.0-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for ninecli-0.1.0-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6d1c0f583395675c3551d9b57ee6a0a3ae1baee118edb883216baffb0922e2b1
MD5 1c61658d3330482195e505cfd34fdfa2
BLAKE2b-256 4d16fa12eb7cb8bf7326232fc6b45fdbf7f2562d4894f4fa806abc146cfe3214

See more details on using hashes here.

File details

Details for the file ninecli-0.1.0-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for ninecli-0.1.0-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 3051f6a50aed1bf5240412fbcc1f482e8e610669895fb645492c58115831ca3c
MD5 a1043a18a21e75c9e4b79ff680235f15
BLAKE2b-256 8b1d30d6124d39e3b36a2ac02c470d0977b8e5c326a9a96cc95b637c4c5c3d99

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page