mcpField
P
pp-tesla

pp-tesla

github.com/mvanhorn其他2.1k285 次安装今天更新
代码仓库

关于 pp-tesla

pp-tesla 是面向 Tesla 车主与 Agent 的 JSON 优先命令行工具,可检查车辆状态、执行空调和锁车等操作,并分析充电成本。它使用本地 SQLite 汇总行程、充电和电量损耗数据,也提供 MCP 接口。

主要功能

  1. 01检查车辆状态并执行车控操作
  2. 02分析充电费用及家庭充电情景
  3. 03汇总行程和充电时间线
  4. 04检测停车期间的电量损耗
  5. 05查看超级充电站空闲桩位
  6. 06审计已登记的车辆密钥

适用场景

  1. 01出发前检查车辆是否满足条件
  2. 02按月份和充电地点统计费用
  3. 03分析行程、充电记录和电量下降
  4. 04检查长期未使用的车辆密钥

MCP 相关

README 说明该 CLI 提供供 AI Agent 驱动车辆的 MCP 接口。

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/mvanhorn/printing-press-library --skill pp-tesla

安装后在 Claude Code 中输入/pp-tesla确认已加载。

详细介绍

Tesla — Printing Press CLI

前置条件:安装 CLI

此技能由 tesla-pp-cli 二进制文件驱动。**调用此技能中的任何命令前,必须确认 CLI 已安装。**如果尚未安装,请先安装:

  1. 使用 Printing Press 安装程序安装。在 macOS/Linux 上,二进制文件默认安装到 $HOME/.local/bin;在 Windows 上,默认安装到 %LOCALAPPDATA%\Programs\PrintingPress\bin:
    npx -y @mvanhorn/printing-press-library install tesla --cli-only
    
  2. 验证:tesla-pp-cli --version
  3. 确保所报告的安装目录位于将调用此技能的 Agent/运行时的 $PATH 中。

如果 npx 安装失败(没有 Node、处于离线状态等),请改用 Go 直接安装(需要 Go 1.26.6 或更高版本):

go install github.com/mvanhorn/printing-press-library/library/devices/tesla/cmd/tesla-pp-cli@latest

如果安装后 --version 报告“command not found”,则运行时无法在 $PATH 中找到该二进制文件目录。在验证成功前,请勿执行技能命令。

何时使用此 CLI

当你需要面向 Tesla 车主账户的 JSON 优先 CLI 时,可以使用 tesla-pp-cli:检查车辆状态、控制空调/车锁/充电、分析充电成本,以及提供供 AI Agent 控车的 MCP 接口。对于一次性命令,它比 iOS 应用更快;对于 Agent,它比 TeslaPy 更友好;此外,它附带本地 SQLite,可提供 TeslaMate 风格的分析(行程、充电、哨兵耗电、成本账本),无需部署 Postgres+Grafana。最适合使用旧 REST 端点的 2021 年前 Model S/X 或 3/Y 车主;较新的车辆则可通过 tesla reachability 获取清晰的兼容方案。

独特功能

这些功能在其他用于此 API 的工具中均不可用。

基于本地状态的综合判断
  • ready — 用一个是/否答案回答“我能在 5 分钟后出发吗?”,并列出有依据的阻碍原因——电量状态与行程距离、是否已插电、车门是否关闭、哨兵模式是否关闭、车厢温度是否在目标值 3F 范围内、是否没有正在进行的更新安装

    这是 Tesla 车主最常问的问题;iOS 应用需要点按 6 次才能诊断,Agent 只需调用一次即可获得明确答案

    tesla ready 5YJ3E1EA6XXXXXXXX --json
    
