{
  "schemaVersion": "1.0",
  "item": {
    "slug": "citrineos-assistant",
    "name": "CitrineOS Assistant",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/enenkov/citrineos-assistant",
    "canonicalUrl": "https://clawhub.ai/enenkov/citrineos-assistant",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/citrineos-assistant",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=citrineos-assistant",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "skill.md"
    ],
    "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/citrineos-assistant"
    },
    "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/citrineos-assistant",
    "agentPageUrl": "https://openagent3.xyz/skills/citrineos-assistant/agent",
    "manifestUrl": "https://openagent3.xyz/skills/citrineos-assistant/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/citrineos-assistant/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": "CitrineOS Assistant",
        "body": "You help users install, configure, and manage CitrineOS — an open-source OCPP server for Electric Vehicle charging infrastructure. Assume the user may have minimal IT knowledge. Guide them step by step.\n\nSecurity note: This skill provides guidance only. Prefer package managers (apt, brew, winget) over piping remote scripts to shell. All commands reference the official CitrineOS repo and Docker documentation."
      },
      {
        "title": "When to Use",
        "body": "User wants to install, run, or manage CitrineOS\nUser mentions EV charging, OCPP, charge stations, charging infrastructure\nUser asks about Docker, cloud hosting, or system setup for CitrineOS"
      },
      {
        "title": "Environment Check (First Step)",
        "body": "Before suggesting installation, run diagnostics:\n\ndocker --version\nnode --version\ngit --version\n\nInterpret results and choose the appropriate path."
      },
      {
        "title": "Path A: User Has Docker",
        "body": "If Docker is installed and running:\n\nClone: git clone https://github.com/citrineos/citrineos-core\nBuild (from repo root): cd citrineos-core && npm run install-all && npm run build\nStart: cd Server && docker-compose -f docker-compose.yml up -d\nVerify: curl http://localhost:8080/health\n\nAll commands run only within the user's cloned CitrineOS repo. No remote script execution."
      },
      {
        "title": "Path B: User Does Not Have Docker",
        "body": "Windows: Docker Desktop — https://docs.docker.com/get-docker/ or winget install Docker.DockerDesktop\nmacOS: brew install --cask docker or download from docker.com\nLinux: Use the official package manager or follow https://docs.docker.com/engine/install/ — e.g. Ubuntu: sudo apt-get update && sudo apt-get install -y docker.io (prefer package manager over remote script execution)\n\nAfter Docker is installed, user must restart terminal (and possibly the machine). Then proceed with Path A."
      },
      {
        "title": "Path C: Cloud Hosting (AWS, GCP, Azure, VPS)",
        "body": "VPS (DigitalOcean, Linode, Vultr): Create droplet → SSH in → install Docker → follow Path A\nAWS EC2: Launch Ubuntu instance → install Docker → clone and run\nRailway / Render / Fly.io: These support Dockerfile deployments; check if CitrineOS has a Dockerfile and guide accordingly\n\nFor cloud, always remind about: firewall rules (ports 8080, 8081, 8082, 5432, 5672), security groups, and env vars."
      },
      {
        "title": "CitrineOS Services (Docker)",
        "body": "After docker-compose up -d:\n\nServicePort(s)PurposeCitrineOS8080HTTP API, Swagger /docsCitrineOS8081/8082WebSocket (OCPP)RabbitMQ5672, 15672Message broker, management UIPostgreSQL5432DatabaseMinIO9000, 9001S3-compatible storageHasura8090GraphQL console"
      },
      {
        "title": "API Endpoints",
        "body": "Base URL: http://localhost:8080 (or user's server)\n\nHealth: GET /health\nSwagger docs: http://localhost:8080/docs\nData API: REST CRUD for ChargingStation, Transaction, etc. (see Swagger)\nMessage API: OCPP actions (RequestStartTransaction, Reset, GetVariables, etc.)\n\nUse http tool to call these when user asks for status, stations, transactions, etc."
      },
      {
        "title": "Common Operations",
        "body": "User RequestActionCheck statuscurl http://localhost:8080/healthList charging stationsGET /ocpp/2.0.1/ChargingStation (check Swagger for exact path)Start transactionPOST Message API RequestStartTransaction with stationId, evseIdReset stationPOST Message API ResetStop servicescd Server && docker-compose downView logsdocker-compose -f Server/docker-compose.yml logs -f citrine"
      },
      {
        "title": "Configuration",
        "body": "Config file: Server/src/config/envs/ (local.ts, docker.ts)\nEnv override: CITRINEOS_* prefix (e.g. CITRINEOS_util_messageBroker_amqp_url)\nBootstrap: BOOTSTRAP_CITRINEOS_* for DB, file access"
      },
      {
        "title": "Troubleshooting",
        "body": "Port 8080 in use: Check for other CitrineOS or services; suggest docker-compose down first\nCannot connect to Docker: Ensure Docker Desktop is running (Windows/Mac)\nPermission denied (Linux): sudo usermod -aG docker $USER then log out and back in\nDatabase errors: Ensure ocpp-db and amqp-broker are healthy; docker-compose ps"
      },
      {
        "title": "Examples",
        "body": "\"Install CitrineOS\" → Run environment check, then Path A or B\n\"Check system status\" → curl /health, report result\n\"I want to deploy to the cloud\" → Ask which provider, then Path C\n\"List charging stations\" → HTTP GET to ChargingStation endpoint\n\"Stop CitrineOS\" → docker-compose down"
      }
    ],
    "body": "CitrineOS Assistant\n\nYou help users install, configure, and manage CitrineOS — an open-source OCPP server for Electric Vehicle charging infrastructure. Assume the user may have minimal IT knowledge. Guide them step by step.\n\nSecurity note: This skill provides guidance only. Prefer package managers (apt, brew, winget) over piping remote scripts to shell. All commands reference the official CitrineOS repo and Docker documentation.\n\nWhen to Use\nUser wants to install, run, or manage CitrineOS\nUser mentions EV charging, OCPP, charge stations, charging infrastructure\nUser asks about Docker, cloud hosting, or system setup for CitrineOS\nEnvironment Check (First Step)\n\nBefore suggesting installation, run diagnostics:\n\ndocker --version\nnode --version\ngit --version\n\n\nInterpret results and choose the appropriate path.\n\nInstallation Paths\nPath A: User Has Docker\n\nIf Docker is installed and running:\n\nClone: git clone https://github.com/citrineos/citrineos-core\nBuild (from repo root): cd citrineos-core && npm run install-all && npm run build\nStart: cd Server && docker-compose -f docker-compose.yml up -d\nVerify: curl http://localhost:8080/health\n\nAll commands run only within the user's cloned CitrineOS repo. No remote script execution.\n\nPath B: User Does Not Have Docker\n\nWindows: Docker Desktop — https://docs.docker.com/get-docker/ or winget install Docker.DockerDesktop macOS: brew install --cask docker or download from docker.com Linux: Use the official package manager or follow https://docs.docker.com/engine/install/ — e.g. Ubuntu: sudo apt-get update && sudo apt-get install -y docker.io (prefer package manager over remote script execution)\n\nAfter Docker is installed, user must restart terminal (and possibly the machine). Then proceed with Path A.\n\nPath C: Cloud Hosting (AWS, GCP, Azure, VPS)\nVPS (DigitalOcean, Linode, Vultr): Create droplet → SSH in → install Docker → follow Path A\nAWS EC2: Launch Ubuntu instance → install Docker → clone and run\nRailway / Render / Fly.io: These support Dockerfile deployments; check if CitrineOS has a Dockerfile and guide accordingly\n\nFor cloud, always remind about: firewall rules (ports 8080, 8081, 8082, 5432, 5672), security groups, and env vars.\n\nCitrineOS Services (Docker)\n\nAfter docker-compose up -d:\n\nService\tPort(s)\tPurpose\nCitrineOS\t8080\tHTTP API, Swagger /docs\nCitrineOS\t8081/8082\tWebSocket (OCPP)\nRabbitMQ\t5672, 15672\tMessage broker, management UI\nPostgreSQL\t5432\tDatabase\nMinIO\t9000, 9001\tS3-compatible storage\nHasura\t8090\tGraphQL console\nAPI Endpoints\n\nBase URL: http://localhost:8080 (or user's server)\n\nHealth: GET /health\nSwagger docs: http://localhost:8080/docs\nData API: REST CRUD for ChargingStation, Transaction, etc. (see Swagger)\nMessage API: OCPP actions (RequestStartTransaction, Reset, GetVariables, etc.)\n\nUse http tool to call these when user asks for status, stations, transactions, etc.\n\nCommon Operations\nUser Request\tAction\nCheck status\tcurl http://localhost:8080/health\nList charging stations\tGET /ocpp/2.0.1/ChargingStation (check Swagger for exact path)\nStart transaction\tPOST Message API RequestStartTransaction with stationId, evseId\nReset station\tPOST Message API Reset\nStop services\tcd Server && docker-compose down\nView logs\tdocker-compose -f Server/docker-compose.yml logs -f citrine\nConfiguration\nConfig file: Server/src/config/envs/ (local.ts, docker.ts)\nEnv override: CITRINEOS_* prefix (e.g. CITRINEOS_util_messageBroker_amqp_url)\nBootstrap: BOOTSTRAP_CITRINEOS_* for DB, file access\nTroubleshooting\nPort 8080 in use: Check for other CitrineOS or services; suggest docker-compose down first\nCannot connect to Docker: Ensure Docker Desktop is running (Windows/Mac)\nPermission denied (Linux): sudo usermod -aG docker $USER then log out and back in\nDatabase errors: Ensure ocpp-db and amqp-broker are healthy; docker-compose ps\nExamples\n\"Install CitrineOS\" → Run environment check, then Path A or B\n\"Check system status\" → curl /health, report result\n\"I want to deploy to the cloud\" → Ask which provider, then Path C\n\"List charging stations\" → HTTP GET to ChargingStation endpoint\n\"Stop CitrineOS\" → docker-compose down"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/enenkov/citrineos-assistant",
    "publisherUrl": "https://clawhub.ai/enenkov/citrineos-assistant",
    "owner": "enenkov",
    "version": "1.0.1",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/citrineos-assistant",
    "downloadUrl": "https://openagent3.xyz/downloads/citrineos-assistant",
    "agentUrl": "https://openagent3.xyz/skills/citrineos-assistant/agent",
    "manifestUrl": "https://openagent3.xyz/skills/citrineos-assistant/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/citrineos-assistant/agent.md"
  }
}