tescmd
Installation and setup guide for Tesla vehicle control and telemetry via the tescmd node.
Installation and setup guide for Tesla vehicle control and telemetry via the tescmd node.
Real data. Real impact.
Growing
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
This plugin connects Tesla vehicles to the OpenClaw Gateway via the tescmd node. Once installed and paired, the plugin automatically registers all tools, commands, slash commands, and telemetry event types.
This document covers installation and setup only. Runtime tool usage, workflows, and error handling are provided by the
tescmd skill (call tescmd_help for the full reference).
What you get:
Repositories:
Agent (you) ↓ tool calls OpenClaw Gateway ↓ node.invoke.request openclaw-tescmd Plugin ↓ WebSocket dispatch tescmd Node (Python) ├─ Tesla Fleet API (REST) ├─ Vehicle Command Protocol (VCSEC — signed commands) └─ Fleet Telemetry Stream (WebSocket) ↓ Tesla Vehicle
The plugin is the Gateway-side counterpart to the tescmd node. It defines tool schemas and routes invocations. The tescmd node handles all direct communication with Tesla.
Before starting, verify the required tools are installed and authenticated.
git --version
If missing, install it:
xcode-select --installsudo apt install git or sudo dnf install gitgh --version gh auth status
If
gh is not installed:
brew install ghIf not logged in:
gh auth login
Tell the user: "Please complete the GitHub CLI login in your terminal. Select your preferences when prompted and finish the browser-based auth flow."
Wait for the user to confirm they have completed the login before continuing.
python3 --version
Must be 3.11 or higher. If not:
brew install python@3.12sudo apt install python3.12 or use pyenvTailscale provides a public HTTPS endpoint for Tesla Fleet Telemetry streaming with zero infrastructure setup.
tailscale version tailscale status
If not installed:
brew install tailscale or download from https://tailscale.com/downloadcurl -fsSL https://tailscale.com/install.sh | shIf not logged in:
sudo tailscale up
Tell the user: "Please complete the Tailscale login in your browser if prompted."
Wait for the user to confirm before continuing.
openclaw plugins install @oceanswave/openclaw-tescmd
openclaw plugins list
You should see the plugin listed with version 0.9.0 (or later).
| Command | Purpose |
|---|---|
| List installed plugins |
| Plugin details |
| Check plugin health |
| Update to latest |
| Enable the plugin |
| Disable without uninstalling |
pip install tescmd
Verify:
tescmd --version
The tescmd setup wizard is interactive and requires the user to make choices and complete steps in their terminal and browser. You cannot complete this step autonomously.
tescmd setup
Tell the user: "I've started the tescmd setup wizard. This is an interactive process that will walk you through:"
"Please follow the prompts in your terminal and let me know when setup is complete."
Wait for the user to confirm setup is finished before proceeding.
After the user confirms, check auth status:
tescmd auth status
This should show a valid token. If it shows expired or missing, the user needs to re-run:
tescmd auth login
List vehicles on the account to get the VIN:
tescmd vehicle list
Note the VIN — it is needed for the serve command.
The tescmd node bridges the Tesla Fleet API to the OpenClaw Gateway. The first connection requires a one-time pairing approval.
Start the node with just the Gateway URL (no token needed):
tescmd serve <VIN> --openclaw <gateway_ws_url>
The node sends a
node.pair.request to the Gateway and waits for approval. The pending request expires after 5 minutes, so approve it promptly.
In a separate terminal, approve the pairing:
openclaw nodes pending # View waiting pair requests openclaw nodes approve <requestId> # Approve the node
On approval the Gateway issues an authentication token. The node receives it, saves it to
~/.config/tescmd/bridge.json, and establishes the authenticated connection. No manual token handling is needed.
Tell the user: "Start the tescmd node with
tescmd serve <VIN> --openclaw <gateway_url>, then in another terminal run openclaw nodes pending and openclaw nodes approve <requestId> to complete pairing."
Wait for the user to confirm pairing is complete before continuing.
Once paired, the node reconnects automatically using the stored token:
tescmd serve <VIN> --openclaw <gateway_ws_url>
You can also pass the token explicitly if needed:
tescmd serve <VIN> --openclaw <gateway_ws_url> --openclaw-token <gateway_token>
| Command | Purpose |
|---|---|
| View pending pair requests |
| Approve a node |
| Reject a node |
| List paired nodes and their status |
| Mode | Command | Description |
|---|---|---|
| Full (default) | | MCP server + telemetry + OpenClaw bridge |
| Bridge only | | Telemetry + OpenClaw, no MCP server |
| With Tailscale | | Exposes MCP via Tailscale Funnel |
| Dry run | | Log events as JSONL, no Gateway connection |
| Flag | Description |
|---|---|
| Vehicle Identification Number (positional) |
| Gateway WebSocket URL (e.g. ) |
| Gateway authentication token (auto-stored after pairing) |
| Bridge config JSON (default: ) |
| MCP transport: (default) or |
| MCP HTTP port (default: 8080) |
| MCP bind address (default: 127.0.0.1) |
| Telemetry WebSocket port (default: 4443) |
| Telemetry fields: , , or |
| Telemetry polling interval in seconds |
| Disable telemetry streaming |
| Disable MCP server |
| Disable CSV telemetry logging |
| Log events as JSONL without connecting to Gateway |
| Expose MCP via Tailscale Funnel |
| MCP OAuth client ID |
| MCP OAuth client secret |
These can be set in
~/.config/tescmd/.env:
TESLA_CLIENT_ID=your-client-id TESLA_CLIENT_SECRET=your-client-secret TESLA_VIN=5YJ3E1EA1NF000000 TESLA_REGION=na # na, eu, or cn OPENCLAW_GATEWAY_URL=ws://gateway.example.com:18789 OPENCLAW_GATEWAY_TOKEN=your-token TESLA_COMMAND_PROTOCOL=auto # auto, signed, or unsigned
Once the node is running and paired, confirm it connected to the Gateway:
openclaw nodes status
Or use the agent tool:
tescmd_node_status to check connection statusIf connected, the plugin's tools are ready. Call
tescmd_help for the full runtime reference including tool usage, workflows, and error handling.
| Problem | Solution |
|---|---|
| "no node connected" | Start the node: |
| Pairing request not visible | Check — requests expire after 5 minutes. Restart the node to generate a new request. |
| Node connects then disconnects | Check Gateway URL. Run to verify Tesla auth. |
| Auth/token errors | Re-authenticate: |
| Setup wizard issues | Re-run or check https://github.com/oceanswave/tescmd |
| Plugin not loading | Run . Check for the plugin entry. |
| Triggers say "not available" | Restart node with telemetry: remove or add |
Minimal — the tescmd node handles all vehicle-specific configuration.
{ "plugins": { "entries": { "openclaw-tescmd": { "enabled": true, "config": { "debug": false } } } } }
tescmd serve <VIN> --openclaw <url> # Start node (uses stored token) tescmd serve <VIN> --openclaw <url> --openclaw-token <token> # Start node (explicit token) tescmd setup # Interactive setup wizard tescmd auth status # Check auth token status tescmd auth login # Re-authenticate with Tesla tescmd vehicle list # List vehicles on account tescmd vehicle info # Full vehicle data snapshot tescmd cache status # Check cache stats
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.