超越仪表板的本地分析
  • cost ledger — 按充电会话统计成本、月度支出、家用充电与 Supercharger 的比例,并按费率时段计算 $/kWh

    充电成本是 Tesla 车主最常做的电子表格分析;这是首个纯 CLI 工具,可替代 TeslaMate 仪表板

    tesla cost ledger --since 2026-04-01 --group supercharger --json
    
  • cost what-if — “如果你只在家充电,过去 90 天就能节省 $X。”将家用 $/kWh 代入 Supercharger 充电会话,重新计算充电记录

    大多数 Tesla 车主都觉得在家充电可能更省钱,却缺乏证据;此功能能给出具体金额

    tesla cost what-if --only-home --since 90d --json
    
  • timeline — 根据同步的 vehicle_states 轮询数据拼接行程与充电记录——起止时间、距离、能耗、效率,以及解析出地址的经纬度

    让 Agent 能像使用 TeslaMate 一样分析数据,无需部署 Docker+Postgres+Grafana

    tesla timeline --since "last week" --json
    
  • vampire — 对比电量状态变化与空闲时长,并标记可疑的哨兵模式时段或应用唤醒事件

    可用作保修争议的证据,并检测异常哨兵模式耗电;除此之外只有 TeslaMate 仪表板能做到

    tesla vampire --threshold 1.5pct/24h --since 30d --json
    
他处没有的充电情报
  • supercharger watch — 获取已保存 Supercharger 的空闲充电位快照;--watch 会每隔 N 秒重复轮询,并以 JSON 行格式输出状态变化

    避开高峰时段 I-90 Issaquah 的排队;驾车时也可通过 Agent 远程查询

    tesla supercharger watch 1000 --free-stalls 2 --watch --json
    
他处没有的安全审计
  • keys audit — 列出每个已登记的密钥及其最后出现时间、角色和类型;标记超过 90 天未出现、可考虑移除的密钥

    重视安全的车主会担心旧手机和弃用的 NFC 卡仍与车辆配对;此功能适用于季度审查

    tesla keys audit --stale-after 90d --json
    
可达性缓解
  • doctor — 检测需要签名命令的错误,将车辆归类为适用 REST 或需要签名命令,并在需要时打印 tesla-control 注册 URL

    Tesla 在 2024-2026 年推出的签名命令是所有 Tesla CLI 面向用户时最容易踩的坑;这是唯一能清晰揭示这一问题的工具

    tesla doctor --json
    

发现信号

此 CLI 根据浏览器观测到的流量上下文生成。

  • 捕获覆盖范围:60 条网络记录中包含 58 个 API 条目
  • 协议:firebase(置信度 75%)、rest_json(置信度 75%)
  • 身份验证信号:bearer_token — 请求头:authorization;cookie — Cookie:_abck、bm_sz;api_key — 查询参数:key
  • 生成提示:browser_clearance_required、requires_browser_auth
  • 候选命令构想:create_auto_conditioning_start — 根据观测到的 POST /api/{id}/vehicles/5YJ3E1EA6XXXXXXXX/command/auto_conditioning_start 流量推导而来;create_auto_conditioning_stop — 根据观测到的 POST /api/{id}/vehicles/5YJ3E1EA6XXXXXXXX/command/auto_conditioning_stop 流量推导而来;create_diagnostic — 根据观测到的 POST /mobile-app/macgyver/diagnostic 流量推导而来;create_door_lock — 根据观测到的 POST /api/{id}/vehicles/5YJ3E1EA6XXXXXXXX/command/door_lock 流量推导而来;create_door_unlock — 根据观测到的 POST /api/{id}/vehicles/5YJ3E1EA6XXXXXXXX/command/door_unlock 流量推导而来;create_fireperf:fetch — 根据观测到的 POST /v1/projects/tesla-prod/namespaces/fireperf:fetch 流量推导而来;create_hermes — 根据观测到的 POST /api/{id}/vehicles/5YJ3E1EA6XXXXXXXX/jwt/hermes 流量推导而来;create_keys — 根据观测到的 POST /api/{id}/users/keys 流量推导而来。

命令参考

charging — 超级充电站排队位置和充电状态

  • tesla-pp-cli charging — 当前超级充电站排队位置(充电桩编号、预计等待时间)

diagnostics — 车辆诊断功能配置

  • tesla-pp-cli diagnostics — 车辆诊断功能开关

energy_sites — Powerwall 和太阳能能源站点配置

  • tesla-pp-cli energy_sites create-set-backup-reserve — 设置 Powerwall 备用电量百分比
  • tesla-pp-cli energy_sites create-set-operation — 设置 Powerwall 运行模式
  • tesla-pp-cli energy_sites get-calendar-history — 按日/月查看历史能源数据
  • tesla-pp-cli energy_sites get-live-status — 实时查看 Powerwall、太阳能、电网和电池功率
  • tesla-pp-cli energy_sites get-rate-tariffs — 用于 Powerwall 调度的公用事业费率计划
  • tesla-pp-cli energy_sites get-site-info — 能源站点配置(容量、类型、地址)
  • tesla-pp-cli energy_sites get-site-status — 备用电量和运行模式

