{
  "schemaVersion": "1.0",
  "item": {
    "slug": "flux",
    "name": "Flux",
    "source": "tencent",
    "type": "skill",
    "category": "AI 智能",
    "sourceUrl": "https://clawhub.ai/EckmanTechLLC/flux",
    "canonicalUrl": "https://clawhub.ai/EckmanTechLLC/flux",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/flux",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=flux",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "references/api.md",
      "scripts/flux.sh"
    ],
    "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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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/flux"
    },
    "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/flux",
    "agentPageUrl": "https://openagent3.xyz/skills/flux/agent",
    "manifestUrl": "https://openagent3.xyz/skills/flux/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/flux/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. Then review README.md for any prerequisites, environment setup, or post-install checks. 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. Then review README.md for any prerequisites, environment setup, or post-install checks. Summarize what changed and any follow-up checks I should run."
      }
    ]
  },
  "documentation": {
    "source": "clawhub",
    "primaryDoc": "SKILL.md",
    "sections": [
      {
        "title": "Flux Skill",
        "body": "Flux is a persistent, shared, event-sourced world state engine. Agents publish immutable events, and Flux derives canonical state that all agents can observe."
      },
      {
        "title": "Key Concepts",
        "body": "Events: Immutable observations (temperature readings, status changes, etc.)\nEntities: State objects derived from events (sensors, devices, agents)\nProperties: Key-value attributes of entities (merged on update — only changed properties need to be sent)\nStreams: Logical event namespaces (sensors, agents, system)\nNamespaces: Multi-tenant isolation with token auth (optional, for public instances)"
      },
      {
        "title": "Prerequisites",
        "body": "Public instance: https://api.flux-universe.com (namespace purchased at flux-universe.com — name auto-assigned at purchase, e.g. dawn-coral)\nLocal instance: http://localhost:3000 (default, override with FLUX_URL env var)\n\nAuthentication: Set FLUX_TOKEN to your bearer token. Required for the public instance. Optional for local instances with auth disabled."
      },
      {
        "title": "Namespace Prefix",
        "body": "All entity IDs must be prefixed with your namespace:\nyournamespace/entity-name\n\nExample with namespace dawn-coral:\n\n./scripts/flux.sh publish sensors agent-01 dawn-coral/sensor-01 \\\n  '{\"temperature\":22.5}'\n./scripts/flux.sh get dawn-coral/sensor-01\n\nEntity IDs without a namespace prefix will be rejected on auth-enabled instances."
      },
      {
        "title": "Getting Started",
        "body": "First, verify your connection:\n\n./scripts/flux.sh health\n\nThen check the directory to see what's available on the Flux Universe:\n\n./scripts/flux.sh get flux-core/directory\n\nThe directory lists all active namespaces, entity counts, and total entities — a good way to discover what data is flowing through the system."
      },
      {
        "title": "Scripts",
        "body": "Use the provided bash script in the scripts/ directory:\n\nflux.sh - Main CLI tool"
      },
      {
        "title": "Publish Event",
        "body": "./scripts/flux.sh publish <stream> <source> <entity_id> <properties_json>\n\n# Replace dawn-coral with your namespace\n# Example: Publish sensor reading\n./scripts/flux.sh publish sensors agent-01 dawn-coral/temp-sensor-01 '{\"temperature\":22.5,\"unit\":\"celsius\"}'"
      },
      {
        "title": "Query Entity State",
        "body": "./scripts/flux.sh get <entity_id>\n\n# Replace dawn-coral with your namespace\n# Example: Get current sensor state\n./scripts/flux.sh get dawn-coral/temp-sensor-01"
      },
      {
        "title": "List All Entities",
        "body": "./scripts/flux.sh list\n\n# Filter by prefix\n./scripts/flux.sh list --prefix scada/"
      },
      {
        "title": "Delete Entity",
        "body": "./scripts/flux.sh delete <entity_id>\n\n# Example: Remove old test entity\n./scripts/flux.sh delete test/old-entity"
      },
      {
        "title": "Batch Publish Events",
        "body": "# Replace dawn-coral with your namespace\n./scripts/flux.sh batch '[\n  {\"stream\":\"sensors\",\"source\":\"agent-01\",\"payload\":{\"entity_id\":\"dawn-coral/sensor-01\",\"properties\":{\"temp\":22}}},\n  {\"stream\":\"sensors\",\"source\":\"agent-01\",\"payload\":{\"entity_id\":\"dawn-coral/sensor-02\",\"properties\":{\"temp\":23}}}\n]'"
      },
      {
        "title": "Check Connector Status",
        "body": "./scripts/flux.sh connectors"
      },
      {
        "title": "Admin Config",
        "body": "# Read runtime config\n./scripts/flux.sh admin-config\n\n# Update (requires FLUX_ADMIN_TOKEN)\n./scripts/flux.sh admin-config '{\"rate_limit_per_namespace_per_minute\": 5000}'"
      },
      {
        "title": "Multi-Agent Coordination",
        "body": "Agents publish observations to shared entities:\n\n# Replace dawn-coral with your namespace\n# Agent A observes temperature\nflux.sh publish sensors agent-a dawn-coral/room-101 '{\"temperature\":22.5}'\n\n# Agent B queries current state\nflux.sh get dawn-coral/room-101\n# Returns: {\"temperature\":22.5,...}"
      },
      {
        "title": "Status Tracking",
        "body": "Track service/system state:\n\n# Replace dawn-coral with your namespace\n# Publish status change\nflux.sh publish system monitor dawn-coral/api-gateway '{\"status\":\"healthy\",\"uptime\":3600}'\n\n# Query current status\nflux.sh get dawn-coral/api-gateway"
      },
      {
        "title": "API Endpoints",
        "body": "Event Ingestion:\n\nPOST /api/events — Publish single event (1 MB limit)\nPOST /api/events/batch — Publish multiple events (10 MB limit)\n\nState Query:\n\nGET /api/state/entities — List all entities (supports ?prefix= and ?namespace= filters)\nGET /api/state/entities/:id — Get specific entity\n\nEntity Management:\n\nDELETE /api/state/entities/:id — Delete single entity\nPOST /api/state/entities/delete — Batch delete (by namespace/prefix/IDs)\n\nReal-time Updates:\n\nGET /api/ws — WebSocket subscription\n\nConnectors:\n\nGET /api/connectors — List connectors and status\nPOST /api/connectors/:name/token — Store PAT credential\nDELETE /api/connectors/:name/token — Remove credential\n\nAdmin:\n\nGET /api/admin/config — Read runtime config\nPUT /api/admin/config — Update runtime config (requires FLUX_ADMIN_TOKEN)\n\nNamespaces (auth mode only):\n\nPOST /api/namespaces — Register namespace (returns auth token)"
      },
      {
        "title": "Notes",
        "body": "Events auto-generate UUIDs (no need to provide eventId)\nProperties merge on updates — only send changed properties, existing ones are preserved\nTimestamp field must be epoch milliseconds (i64) — required by the API, auto-generated by flux.sh\nState persists in Flux (survives restarts via NATS JetStream + snapshots)\nEntity IDs support / for namespacing (e.g., scada/pump-01)"
      }
    ],
    "body": "Flux Skill\n\nFlux is a persistent, shared, event-sourced world state engine. Agents publish immutable events, and Flux derives canonical state that all agents can observe.\n\nKey Concepts\nEvents: Immutable observations (temperature readings, status changes, etc.)\nEntities: State objects derived from events (sensors, devices, agents)\nProperties: Key-value attributes of entities (merged on update — only changed properties need to be sent)\nStreams: Logical event namespaces (sensors, agents, system)\nNamespaces: Multi-tenant isolation with token auth (optional, for public instances)\nPrerequisites\n\nPublic instance: https://api.flux-universe.com (namespace purchased at flux-universe.com — name auto-assigned at purchase, e.g. dawn-coral) Local instance: http://localhost:3000 (default, override with FLUX_URL env var)\n\nAuthentication: Set FLUX_TOKEN to your bearer token. Required for the public instance. Optional for local instances with auth disabled.\n\nNamespace Prefix\n\nAll entity IDs must be prefixed with your namespace: yournamespace/entity-name\n\nExample with namespace dawn-coral:\n\n./scripts/flux.sh publish sensors agent-01 dawn-coral/sensor-01 \\\n  '{\"temperature\":22.5}'\n./scripts/flux.sh get dawn-coral/sensor-01\n\n\nEntity IDs without a namespace prefix will be rejected on auth-enabled instances.\n\nGetting Started\n\nFirst, verify your connection:\n\n./scripts/flux.sh health\n\n\nThen check the directory to see what's available on the Flux Universe:\n\n./scripts/flux.sh get flux-core/directory\n\n\nThe directory lists all active namespaces, entity counts, and total entities — a good way to discover what data is flowing through the system.\n\nScripts\n\nUse the provided bash script in the scripts/ directory:\n\nflux.sh - Main CLI tool\nCommon Operations\nPublish Event\n./scripts/flux.sh publish <stream> <source> <entity_id> <properties_json>\n\n# Replace dawn-coral with your namespace\n# Example: Publish sensor reading\n./scripts/flux.sh publish sensors agent-01 dawn-coral/temp-sensor-01 '{\"temperature\":22.5,\"unit\":\"celsius\"}'\n\nQuery Entity State\n./scripts/flux.sh get <entity_id>\n\n# Replace dawn-coral with your namespace\n# Example: Get current sensor state\n./scripts/flux.sh get dawn-coral/temp-sensor-01\n\nList All Entities\n./scripts/flux.sh list\n\n# Filter by prefix\n./scripts/flux.sh list --prefix scada/\n\nDelete Entity\n./scripts/flux.sh delete <entity_id>\n\n# Example: Remove old test entity\n./scripts/flux.sh delete test/old-entity\n\nBatch Publish Events\n# Replace dawn-coral with your namespace\n./scripts/flux.sh batch '[\n  {\"stream\":\"sensors\",\"source\":\"agent-01\",\"payload\":{\"entity_id\":\"dawn-coral/sensor-01\",\"properties\":{\"temp\":22}}},\n  {\"stream\":\"sensors\",\"source\":\"agent-01\",\"payload\":{\"entity_id\":\"dawn-coral/sensor-02\",\"properties\":{\"temp\":23}}}\n]'\n\nCheck Connector Status\n./scripts/flux.sh connectors\n\nAdmin Config\n# Read runtime config\n./scripts/flux.sh admin-config\n\n# Update (requires FLUX_ADMIN_TOKEN)\n./scripts/flux.sh admin-config '{\"rate_limit_per_namespace_per_minute\": 5000}'\n\nUse Cases\nMulti-Agent Coordination\n\nAgents publish observations to shared entities:\n\n# Replace dawn-coral with your namespace\n# Agent A observes temperature\nflux.sh publish sensors agent-a dawn-coral/room-101 '{\"temperature\":22.5}'\n\n# Agent B queries current state\nflux.sh get dawn-coral/room-101\n# Returns: {\"temperature\":22.5,...}\n\nStatus Tracking\n\nTrack service/system state:\n\n# Replace dawn-coral with your namespace\n# Publish status change\nflux.sh publish system monitor dawn-coral/api-gateway '{\"status\":\"healthy\",\"uptime\":3600}'\n\n# Query current status\nflux.sh get dawn-coral/api-gateway\n\nAPI Endpoints\n\nEvent Ingestion:\n\nPOST /api/events — Publish single event (1 MB limit)\nPOST /api/events/batch — Publish multiple events (10 MB limit)\n\nState Query:\n\nGET /api/state/entities — List all entities (supports ?prefix= and ?namespace= filters)\nGET /api/state/entities/:id — Get specific entity\n\nEntity Management:\n\nDELETE /api/state/entities/:id — Delete single entity\nPOST /api/state/entities/delete — Batch delete (by namespace/prefix/IDs)\n\nReal-time Updates:\n\nGET /api/ws — WebSocket subscription\n\nConnectors:\n\nGET /api/connectors — List connectors and status\nPOST /api/connectors/:name/token — Store PAT credential\nDELETE /api/connectors/:name/token — Remove credential\n\nAdmin:\n\nGET /api/admin/config — Read runtime config\nPUT /api/admin/config — Update runtime config (requires FLUX_ADMIN_TOKEN)\n\nNamespaces (auth mode only):\n\nPOST /api/namespaces — Register namespace (returns auth token)\nNotes\nEvents auto-generate UUIDs (no need to provide eventId)\nProperties merge on updates — only send changed properties, existing ones are preserved\nTimestamp field must be epoch milliseconds (i64) — required by the API, auto-generated by flux.sh\nState persists in Flux (survives restarts via NATS JetStream + snapshots)\nEntity IDs support / for namespacing (e.g., scada/pump-01)"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/EckmanTechLLC/flux",
    "publisherUrl": "https://clawhub.ai/EckmanTechLLC/flux",
    "owner": "EckmanTechLLC",
    "version": "2.3.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/flux",
    "downloadUrl": "https://openagent3.xyz/downloads/flux",
    "agentUrl": "https://openagent3.xyz/skills/flux/agent",
    "manifestUrl": "https://openagent3.xyz/skills/flux/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/flux/agent.md"
  }
}