{
  "schemaVersion": "1.0",
  "item": {
    "slug": "vehicle-tracker",
    "name": "Vehicle Expense Tracker",
    "source": "tencent",
    "type": "skill",
    "category": "效率提升",
    "sourceUrl": "https://clawhub.ai/huchengtw/vehicle-tracker",
    "canonicalUrl": "https://clawhub.ai/huchengtw/vehicle-tracker",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/vehicle-tracker",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=vehicle-tracker",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "config.json",
      "SKILL.md",
      "tracker.py",
      "locales/ja-JP.json",
      "locales/zh-TW.json",
      "locales/en-US.json"
    ],
    "primaryDoc": "SKILL.md",
    "quickSetup": [
      "Download the package from Yavira.",
      "Extract the archive and review SKILL.md first.",
      "Import or place the package into your OpenClaw setup."
    ],
    "agentAssist": {
      "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
      "steps": [
        "Download the package from Yavira.",
        "Extract it into a folder your agent can access.",
        "Paste one of the prompts below and point your agent at the extracted folder."
      ],
      "prompts": [
        {
          "label": "New install",
          "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
        },
        {
          "label": "Upgrade existing",
          "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
        }
      ]
    },
    "sourceHealth": {
      "source": "tencent",
      "status": "healthy",
      "reason": "direct_download_ok",
      "recommendedAction": "download",
      "checkedAt": "2026-04-30T16:55:25.780Z",
      "expiresAt": "2026-05-07T16:55:25.780Z",
      "httpStatus": 200,
      "finalUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
      "contentType": "application/zip",
      "probeMethod": "head",
      "details": {
        "probeUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=network",
        "contentDisposition": "attachment; filename=\"network-1.0.0.zip\"",
        "redirectLocation": null,
        "bodySnippet": null
      },
      "scope": "source",
      "summary": "Source download looks usable.",
      "detail": "Yavira can redirect you to the upstream package for this source.",
      "primaryActionLabel": "Download for OpenClaw",
      "primaryActionHref": "/downloads/vehicle-tracker"
    },
    "validation": {
      "installChecklist": [
        "Use the Yavira download entry.",
        "Review SKILL.md after the package is downloaded.",
        "Confirm the extracted package contains the expected setup assets."
      ],
      "postInstallChecks": [
        "Confirm the extracted package includes the expected docs or setup files.",
        "Validate the skill or prompts are available in your target agent workspace.",
        "Capture any manual follow-up steps the agent could not complete."
      ]
    },
    "downloadPageUrl": "https://openagent3.xyz/downloads/vehicle-tracker",
    "agentPageUrl": "https://openagent3.xyz/skills/vehicle-tracker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/vehicle-tracker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/vehicle-tracker/agent.md"
  },
  "agentAssist": {
    "summary": "Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.",
    "steps": [
      "Download the package from Yavira.",
      "Extract it into a folder your agent can access.",
      "Paste one of the prompts below and point your agent at the extracted folder."
    ],
    "prompts": [
      {
        "label": "New install",
        "body": "I downloaded a skill package from Yavira. Read SKILL.md from the extracted folder and install it by following the included instructions. Tell me what you changed and call out any manual steps you could not complete."
      },
      {
        "label": "Upgrade existing",
        "body": "I downloaded an updated skill package from Yavira. Read SKILL.md from the extracted folder, compare it with my current installation, and upgrade it while preserving any custom configuration unless the package docs explicitly say otherwise. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Vehicle Expense Tracker",
        "body": "A multi-language vehicle expense tracking tool that supports Google Sheets and local Excel files."
      },
      {
        "title": "Features",
        "body": "i18n Support: Multiple languages via locale files (locales/*.json)\nGoogle Sheets Integration: Write directly to Google Sheets via API\nLocal Excel Fallback: Saves to local .xlsx files if no Spreadsheet ID configured\nMetric/Imperial Units: Configurable unit system (km/L vs mi/gal)\nPhoto Management: Auto-saves and renames photos with timestamps\nAliases: Support vehicle aliases (e.g., \"my car\" → \"Toyota Camry 2020\")\nDefaults: Auto-fill quantity and unit based on category"
      },
      {
        "title": "Step 1: Choose Your Locale",
        "body": "Available locales:\n\nzh-TW - 繁體中文 (Taiwan)\nen-US - English (US)\nja-JP - 日本語"
      },
      {
        "title": "Step 2: Create config.json",
        "body": "Copy the template below and save as skills/vehicle-tracker/config.json:\n\n{\n  \"locale\": \"en-US\",\n  \"unit_system\": \"metric\",\n  \"vehicles\": {},\n  \"aliases\": {},\n  \"default_vehicle\": null,\n  \"category_defaults\": {}\n}"
      },
      {
        "title": "Step 3: Copy Category Defaults from Locale",
        "body": "Based on your chosen locale and unit system, copy the appropriate category defaults.\n\nFor English (metric):\n\n{\n  \"category_defaults\": {\n    \"Gas\": { \"unit\": \"liter\" },\n    \"Accessory\": { \"unit\": \"pc\", \"quantity\": 1 },\n    \"Repair\": { \"unit\": \"job\", \"quantity\": 1 },\n    \"Maintenance\": { \"unit\": \"service\", \"quantity\": 1 },\n    \"Purchase\": { \"unit\": \"unit\", \"quantity\": 1 }\n  }\n}\n\nFor English (imperial):\n\n{\n  \"category_defaults\": {\n    \"Gas\": { \"unit\": \"gallon\" },\n    \"Accessory\": { \"unit\": \"pc\", \"quantity\": 1 },\n    \"Repair\": { \"unit\": \"job\", \"quantity\": 1 },\n    \"Maintenance\": { \"unit\": \"service\", \"quantity\": 1 },\n    \"Purchase\": { \"unit\": \"unit\", \"quantity\": 1 }\n  }\n}\n\nFor 繁體中文 (metric):\n\n{\n  \"category_defaults\": {\n    \"加油\": { \"unit\": \"公升\" },\n    \"周邊\": { \"unit\": \"個\", \"quantity\": 1 },\n    \"維修\": { \"unit\": \"件\", \"quantity\": 1 },\n    \"保養\": { \"unit\": \"次\", \"quantity\": 1 },\n    \"買車\": { \"unit\": \"輛\", \"quantity\": 1 }\n  }\n}\n\nFor 日本語 (metric):\n\n{\n  \"category_defaults\": {\n    \"給油\": { \"unit\": \"リットル\" },\n    \"アクセサリー\": { \"unit\": \"個\", \"quantity\": 1 },\n    \"修理\": { \"unit\": \"件\", \"quantity\": 1 },\n    \"メンテナンス\": { \"unit\": \"回\", \"quantity\": 1 },\n    \"購入\": { \"unit\": \"台\", \"quantity\": 1 }\n  }\n}"
      },
      {
        "title": "Step 4: Add Your Vehicle",
        "body": "Option A: Google Sheets (recommended for cloud sync)\n\nCreate a Google Spreadsheet\nShare it with a Google Service Account (see google-workspace skill)\nAdd the Spreadsheet ID to config:\n\n{\n  \"vehicles\": {\n    \"My Car 2020\": \"1ABC123...xyz\"\n  },\n  \"default_vehicle\": \"My Car 2020\"\n}\n\nOption B: Local Excel (no setup required)\n\nJust add the vehicle name without an ID:\n\n{\n  \"vehicles\": {\n    \"My Car 2020\": null\n  },\n  \"default_vehicle\": \"My Car 2020\"\n}\n\nFiles will be saved to ~/vehicle_tracker/My_Car_2020.xlsx."
      },
      {
        "title": "Step 5: Add Aliases (Optional)",
        "body": "{\n  \"aliases\": {\n    \"car\": \"My Car 2020\",\n    \"toyota\": \"My Car 2020\"\n  }\n}"
      },
      {
        "title": "Step 6: Custom Paths (Optional)",
        "body": "Override default directories:\n\n{\n  \"photo_base_dir\": \"/path/to/photos\",\n  \"local_excel_dir\": \"/path/to/excel/files\",\n  \"sheet_name\": \"Expenses\"\n}\n\nDefault paths: ~/vehicle_tracker"
      },
      {
        "title": "Complete config.json Example",
        "body": "{\n  \"locale\": \"en-US\",\n  \"unit_system\": \"imperial\",\n  \"vehicles\": {\n    \"Toyota Camry 2020\": \"1ABC123...spreadsheet_id\",\n    \"Honda Civic 2018\": null\n  },\n  \"aliases\": {\n    \"camry\": \"Toyota Camry 2020\",\n    \"civic\": \"Honda Civic 2018\",\n    \"car\": \"Toyota Camry 2020\"\n  },\n  \"default_vehicle\": \"Toyota Camry 2020\",\n  \"category_defaults\": {\n    \"Gas\": { \"unit\": \"gallon\" },\n    \"Accessory\": { \"unit\": \"pc\", \"quantity\": 1 },\n    \"Repair\": { \"unit\": \"job\", \"quantity\": 1 },\n    \"Maintenance\": { \"unit\": \"service\", \"quantity\": 1 },\n    \"Purchase\": { \"unit\": \"unit\", \"quantity\": 1 }\n  },\n  \"photo_base_dir\": \"~/vehicle_tracker\",\n  \"local_excel_dir\": \"~/vehicle_tracker\"\n}"
      },
      {
        "title": "Preview (Dry Run) - Always do this first!",
        "body": "python3 skills/vehicle-tracker/tracker.py \\\n  --vehicle \"camry\" \\\n  --mileage 15000 \\\n  --category \"Gas\" \\\n  --cost 45.50 \\\n  --quantity 12.5 \\\n  --dry-run"
      },
      {
        "title": "Execute (After user confirms)",
        "body": "python3 skills/vehicle-tracker/tracker.py \\\n  --vehicle \"camry\" \\\n  --mileage 15000 \\\n  --category \"Gas\" \\\n  --cost 45.50 \\\n  --quantity 12.5"
      },
      {
        "title": "With Photos",
        "body": "python3 skills/vehicle-tracker/tracker.py \\\n  --vehicle \"camry\" \\\n  --mileage 15200 \\\n  --category \"Maintenance\" \\\n  --cost 89.99 \\\n  --description \"Oil change\" \\\n  --photos \"/path/to/receipt.jpg\" \\\n  --dry-run"
      },
      {
        "title": "Arguments",
        "body": "ArgumentRequiredDescription--vehicleOptionalVehicle name or alias. Uses default if omitted.--mileageRequiredCurrent odometer reading--categoryRequiredExpense category--costRequiredExpense amount (currency symbols auto-removed)--quantityOptionalQuantity (uses default if available)--unitOptionalUnit (uses category mapping if available)--dateOptionalDate YYYY-MM-DD (defaults to today)--descriptionOptionalAdditional notes--photosOptionalPhoto file paths to save--dry-runFlagPreview only, no write"
      },
      {
        "title": "Adding a New Locale",
        "body": "Create locales/{code}.json based on existing locale files. Required fields:\n\nlanguage_name\nsheet_name\ncolumns_metric / columns_imperial\nphoto_prefix\nmessages\nunits_metric / units_imperial\ndefault_units_metric / default_units_imperial"
      },
      {
        "title": "Supported Locales",
        "body": "CodeLanguageUnit Systemszh-TW繁體中文metric, imperialen-USEnglish (US)metric, imperialja-JP日本語metric, imperial"
      }
    ],
    "body": "Vehicle Expense Tracker\n\nA multi-language vehicle expense tracking tool that supports Google Sheets and local Excel files.\n\nFeatures\ni18n Support: Multiple languages via locale files (locales/*.json)\nGoogle Sheets Integration: Write directly to Google Sheets via API\nLocal Excel Fallback: Saves to local .xlsx files if no Spreadsheet ID configured\nMetric/Imperial Units: Configurable unit system (km/L vs mi/gal)\nPhoto Management: Auto-saves and renames photos with timestamps\nAliases: Support vehicle aliases (e.g., \"my car\" → \"Toyota Camry 2020\")\nDefaults: Auto-fill quantity and unit based on category\n🚀 Initialization (First-Time Setup)\nStep 1: Choose Your Locale\n\nAvailable locales:\n\nzh-TW - 繁體中文 (Taiwan)\nen-US - English (US)\nja-JP - 日本語\nStep 2: Create config.json\n\nCopy the template below and save as skills/vehicle-tracker/config.json:\n\n{\n  \"locale\": \"en-US\",\n  \"unit_system\": \"metric\",\n  \"vehicles\": {},\n  \"aliases\": {},\n  \"default_vehicle\": null,\n  \"category_defaults\": {}\n}\n\nStep 3: Copy Category Defaults from Locale\n\nBased on your chosen locale and unit system, copy the appropriate category defaults.\n\nFor English (metric):\n\n{\n  \"category_defaults\": {\n    \"Gas\": { \"unit\": \"liter\" },\n    \"Accessory\": { \"unit\": \"pc\", \"quantity\": 1 },\n    \"Repair\": { \"unit\": \"job\", \"quantity\": 1 },\n    \"Maintenance\": { \"unit\": \"service\", \"quantity\": 1 },\n    \"Purchase\": { \"unit\": \"unit\", \"quantity\": 1 }\n  }\n}\n\n\nFor English (imperial):\n\n{\n  \"category_defaults\": {\n    \"Gas\": { \"unit\": \"gallon\" },\n    \"Accessory\": { \"unit\": \"pc\", \"quantity\": 1 },\n    \"Repair\": { \"unit\": \"job\", \"quantity\": 1 },\n    \"Maintenance\": { \"unit\": \"service\", \"quantity\": 1 },\n    \"Purchase\": { \"unit\": \"unit\", \"quantity\": 1 }\n  }\n}\n\n\nFor 繁體中文 (metric):\n\n{\n  \"category_defaults\": {\n    \"加油\": { \"unit\": \"公升\" },\n    \"周邊\": { \"unit\": \"個\", \"quantity\": 1 },\n    \"維修\": { \"unit\": \"件\", \"quantity\": 1 },\n    \"保養\": { \"unit\": \"次\", \"quantity\": 1 },\n    \"買車\": { \"unit\": \"輛\", \"quantity\": 1 }\n  }\n}\n\n\nFor 日本語 (metric):\n\n{\n  \"category_defaults\": {\n    \"給油\": { \"unit\": \"リットル\" },\n    \"アクセサリー\": { \"unit\": \"個\", \"quantity\": 1 },\n    \"修理\": { \"unit\": \"件\", \"quantity\": 1 },\n    \"メンテナンス\": { \"unit\": \"回\", \"quantity\": 1 },\n    \"購入\": { \"unit\": \"台\", \"quantity\": 1 }\n  }\n}\n\nStep 4: Add Your Vehicle\n\nOption A: Google Sheets (recommended for cloud sync)\n\nCreate a Google Spreadsheet\nShare it with a Google Service Account (see google-workspace skill)\nAdd the Spreadsheet ID to config:\n{\n  \"vehicles\": {\n    \"My Car 2020\": \"1ABC123...xyz\"\n  },\n  \"default_vehicle\": \"My Car 2020\"\n}\n\n\nOption B: Local Excel (no setup required)\n\nJust add the vehicle name without an ID:\n\n{\n  \"vehicles\": {\n    \"My Car 2020\": null\n  },\n  \"default_vehicle\": \"My Car 2020\"\n}\n\n\nFiles will be saved to ~/vehicle_tracker/My_Car_2020.xlsx.\n\nStep 5: Add Aliases (Optional)\n{\n  \"aliases\": {\n    \"car\": \"My Car 2020\",\n    \"toyota\": \"My Car 2020\"\n  }\n}\n\nStep 6: Custom Paths (Optional)\n\nOverride default directories:\n\n{\n  \"photo_base_dir\": \"/path/to/photos\",\n  \"local_excel_dir\": \"/path/to/excel/files\",\n  \"sheet_name\": \"Expenses\"\n}\n\n\nDefault paths: ~/vehicle_tracker\n\nComplete config.json Example\n{\n  \"locale\": \"en-US\",\n  \"unit_system\": \"imperial\",\n  \"vehicles\": {\n    \"Toyota Camry 2020\": \"1ABC123...spreadsheet_id\",\n    \"Honda Civic 2018\": null\n  },\n  \"aliases\": {\n    \"camry\": \"Toyota Camry 2020\",\n    \"civic\": \"Honda Civic 2018\",\n    \"car\": \"Toyota Camry 2020\"\n  },\n  \"default_vehicle\": \"Toyota Camry 2020\",\n  \"category_defaults\": {\n    \"Gas\": { \"unit\": \"gallon\" },\n    \"Accessory\": { \"unit\": \"pc\", \"quantity\": 1 },\n    \"Repair\": { \"unit\": \"job\", \"quantity\": 1 },\n    \"Maintenance\": { \"unit\": \"service\", \"quantity\": 1 },\n    \"Purchase\": { \"unit\": \"unit\", \"quantity\": 1 }\n  },\n  \"photo_base_dir\": \"~/vehicle_tracker\",\n  \"local_excel_dir\": \"~/vehicle_tracker\"\n}\n\nUsage\nPreview (Dry Run) - Always do this first!\npython3 skills/vehicle-tracker/tracker.py \\\n  --vehicle \"camry\" \\\n  --mileage 15000 \\\n  --category \"Gas\" \\\n  --cost 45.50 \\\n  --quantity 12.5 \\\n  --dry-run\n\nExecute (After user confirms)\npython3 skills/vehicle-tracker/tracker.py \\\n  --vehicle \"camry\" \\\n  --mileage 15000 \\\n  --category \"Gas\" \\\n  --cost 45.50 \\\n  --quantity 12.5\n\nWith Photos\npython3 skills/vehicle-tracker/tracker.py \\\n  --vehicle \"camry\" \\\n  --mileage 15200 \\\n  --category \"Maintenance\" \\\n  --cost 89.99 \\\n  --description \"Oil change\" \\\n  --photos \"/path/to/receipt.jpg\" \\\n  --dry-run\n\nArguments\nArgument\tRequired\tDescription\n--vehicle\tOptional\tVehicle name or alias. Uses default if omitted.\n--mileage\tRequired\tCurrent odometer reading\n--category\tRequired\tExpense category\n--cost\tRequired\tExpense amount (currency symbols auto-removed)\n--quantity\tOptional\tQuantity (uses default if available)\n--unit\tOptional\tUnit (uses category mapping if available)\n--date\tOptional\tDate YYYY-MM-DD (defaults to today)\n--description\tOptional\tAdditional notes\n--photos\tOptional\tPhoto file paths to save\n--dry-run\tFlag\tPreview only, no write\nAdding a New Locale\n\nCreate locales/{code}.json based on existing locale files. Required fields:\n\nlanguage_name\nsheet_name\ncolumns_metric / columns_imperial\nphoto_prefix\nmessages\nunits_metric / units_imperial\ndefault_units_metric / default_units_imperial\nSupported Locales\nCode\tLanguage\tUnit Systems\nzh-TW\t繁體中文\tmetric, imperial\nen-US\tEnglish (US)\tmetric, imperial\nja-JP\t日本語\tmetric, imperial"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/huchengtw/vehicle-tracker",
    "publisherUrl": "https://clawhub.ai/huchengtw/vehicle-tracker",
    "owner": "huchengtw",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/vehicle-tracker",
    "downloadUrl": "https://openagent3.xyz/downloads/vehicle-tracker",
    "agentUrl": "https://openagent3.xyz/skills/vehicle-tracker/agent",
    "manifestUrl": "https://openagent3.xyz/skills/vehicle-tracker/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/vehicle-tracker/agent.md"
  }
}