logs — 客户端遥测接收端

  • tesla-pp-cli logs — 转发客户端日志事件(主要供内部使用)

notification_preferences — 推送通知设置

  • tesla-pp-cli notification_preferences — 更新推送通知偏好设置

products — 用户拥有的车辆、Powerwall 和太阳能产品

  • tesla-pp-cli products — 列出用户拥有的车辆、Powerwall 和太阳能产品

users — 账户配置、功能开关、订单以及密钥/凭据管理

  • tesla-pp-cli users create-keys — 添加虚拟手机钥匙或 BLE 钥匙
  • tesla-pp-cli users get-app-config — 移动应用功能开关和运行时配置
  • tesla-pp-cli users get-feature-config — 账户级功能控制
  • tesla-pp-cli users get-orders — Tesla 订单(新车交付、配件购买)

vehicles — 单车数据、温控、车锁、远程启动和 Hermes 遥测令牌

  • tesla-pp-cli vehicles create-actuate-trunk — 打开/关闭后备箱或前备箱;which_trunk = front | rear
  • tesla-pp-cli vehicles create-add-charge-schedule — 添加充电计划(位置 + 时间范围)
  • tesla-pp-cli vehicles create-add-precondition-schedule — 添加预处理计划
  • tesla-pp-cli vehicles create-adjust-volume — 将音量设为指定级别
  • tesla-pp-cli vehicles create-auto-conditioning-start — POST /api/1/vehicles/{vehicle_id}/command/auto_conditioning_start
  • tesla-pp-cli vehicles create-auto-conditioning-stop — POST /api/1/vehicles/{vehicle_id}/command/auto_conditioning_stop
  • tesla-pp-cli vehicles create-bioweapon-mode — 切换生化武器防御模式(HEPA 循环)
  • tesla-pp-cli vehicles create-cancel-software-update — 取消待处理的软件更新
  • tesla-pp-cli vehicles create-charge-max-range — 将充电上限设为最大续航(100%)
  • tesla-pp-cli vehicles create-charge-port-door-close — 关闭充电接口
  • tesla-pp-cli vehicles create-charge-port-door-open — 打开充电接口
  • tesla-pp-cli vehicles create-charge-standard — 将充电上限设为标准(约 90%)
  • tesla-pp-cli vehicles create-charge-start — 开始充电
  • tesla-pp-cli vehicles create-charge-stop — 停止充电
  • tesla-pp-cli vehicles create-climate-keeper-mode — 空调保持模式:0=关闭,1=开启,2=宠物,3=露营
  • tesla-pp-cli vehicles create-door-lock — POST /api/1/vehicles/{vehicle_id}/command/door_lock
  • tesla-pp-cli vehicles create-door-unlock — POST /api/1/vehicles/{vehicle_id}/command/door_unlock
  • tesla-pp-cli vehicles create-erase-user-data — 擦除访客会话用户数据
  • tesla-pp-cli vehicles create-flash-lights — 闪烁前灯
  • tesla-pp-cli vehicles create-guest-mode — 启用/停用访客模式
  • tesla-pp-cli vehicles create-hermes — POST /api/1/vehicles/{vehicle_id}/jwt/hermes
  • tesla-pp-cli vehicles create-honk-horn — 鸣笛
  • tesla-pp-cli vehicles create-max-defrost — 切换最大除霜
  • tesla-pp-cli vehicles create-media-next-favorite — 切换到下一个收藏电台
  • tesla-pp-cli vehicles create-media-next-track — 切换到下一首曲目
  • tesla-pp-cli vehicles create-media-prev-favorite — 切换到上一个收藏电台
  • tesla-pp-cli vehicles create-media-prev-track — 切换到上一首曲目
  • tesla-pp-cli vehicles create-media-toggle-playback — 切换播放/暂停
  • tesla-pp-cli vehicles create-media-volume-down — 调低音量
  • tesla-pp-cli vehicles create-media-volume-up — 调高音量
  • tesla-pp-cli vehicles create-navigation-gps-request — 将纬度/经度直接发送到导航系统
  • tesla-pp-cli vehicles create-remote-start-drive — POST /api/1/vehicles/{vehicle_id}/command/remote_start_drive
  • tesla-pp-cli vehicles create-remove-charge-schedule — 按 ID 删除充电计划
  • tesla-pp-cli vehicles create-remove-precondition-schedule — 按 ID 删除预处理计划
  • tesla-pp-cli vehicles create-reset-valet-pin — 重置代客泊车 PIN
  • tesla-pp-cli vehicles create-schedule-software-update — 安排待处理的软件更新
  • tesla-pp-cli vehicles create-seat-heater-request — 设置座椅加热级别(0-3)和座椅位置(0=驾驶员,1=乘客,2-5=后排)
  • tesla-pp-cli vehicles create-set-charge-limit — 设置充电上限百分比(50-100)
  • tesla-pp-cli vehicles create-set-charging-amps — 设置充电电流
  • tesla-pp-cli vehicles create-set-sentry-mode — 启用/停用哨兵模式
  • tesla-pp-cli vehicles create-set-temps — 设置驾驶员和乘客区域的空调温度(摄氏度)
  • tesla-pp-cli vehicles create-set-valet-mode — 启用/停用代客泊车模式,可选 PIN
  • tesla-pp-cli vehicles create-share — 将导航目的地发送到车辆(地址或坐标)
  • tesla-pp-cli vehicles create-speed-limit-activate — 激活限速模式
  • tesla-pp-cli vehicles create-speed-limit-clear-pin — 清除限速 PIN
  • tesla-pp-cli vehicles create-speed-limit-deactivate — 停用限速模式
  • tesla-pp-cli vehicles create-speed-limit-set-limit — 设置限速值(mph)
  • tesla-pp-cli vehicles create-steering-wheel-heater-request — 切换方向盘加热器
  • tesla-pp-cli vehicles create-sun-roof-control — 天窗:state = vent | close
  • tesla-pp-cli vehicles create-trigger-homelink — 触发 HomeLink 车库门
  • tesla-pp-cli vehicles create-wake-up — 唤醒休眠中的车辆
  • tesla-pp-cli vehicles create-window-control — 打开通风或关闭所有车窗;command = vent | close
  • tesla-pp-cli vehicles get-compose-image — 为已配置的车辆合成渲染图像
  • tesla-pp-cli vehicles get-data-charge-state — 充电状态子集(比完整的 vehicle_data 更快)
  • tesla-pp-cli vehicles get-data-climate-state — 空调状态子集
  • tesla-pp-cli vehicles get-data-drive-state — 行驶状态(位置、速度、挡位)子集
  • tesla-pp-cli vehicles get-data-gui-settings — GUI 设置(单位、时间格式)
  • tesla-pp-cli vehicles get-data-vehicle-config — 车辆配置(型号、选项、配置)
  • tesla-pp-cli vehicles get-data-vehicle-state — 车辆状态(车锁、软件、哨兵模式)子集
  • tesla-pp-cli vehicles get-mobile-enabled — 车辆是否启用了手机控制
  • tesla-pp-cli vehicles get-nearby-chargers — 附近的 Supercharger 站点及其充电桩可用情况字段
  • tesla-pp-cli vehicles get-release-notes — 当前/排队中的软件更新的发行说明
  • tesla-pp-cli vehicles get-service-data — 此车辆的未完成维修预约和近期维修记录
  • tesla-pp-cli vehicles get-vehicle-data — 完整车辆状态快照:充电、空调、行驶、GUI、车辆配置和软件
