{
  "schemaVersion": "1.0",
  "item": {
    "slug": "open-webui",
    "name": "Open WebUI",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/0x7466/open-webui",
    "canonicalUrl": "https://clawhub.ai/0x7466/open-webui",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/open-webui",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=open-webui",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "SKILL.md",
      "scripts/openwebui-cli.py"
    ],
    "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/open-webui"
    },
    "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/open-webui",
    "agentPageUrl": "https://openagent3.xyz/skills/open-webui/agent",
    "manifestUrl": "https://openagent3.xyz/skills/open-webui/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/open-webui/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": "Open WebUI API Skill",
        "body": "Complete API integration for Open WebUI - a unified interface for LLMs including Ollama, OpenAI, and other providers."
      },
      {
        "title": "When to Use",
        "body": "Activate this skill when the user wants to:\n\nList available models from their Open WebUI instance\nSend chat completions to models through Open WebUI\nUpload files for RAG (Retrieval Augmented Generation)\nManage knowledge collections and add files to them\nUse Ollama proxy endpoints (generate, embed, pull models)\nGenerate images or process audio through Open WebUI\nCheck Ollama status or manage models (load, unload, delete)\nCreate or manage pipelines\n\nDo NOT activate for:\n\nInstalling or configuring Open WebUI server itself (use system admin skills)\nGeneral questions about what Open WebUI is (use general knowledge)\nTroubleshooting Open WebUI server issues (use troubleshooting guides)\nLocal file operations unrelated to Open WebUI API"
      },
      {
        "title": "Environment Variables (Recommended)",
        "body": "export OPENWEBUI_URL=\"http://localhost:3000\"  # Your Open WebUI instance URL\nexport OPENWEBUI_TOKEN=\"your-api-key-here\"    # From Settings > Account in Open WebUI"
      },
      {
        "title": "Authentication",
        "body": "Bearer Token authentication required\nToken obtained from Open WebUI: Settings > Account\nAlternative: JWT token for advanced use cases"
      },
      {
        "title": "Activation Triggers",
        "body": "Example requests that SHOULD activate this skill:\n\n\"List all models available in my Open WebUI\"\n\"Send a chat completion to llama3.2 via Open WebUI with prompt 'Explain quantum computing'\"\n\"Upload /path/to/document.pdf to Open WebUI knowledge base\"\n\"Create a new knowledge collection called 'Research Papers' in Open WebUI\"\n\"Generate an embedding for 'Open WebUI is great' using the nomic-embed-text model\"\n\"Pull the llama3.2 model through Open WebUI Ollama proxy\"\n\"Get Ollama status from my Open WebUI instance\"\n\"Chat with gpt-4 using my Open WebUI with RAG enabled on collection 'docs'\"\n\"Generate an image using Open WebUI with prompt 'A futuristic city'\"\n\"Delete the old-model from Open WebUI Ollama\"\n\nExample requests that should NOT activate this skill:\n\n\"How do I install Open WebUI?\" (Installation/Admin)\n\"What is Open WebUI?\" (General knowledge)\n\"Configure the Open WebUI environment variables\" (Server config)\n\"Troubleshoot why Open WebUI won't start\" (Server troubleshooting)\n\"Compare Open WebUI to other UIs\" (General comparison)"
      },
      {
        "title": "1. Configuration Check",
        "body": "Verify OPENWEBUI_URL and OPENWEBUI_TOKEN are set\nValidate URL format (http/https)\nTest connection with GET /api/models or /ollama/api/tags"
      },
      {
        "title": "2. Operation Execution",
        "body": "Use the CLI tool or direct API calls:\n\n# Using the CLI tool (recommended)\npython3 scripts/openwebui-cli.py --help\npython3 scripts/openwebui-cli.py models list\npython3 scripts/openwebui-cli.py chat --model llama3.2 --message \"Hello\"\n\n# Using curl (alternative)\ncurl -H \"Authorization: Bearer $OPENWEBUI_TOKEN\" \\\n  \"$OPENWEBUI_URL/api/models\""
      },
      {
        "title": "3. Response Handling",
        "body": "HTTP 200: Success - parse and present JSON\nHTTP 401: Authentication failed - check token\nHTTP 404: Endpoint/model not found\nHTTP 422: Validation error - check request parameters"
      },
      {
        "title": "Chat & Completions",
        "body": "EndpointMethodDescription/api/chat/completionsPOSTOpenAI-compatible chat completions/api/modelsGETList all available models/ollama/api/chatPOSTNative Ollama chat completion/ollama/api/generatePOSTOllama text generation"
      },
      {
        "title": "Ollama Proxy",
        "body": "EndpointMethodDescription/ollama/api/tagsGETList Ollama models/ollama/api/pullPOSTPull/download a model/ollama/api/deleteDELETEDelete a model/ollama/api/embedPOSTGenerate embeddings/ollama/api/psGETList loaded models"
      },
      {
        "title": "RAG & Knowledge",
        "body": "EndpointMethodDescription/api/v1/files/POSTUpload file for RAG/api/v1/files/{id}/process/statusGETCheck file processing status/api/v1/knowledge/GET/POSTList/create knowledge collections/api/v1/knowledge/{id}/file/addPOSTAdd file to knowledge base"
      },
      {
        "title": "Images & Audio",
        "body": "EndpointMethodDescription/api/v1/images/generationsPOSTGenerate images/api/v1/audio/speechPOSTText-to-speech/api/v1/audio/transcriptionsPOSTSpeech-to-text"
      },
      {
        "title": "Confirmation Required",
        "body": "Always confirm before:\n\nDeleting models (DELETE /ollama/api/delete) - Irreversible\nPulling large models - May take significant time/bandwidth\nDeleting knowledge collections - Data loss risk\nUploading sensitive files - Privacy consideration"
      },
      {
        "title": "Redaction & Security",
        "body": "Never log the full API token - Redact to sk-...XXXX format\nSanitize file paths - Verify files exist before upload\nValidate URLs - Ensure HTTPS for external instances\nHandle errors gracefully - Don't expose stack traces with tokens"
      },
      {
        "title": "Workspace Safety",
        "body": "File uploads default to workspace directory\nConfirm before accessing files outside workspace\nNo sudo/root operations required (pure API client)"
      },
      {
        "title": "List Models",
        "body": "python3 scripts/openwebui-cli.py models list"
      },
      {
        "title": "Chat Completion",
        "body": "python3 scripts/openwebui-cli.py chat \\\n  --model llama3.2 \\\n  --message \"Explain the benefits of RAG\" \\\n  --stream"
      },
      {
        "title": "Upload File for RAG",
        "body": "python3 scripts/openwebui-cli.py files upload \\\n  --file /path/to/document.pdf \\\n  --process"
      },
      {
        "title": "Add File to Knowledge Base",
        "body": "python3 scripts/openwebui-cli.py knowledge add-file \\\n  --collection-id \"research-papers\" \\\n  --file-id \"doc-123-uuid\""
      },
      {
        "title": "Generate Embeddings (Ollama)",
        "body": "python3 scripts/openwebui-cli.py ollama embed \\\n  --model nomic-embed-text \\\n  --input \"Open WebUI is great for LLM management\""
      },
      {
        "title": "Pull Model (Confirmation Required)",
        "body": "python3 scripts/openwebui-cli.py ollama pull \\\n  --model llama3.2:70b\n# Agent must confirm: \"This will download ~40GB. Proceed? [y/N]\""
      },
      {
        "title": "Check Ollama Status",
        "body": "python3 scripts/openwebui-cli.py ollama status"
      },
      {
        "title": "Error Handling",
        "body": "ErrorCauseSolution401 UnauthorizedInvalid or missing tokenVerify OPENWEBUI_TOKEN404 Not FoundModel/endpoint doesn't existCheck model name spelling422 Validation ErrorInvalid parametersCheck request body format400 Bad RequestFile still processingWait for processing completionConnection refusedWrong URLVerify OPENWEBUI_URL"
      },
      {
        "title": "File Processing Race Condition",
        "body": "Files uploaded for RAG are processed asynchronously. Before adding to knowledge:\n\nUpload file → get file_id\nPoll /api/v1/files/{id}/process/status until status: \"completed\"\nThen add to knowledge collection"
      },
      {
        "title": "Large Model Downloads",
        "body": "Pulling models (e.g., 70B parameters) can take hours. Always:\n\nConfirm with user before starting\nShow progress if possible\nAllow cancellation"
      },
      {
        "title": "Streaming Responses",
        "body": "Chat completions support streaming. Use --stream flag for real-time output or collect full response for non-streaming."
      },
      {
        "title": "CLI Tool Reference",
        "body": "The included CLI tool (scripts/openwebui-cli.py) provides:\n\nAutomatic authentication from environment variables\nStructured JSON output with optional formatting\nBuilt-in help for all commands\nError handling with user-friendly messages\nProgress indicators for long operations\n\nRun python3 scripts/openwebui-cli.py --help for full usage."
      }
    ],
    "body": "Open WebUI API Skill\n\nComplete API integration for Open WebUI - a unified interface for LLMs including Ollama, OpenAI, and other providers.\n\nWhen to Use\n\nActivate this skill when the user wants to:\n\nList available models from their Open WebUI instance\nSend chat completions to models through Open WebUI\nUpload files for RAG (Retrieval Augmented Generation)\nManage knowledge collections and add files to them\nUse Ollama proxy endpoints (generate, embed, pull models)\nGenerate images or process audio through Open WebUI\nCheck Ollama status or manage models (load, unload, delete)\nCreate or manage pipelines\n\nDo NOT activate for:\n\nInstalling or configuring Open WebUI server itself (use system admin skills)\nGeneral questions about what Open WebUI is (use general knowledge)\nTroubleshooting Open WebUI server issues (use troubleshooting guides)\nLocal file operations unrelated to Open WebUI API\nPrerequisites\nEnvironment Variables (Recommended)\nexport OPENWEBUI_URL=\"http://localhost:3000\"  # Your Open WebUI instance URL\nexport OPENWEBUI_TOKEN=\"your-api-key-here\"    # From Settings > Account in Open WebUI\n\nAuthentication\nBearer Token authentication required\nToken obtained from Open WebUI: Settings > Account\nAlternative: JWT token for advanced use cases\nActivation Triggers\n\nExample requests that SHOULD activate this skill:\n\n\"List all models available in my Open WebUI\"\n\"Send a chat completion to llama3.2 via Open WebUI with prompt 'Explain quantum computing'\"\n\"Upload /path/to/document.pdf to Open WebUI knowledge base\"\n\"Create a new knowledge collection called 'Research Papers' in Open WebUI\"\n\"Generate an embedding for 'Open WebUI is great' using the nomic-embed-text model\"\n\"Pull the llama3.2 model through Open WebUI Ollama proxy\"\n\"Get Ollama status from my Open WebUI instance\"\n\"Chat with gpt-4 using my Open WebUI with RAG enabled on collection 'docs'\"\n\"Generate an image using Open WebUI with prompt 'A futuristic city'\"\n\"Delete the old-model from Open WebUI Ollama\"\n\nExample requests that should NOT activate this skill:\n\n\"How do I install Open WebUI?\" (Installation/Admin)\n\"What is Open WebUI?\" (General knowledge)\n\"Configure the Open WebUI environment variables\" (Server config)\n\"Troubleshoot why Open WebUI won't start\" (Server troubleshooting)\n\"Compare Open WebUI to other UIs\" (General comparison)\nWorkflow\n1. Configuration Check\nVerify OPENWEBUI_URL and OPENWEBUI_TOKEN are set\nValidate URL format (http/https)\nTest connection with GET /api/models or /ollama/api/tags\n2. Operation Execution\n\nUse the CLI tool or direct API calls:\n\n# Using the CLI tool (recommended)\npython3 scripts/openwebui-cli.py --help\npython3 scripts/openwebui-cli.py models list\npython3 scripts/openwebui-cli.py chat --model llama3.2 --message \"Hello\"\n\n# Using curl (alternative)\ncurl -H \"Authorization: Bearer $OPENWEBUI_TOKEN\" \\\n  \"$OPENWEBUI_URL/api/models\"\n\n3. Response Handling\nHTTP 200: Success - parse and present JSON\nHTTP 401: Authentication failed - check token\nHTTP 404: Endpoint/model not found\nHTTP 422: Validation error - check request parameters\nCore API Endpoints\nChat & Completions\nEndpoint\tMethod\tDescription\n/api/chat/completions\tPOST\tOpenAI-compatible chat completions\n/api/models\tGET\tList all available models\n/ollama/api/chat\tPOST\tNative Ollama chat completion\n/ollama/api/generate\tPOST\tOllama text generation\nOllama Proxy\nEndpoint\tMethod\tDescription\n/ollama/api/tags\tGET\tList Ollama models\n/ollama/api/pull\tPOST\tPull/download a model\n/ollama/api/delete\tDELETE\tDelete a model\n/ollama/api/embed\tPOST\tGenerate embeddings\n/ollama/api/ps\tGET\tList loaded models\nRAG & Knowledge\nEndpoint\tMethod\tDescription\n/api/v1/files/\tPOST\tUpload file for RAG\n/api/v1/files/{id}/process/status\tGET\tCheck file processing status\n/api/v1/knowledge/\tGET/POST\tList/create knowledge collections\n/api/v1/knowledge/{id}/file/add\tPOST\tAdd file to knowledge base\nImages & Audio\nEndpoint\tMethod\tDescription\n/api/v1/images/generations\tPOST\tGenerate images\n/api/v1/audio/speech\tPOST\tText-to-speech\n/api/v1/audio/transcriptions\tPOST\tSpeech-to-text\nSafety & Boundaries\nConfirmation Required\n\nAlways confirm before:\n\nDeleting models (DELETE /ollama/api/delete) - Irreversible\nPulling large models - May take significant time/bandwidth\nDeleting knowledge collections - Data loss risk\nUploading sensitive files - Privacy consideration\nRedaction & Security\nNever log the full API token - Redact to sk-...XXXX format\nSanitize file paths - Verify files exist before upload\nValidate URLs - Ensure HTTPS for external instances\nHandle errors gracefully - Don't expose stack traces with tokens\nWorkspace Safety\nFile uploads default to workspace directory\nConfirm before accessing files outside workspace\nNo sudo/root operations required (pure API client)\nExamples\nList Models\npython3 scripts/openwebui-cli.py models list\n\nChat Completion\npython3 scripts/openwebui-cli.py chat \\\n  --model llama3.2 \\\n  --message \"Explain the benefits of RAG\" \\\n  --stream\n\nUpload File for RAG\npython3 scripts/openwebui-cli.py files upload \\\n  --file /path/to/document.pdf \\\n  --process\n\nAdd File to Knowledge Base\npython3 scripts/openwebui-cli.py knowledge add-file \\\n  --collection-id \"research-papers\" \\\n  --file-id \"doc-123-uuid\"\n\nGenerate Embeddings (Ollama)\npython3 scripts/openwebui-cli.py ollama embed \\\n  --model nomic-embed-text \\\n  --input \"Open WebUI is great for LLM management\"\n\nPull Model (Confirmation Required)\npython3 scripts/openwebui-cli.py ollama pull \\\n  --model llama3.2:70b\n# Agent must confirm: \"This will download ~40GB. Proceed? [y/N]\"\n\nCheck Ollama Status\npython3 scripts/openwebui-cli.py ollama status\n\nError Handling\nError\tCause\tSolution\n401 Unauthorized\tInvalid or missing token\tVerify OPENWEBUI_TOKEN\n404 Not Found\tModel/endpoint doesn't exist\tCheck model name spelling\n422 Validation Error\tInvalid parameters\tCheck request body format\n400 Bad Request\tFile still processing\tWait for processing completion\nConnection refused\tWrong URL\tVerify OPENWEBUI_URL\nEdge Cases\nFile Processing Race Condition\n\nFiles uploaded for RAG are processed asynchronously. Before adding to knowledge:\n\nUpload file → get file_id\nPoll /api/v1/files/{id}/process/status until status: \"completed\"\nThen add to knowledge collection\nLarge Model Downloads\n\nPulling models (e.g., 70B parameters) can take hours. Always:\n\nConfirm with user before starting\nShow progress if possible\nAllow cancellation\nStreaming Responses\n\nChat completions support streaming. Use --stream flag for real-time output or collect full response for non-streaming.\n\nCLI Tool Reference\n\nThe included CLI tool (scripts/openwebui-cli.py) provides:\n\nAutomatic authentication from environment variables\nStructured JSON output with optional formatting\nBuilt-in help for all commands\nError handling with user-friendly messages\nProgress indicators for long operations\n\nRun python3 scripts/openwebui-cli.py --help for full usage."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/0x7466/open-webui",
    "publisherUrl": "https://clawhub.ai/0x7466/open-webui",
    "owner": "0x7466",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/open-webui",
    "downloadUrl": "https://openagent3.xyz/downloads/open-webui",
    "agentUrl": "https://openagent3.xyz/skills/open-webui/agent",
    "manifestUrl": "https://openagent3.xyz/skills/open-webui/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/open-webui/agent.md"
  }
}