查找合适的命令

当你知道想做什么,但不知道该用哪个命令时,可以直接询问 CLI:

tesla-pp-cli which "<capability in your own words>"

which 会根据自然语言能力查询,从此 CLI 精选的功能索引中匹配最合适的命令。退出代码 0 表示至少找到一项匹配;退出代码 2 表示没有可信的匹配结果——此时可改用 --help,或缩小查询范围。

使用示例

先快照,再检查就绪状态
tesla snap --all --json && tesla ready 5YJ3E1EA6XXXXXXXX --json

获取账户中每辆车的状态,然后检查你的主用车辆是否已准备好行驶。

早晨就绪检查
tesla ready 5YJ3E1EA6XXXXXXXX --json --select ready,blockers

返回一个 JSON 对象:汽车是否已准备好行驶;如果没有,原因是什么。对于 Agent,可使用 --select 限制响应大小。

月度充电费用报告
tesla cost ledger --since 30d --group supercharger,home --json --select total_usd,sessions,kwh_added,supercharger_ratio

按月细分,并使用点分路径 --select,让 Agent 仅查看汇总字段,而非每次充电会话的数据。

出发前预先调节车内温度
tesla vehicles create-auto-conditioning-start 5YJ3E1EA6XXXXXXXX --json

启动空调预调节。十分钟后运行 tesla ready <vin>,确认车厢已暖和。

超级充电站排队监视器
tesla supercharger watch 1000 --free-stalls 2 --watch --json

订阅已保存站点的空闲车位状态变化;每次变化都会输出一行 JSON。可通过管道传给 Agent,以便发送提醒。

通过分析查看本地 SOC 历史记录
tesla-pp-cli analytics --select battery_level,captured_at --limit 30 --json

从本地 SQLite 提取最近 30 条车辆状态记录,用于趋势分析;这些数据与 TeslaMate 在 Grafana 中展示的数据相同。

示例:随时随地发送远程命令(Fleet 路径 — 默认)
# 1. Install tesla-control (clone+build, not go install @latest)
git clone https://github.com/teslamotors/vehicle-command.git
cd vehicle-command && go build -o tesla-control ./cmd/tesla-control
mv tesla-control ~/go/bin/ && cd ..

# 2. Generate keypair and scaffold public-key host
tesla-pp-cli auth fleet-template --gen-key --dest ./tesla-keys-host
cd tesla-keys-host && vercel deploy --prod

# 3. Register at developer.tesla.com with the Vercel hostname, copy client_id and client_secret

# 4. Register with Tesla (key-file auto-detected from ~/.tesla/)
tesla-pp-cli auth fleet-register \
  --public-key-domain <your-host>.vercel.app \
  --client-id <id> \
  --client-secret-file <secret-file>

# 5. User OAuth login
tesla-pp-cli auth fleet-login

# 6. ONE-TIME: Enroll virtual key at the car (BLE+NFC required, must be at car)
tesla-control -ble -vin <VIN> add-key-request owner cloud_key
# Tap NFC card or phone key when the car prompts

# 7. Now remote commands work from anywhere
tesla-pp-cli command climate_on --vehicle <name> --send
tesla-pp-cli command unlock --vehicle <name> --send

在车辆旁完成一次性 BLE+NFC 配对后,所有已签名的命令都可通过互联网从任何地方发送。每次调用的费用为 $0.001;如果车辆处于休眠状态,则需额外支付 $0.02 唤醒费用。在每月 $10 的个人使用额度内,实际费用约为 $0。

示例:在不同路径之间切换

--via 标志会覆盖默认传输方式:

tesla-pp-cli command set_charge_limit --vehicle <name> --send -- percent=80
tesla-pp-cli command unlock --vehicle <name> --send --via fleet
tesla-pp-cli command flash_lights --vehicle <name> --send --via ble
tesla-pp-cli command honk_horn --vehicle <name> --send --via hermes

默认情况下,2021 年之前的车辆使用 REST;2021 年之后的车辆在完成注册后使用 Fleet。使用 --via=hermes 强制走 Hermes 中继路径(免费,但仅适用于信息娱乐命令——充电、空调、鸣笛和媒体)。使用 --via=ble 发送本地蓝牙命令。

示例:将 Tesla Agent 部署到云端 Mac mini
# On laptop:
tesla auth export --out tesla-bundle.enc
scp tesla-bundle.enc user@mac-mini:~/

# On Mac mini:
tesla auth import ~/tesla-bundle.enc
tesla-pp-cli command honk_horn --vehicle <name> --send --via fleet

导出操作会将 REST bearer、Fleet bearer 和已注册的 ECDSA 密钥对打包,并使用 Argon2id 和 AES-256-GCM 加密。通过 Tailscale 或任何安全渠道复制此文件。在远程设备上导入并输入密码后,同一组 Fleet 凭据和同一个已注册密钥即可在新主机上使用。车辆无需重新注册;密钥身份由密钥对保持不变。

路径选择流程图

文本形式(在各种 SKILL.md 查看器中均可一致呈现):

Is the vehicle pre-2021?
  Yes -> REST (default path, no extra setup)
  No  -> Continue.

Is Fleet API enrolled?
  Yes -> Fleet API (default for all signed commands, roughly $0/mo within personal-use credit)
  No  -> Continue.

Is the car within Bluetooth range of this host?
  Yes -> BLE (free, all commands, no internet needed)
  No  -> Continue.

Is Hermes relay running and only need infotainment commands?
  Yes -> Hermes (free, but only charge/climate/honk/media — no unlock/lock/trunk)
  No  -> Set up Fleet API (see Auth Setup below)

Deploying to a second host (cloud Mac mini, Pi)?
  Use Fleet + `tesla auth export` and `tesla auth import` on the remote.

身份验证设置

第 1 步:安装 tesla_auth(必需)

CLI 需要 tesla_auth 进行 OAuth 登录。请先安装:

cargo install tesla_auth
# or on macOS: brew install adriankumpf/tap/tesla_auth
第 2 步:Owner API 登录
tesla-pp-cli auth login

此操作会启动 tesla_auth 子进程,并在原生窗口中打开 Tesla 的 OAuth 页面。在该页面登录(MFA、验证码、短信验证码均由 Tesla 处理——我们不会接触这些信息),tesla_auth 会捕获令牌。CLI 会将令牌存储在 ~/.config/tesla-pp-cli/config.toml(权限模式为 0600)。Bearer 令牌有效期为 8 小时;遇到 401 时,CLI 会使用长期有效的刷新令牌静默重新签发令牌。

已有刷新令牌时的无头/CI 备用方式:

  • auth login --paste — 从标准输入读取刷新令牌
  • auth login --refresh-token <tok> — 通过标志传入令牌
步骤 3:适用于 2021 年及之后的车辆(Fleet API + Virtual Key)

2021 年及之后的 Tesla 需要通过 Fleet API 发送签名命令。这是一次性设置:

  1. 安装 tesla-control(克隆并构建——go install @latest 会因上游替换指令而失败):

    git clone https://github.com/teslamotors/vehicle-command.git
    cd vehicle-command
    go build -o tesla-control ./cmd/tesla-control
    mv tesla-control ~/go/bin/  # or somewhere on your $PATH
    
  2. 搭建公钥主机并生成密钥对:

    tesla-pp-cli auth fleet-template --gen-key --dest ./tesla-keys-host
    cd tesla-keys-host && vercel deploy --prod
    
  3. 在 developer.tesla.com 注册:创建一个应用,将允许的来源/重定向地址设为已部署的主机和 http://localhost:8585/callback。复制 client_id 和 client_secret。

  4. 向 Tesla 注册(会自动从 ~/.tesla/ 检测 --key-file):

    tesla-pp-cli auth fleet-register \
      --client-id <id> \
      --client-secret-file <secret-path> \
      --public-key-domain <your-host>.vercel.app
    
  5. 完成用户 OAuth 流程:

    tesla-pp-cli auth fleet-login
    
  6. 在车辆上注册 Virtual Key(需要 BLE+NFC——车辆必须在附近):

    tesla-control -ble -vin <VIN> add-key-request owner cloud_key
    # Tap your NFC card or phone key when the car prompts
    

    此步骤无法远程完成——你必须在车辆旁,并使用蓝牙和 NFC 凭证。

运行 tesla-pp-cli doctor 验证设置。

Agent 模式

为任意命令添加 --agent。它会展开为:--json --compact --no-input --no-color --yes。

  • 可通过管道传递——JSON 输出到 stdout,错误输出到 stderr

  • 可筛选——--select 保留部分字段。带点号的路径可深入嵌套结构;数组会逐项遍历。对于内容冗长的 API,这对控制上下文大小至关重要:

    tesla-pp-cli charging --agent --select id,name,status
    
  • 可预览——--dry-run 显示请求但不发送

  • 适合离线使用——有本地 SQLite 存储时,同步/搜索命令可以使用它

  • 非交互式——不会提示输入,所有输入都通过标志指定

  • 明确重试——仅当已存在的创建结果应视为成功时,才使用 --idempotent

响应封装

从本地存储或 API 读取的命令会将输出封装在来源信息信封中:

{
  "meta": {"source": "live" | "local", "synced_at": "...", "reason": "..."},
  "results": <data>
}

解析 .results 获取数据,并查看 .meta.source 以确认数据来自实时 API 还是本地存储。只有当 stdout 是终端且未设置机器格式标志(--json、--csv、--compact、--quiet、--plain、--select)时,才会将便于阅读的 N results (live) 摘要输出到 stderr——通过管道接收的内容、Agent 消费的内容以及使用显式格式运行的命令,都会在 stdout 输出纯 JSON。

Agent 反馈

当你(或 Agent)发现此 CLI 有不妥之处时,请记录下来:

tesla-pp-cli feedback "the --since flag is inclusive but docs say exclusive"
tesla-pp-cli feedback --stdin < notes.txt
tesla-pp-cli feedback list --json --limit 10

条目会存储在本地 ~/.tesla-pp-cli/feedback.jsonl 中。只有设置了 TESLA_FEEDBACK_ENDPOINT,并且传入了 --send 或设置了 TESLA_FEEDBACK_AUTO_SEND=true 时,才会发送 POST 请求。默认仅存储在本地。

写下让你感到意外的地方,而不是提交错误报告。简短、具体,写成一行:这才是能够不断累积价值的内容。

输出传递

每个命令都接受 --deliver <sink>。除了输出到 stdout(或替代 stdout)之外,输出还会发送到指定的接收端,因此 Agent 无需手动通过管道传递,就能路由命令结果。支持三种接收端:

接收端效果
stdout默认;仅输出到 stdout
file:<path>将输出原子写入 <path>(临时文件 + 重命名)
webhook:<url>将输出正文 POST 到 URL(使用 --compact 时,内容类型为 application/json 或 application/x-ndjson)

不支持的方案会被拒绝,并返回结构化错误,指出支持的方案。Webhook 失败时会返回非零状态码,并在 stderr 中记录 URL 和 HTTP 状态码。

命名配置文件

配置文件是保存的一组标志值,可在多次调用中重复使用。当计划任务中的 Agent 每次运行都以相同配置调用同一命令时,可使用配置文件——这是 HeyGen 的“Beacon”模式。

tesla-pp-cli profile save briefing --json
tesla-pp-cli --profile briefing charging
tesla-pp-cli profile list --json
tesla-pp-cli profile show briefing
tesla-pp-cli profile delete briefing --yes

显式标志始终优先于配置文件中的值;配置文件中的值优先于默认值。agent-context 会在 available_profiles 下列出所有可用配置文件,方便进行自省的 Agent 在运行时发现它们。

退出代码

代码含义
0成功
2用法错误(参数错误)
3未找到资源
4需要身份验证
5API 错误(上游问题)
7请求过于频繁(等待后重试)
10配置错误

参数解析

解析 $ARGUMENTS:

  1. 为空、help 或 --help → 显示 tesla-pp-cli --help 的输出
  2. 以 install 开头 → 以 mcp 结尾 → 安装 MCP;否则 → 参见上文的前提条件
  3. 其他任何内容 → 直接使用(作为 CLI 命令执行,并添加 --agent)

MCP 服务安装

从此 CLI 发布的公共库条目或预构建版本安装 MCP 二进制文件,然后进行注册:

claude mcp add tesla-pp-mcp -- tesla-pp-mcp

验证:claude mcp list

直接使用

  1. 检查是否已安装:which tesla-pp-cli 如果未找到,则提供安装选项(参见本技能顶部的前提条件)。
  2. 将用户查询与上文「独特功能」和「命令参考」中最合适的命令匹配。
  3. 使用 --agent 标志执行:
    tesla-pp-cli <command> [subcommand] [args] --agent
    
  4. 如果存在歧义,则查看子命令帮助:tesla-pp-cli <command> --help。

评论

支持 Markdown