{
  "schemaVersion": "1.0",
  "item": {
    "slug": "miniflux",
    "name": "Miniflux",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/shekohex/miniflux",
    "canonicalUrl": "https://clawhub.ai/shekohex/miniflux",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/miniflux",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=miniflux",
    "sourcePlatform": "tencent",
    "targetPlatform": "OpenClaw",
    "installMethod": "Manual import",
    "extraction": "Extract archive",
    "prerequisites": [
      "OpenClaw"
    ],
    "packageFormat": "ZIP package",
    "includedAssets": [
      "README.md",
      "SKILL.md",
      "scripts/miniflux-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. 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/miniflux"
    },
    "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/miniflux",
    "agentPageUrl": "https://openagent3.xyz/skills/miniflux/agent",
    "manifestUrl": "https://openagent3.xyz/skills/miniflux/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/miniflux/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": "Miniflux Skill",
        "body": "Browse, read, and manage Miniflux RSS/atom feed articles through a CLI."
      },
      {
        "title": "Quick Start",
        "body": "# List unread articles (brief format)\nuv run scripts/miniflux-cli.py list --status=unread --brief\n\n# Get article details\nuv run scripts/miniflux-cli.py get 123\n\n# Mark articles as read\nuv run scripts/miniflux-cli.py mark-read 123 456\n\n# Show article statistics (word count, reading time)\nuv run scripts/miniflux-cli.py stats --entry-id=123"
      },
      {
        "title": "Configuration",
        "body": "Configuration precedence (highest to lowest):\n\nCLI flags: --url, --api-key\nEnvironment variables: MINIFLUX_URL, MINIFLUX_API_KEY\nConfig file: ~/.local/share/miniflux/config.json (auto-created on first run)"
      },
      {
        "title": "Setup",
        "body": "# Option 1: Environment variables (recommended for agents)\nexport MINIFLUX_URL=\"https://miniflux.example.org\"\nexport MINIFLUX_API_KEY=\"your-api-key\"\n\n# Option 2: CLI flags (one-time, saves to config)\nuv run scripts/miniflux-cli.py --url=\"https://miniflux.example.org\" --api-key=\"xxx\" list"
      },
      {
        "title": "list - List Articles",
        "body": "List articles with optional filtering.\n\n# Unread articles (brief)\nuv run scripts/miniflux-cli.py list --status=unread --brief\n\n# From specific feed with summary\nuv run scripts/miniflux-cli.py list --feed=42 --summary\n\n# Search with limit\nuv run scripts/miniflux-cli.py list --search=\"python\" --limit=10\n\n# Starred articles\nuv run scripts/miniflux-cli.py list --starred\n\nFlags:\n\n--status={read,unread,removed} - Filter by status\n--feed=ID - Filter by feed ID\n--category=ID - Filter by category ID\n--starred - Show only starred\n--search=QUERY - Search articles\n--limit=N - Max number of entries\n--offset=N - Skip first N chars in content\n--content-limit=N - Max characters per article\n-b, --brief - Titles only\n-s, --summary - Title + excerpt\n-f, --full - Full content (default)\n--json - JSON output\n--plain - Single-line per entry"
      },
      {
        "title": "get - Get Article by ID",
        "body": "Fetch a single article with content control.\n\n# Full article\nuv run scripts/miniflux-cli.py get 123\n\n# First 2000 characters\nuv run scripts/miniflux-cli.py get 123 --limit=2000\n\n# Read from character 1000 to 2000 (pagination)\nuv run scripts/miniflux-cli.py get 123 --offset=1000 --limit=1000\n\nWhen content is truncated, shows: [...truncated, total: N chars]"
      },
      {
        "title": "mark-read - Mark as Read",
        "body": "Mark one or more articles as read.\n\n# Single article\nuv run scripts/miniflux-cli.py mark-read 123\n\n# Multiple articles\nuv run scripts/miniflux-cli.py mark-read 123 456 789"
      },
      {
        "title": "mark-unread - Mark as Unread",
        "body": "Mark one or more articles as unread.\n\nuv run scripts/miniflux-cli.py mark-unread 123"
      },
      {
        "title": "feeds - List Feeds",
        "body": "List all configured feeds.\n\n# Human-readable\nuv run scripts/miniflux-cli.py feeds\n\n# JSON format\nuv run scripts/miniflux-cli.py feeds --json"
      },
      {
        "title": "categories - List Categories",
        "body": "List all categories.\n\nuv run scripts/miniflux-cli.py categories"
      },
      {
        "title": "stats - Statistics",
        "body": "Show unread counts or article statistics.\n\n# Article statistics (word count, character count, reading time)\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\n# Global unread counts per feed\nuv run scripts/miniflux-cli.py stats"
      },
      {
        "title": "refresh - Refresh Feeds",
        "body": "Trigger feed refresh.\n\n# Refresh all feeds\nuv run scripts/miniflux-cli.py refresh --all\n\n# Refresh specific feed\nuv run scripts/miniflux-cli.py refresh --feed=42"
      },
      {
        "title": "search - Search Articles",
        "body": "Convenient alias for list --search.\n\nuv run scripts/miniflux-cli.py search \"rust\"\nuv run scripts/miniflux-cli.py search \"ai\" --status=unread --brief"
      },
      {
        "title": "Output Formats",
        "body": "--brief / -b - Quick overview (titles + feed + date)\n--summary / -s - Title + content preview (200 chars)\n--full / -f - Complete article content (default)\n--json - Raw JSON output for machine processing\n--plain - Single-line per entry (tab-separated)"
      },
      {
        "title": "Long Article Handling",
        "body": "For articles with large content (e.g., >5k words):\n\nCheck statistics first:\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\nShows word count, character count, reading time.\n\n\nUse pagination to read in chunks:\n# First 5000 chars\nuv run scripts/miniflux-cli.py get 123 --limit=5000\n\n# Next 5000 chars (chars 5000-10000)\nuv run scripts/miniflux-cli.py get 123 --offset=5000 --limit=5000\n\n\n\nFor summarization: If article is >5000 words, use a subagent to read and summarize:\n# Get stats to determine word count\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\n# If >5000 words, delegate to subagent for summarization"
      },
      {
        "title": "Error Handling",
        "body": "The CLI provides helpful error messages:\n\nInvalid credentials → Check MINIFLUX_API_KEY\nArticle not found → Suggests using list to browse\nMissing config → Shows config file location\nNo results → Clear message"
      },
      {
        "title": "Standard Flags",
        "body": "-v, --version - Show version\n-q, --quiet - Suppress non-error output\n-d, --debug - Enable debug output\n--no-color - Disable colored output\n--url=URL - Miniflux server URL\n--api-key=KEY - Miniflux API key"
      },
      {
        "title": "Daily Workflow",
        "body": "# Check what's unread\nuv run scripts/miniflux-cli.py list --status=unread --brief\n\n# Read interesting articles\nuv run scripts/miniflux-cli.py get 456\n\n# Mark as read\nuv run scripts/miniflux-cli.py mark-read 456"
      },
      {
        "title": "Research Mode",
        "body": "# Search for specific topics\nuv run scripts/miniflux-cli.py search \"machine learning\" --summary\n\n# Get full article content\nuv run scripts/miniflux-cli.py get 789"
      },
      {
        "title": "Batch Processing",
        "body": "# Get all unread as JSON for processing\nuv run scripts/miniflux-cli.py list --status=unread --json\n\n# Mark multiple as read\nuv run scripts/miniflux-cli.py mark-read 123 456 789\n\nFor complete help on any subcommand:\n\nuv run scripts/miniflux-cli.py <subcommand> --help"
      }
    ],
    "body": "Miniflux Skill\n\nBrowse, read, and manage Miniflux RSS/atom feed articles through a CLI.\n\nQuick Start\n# List unread articles (brief format)\nuv run scripts/miniflux-cli.py list --status=unread --brief\n\n# Get article details\nuv run scripts/miniflux-cli.py get 123\n\n# Mark articles as read\nuv run scripts/miniflux-cli.py mark-read 123 456\n\n# Show article statistics (word count, reading time)\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\nConfiguration\n\nConfiguration precedence (highest to lowest):\n\nCLI flags: --url, --api-key\nEnvironment variables: MINIFLUX_URL, MINIFLUX_API_KEY\nConfig file: ~/.local/share/miniflux/config.json (auto-created on first run)\nSetup\n# Option 1: Environment variables (recommended for agents)\nexport MINIFLUX_URL=\"https://miniflux.example.org\"\nexport MINIFLUX_API_KEY=\"your-api-key\"\n\n# Option 2: CLI flags (one-time, saves to config)\nuv run scripts/miniflux-cli.py --url=\"https://miniflux.example.org\" --api-key=\"xxx\" list\n\nSubcommands\nlist - List Articles\n\nList articles with optional filtering.\n\n# Unread articles (brief)\nuv run scripts/miniflux-cli.py list --status=unread --brief\n\n# From specific feed with summary\nuv run scripts/miniflux-cli.py list --feed=42 --summary\n\n# Search with limit\nuv run scripts/miniflux-cli.py list --search=\"python\" --limit=10\n\n# Starred articles\nuv run scripts/miniflux-cli.py list --starred\n\n\nFlags:\n\n--status={read,unread,removed} - Filter by status\n--feed=ID - Filter by feed ID\n--category=ID - Filter by category ID\n--starred - Show only starred\n--search=QUERY - Search articles\n--limit=N - Max number of entries\n--offset=N - Skip first N chars in content\n--content-limit=N - Max characters per article\n-b, --brief - Titles only\n-s, --summary - Title + excerpt\n-f, --full - Full content (default)\n--json - JSON output\n--plain - Single-line per entry\nget - Get Article by ID\n\nFetch a single article with content control.\n\n# Full article\nuv run scripts/miniflux-cli.py get 123\n\n# First 2000 characters\nuv run scripts/miniflux-cli.py get 123 --limit=2000\n\n# Read from character 1000 to 2000 (pagination)\nuv run scripts/miniflux-cli.py get 123 --offset=1000 --limit=1000\n\n\nWhen content is truncated, shows: [...truncated, total: N chars]\n\nmark-read - Mark as Read\n\nMark one or more articles as read.\n\n# Single article\nuv run scripts/miniflux-cli.py mark-read 123\n\n# Multiple articles\nuv run scripts/miniflux-cli.py mark-read 123 456 789\n\nmark-unread - Mark as Unread\n\nMark one or more articles as unread.\n\nuv run scripts/miniflux-cli.py mark-unread 123\n\nfeeds - List Feeds\n\nList all configured feeds.\n\n# Human-readable\nuv run scripts/miniflux-cli.py feeds\n\n# JSON format\nuv run scripts/miniflux-cli.py feeds --json\n\ncategories - List Categories\n\nList all categories.\n\nuv run scripts/miniflux-cli.py categories\n\nstats - Statistics\n\nShow unread counts or article statistics.\n\n# Article statistics (word count, character count, reading time)\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\n# Global unread counts per feed\nuv run scripts/miniflux-cli.py stats\n\nrefresh - Refresh Feeds\n\nTrigger feed refresh.\n\n# Refresh all feeds\nuv run scripts/miniflux-cli.py refresh --all\n\n# Refresh specific feed\nuv run scripts/miniflux-cli.py refresh --feed=42\n\nsearch - Search Articles\n\nConvenient alias for list --search.\n\nuv run scripts/miniflux-cli.py search \"rust\"\nuv run scripts/miniflux-cli.py search \"ai\" --status=unread --brief\n\nOutput Formats\n--brief / -b - Quick overview (titles + feed + date)\n--summary / -s - Title + content preview (200 chars)\n--full / -f - Complete article content (default)\n--json - Raw JSON output for machine processing\n--plain - Single-line per entry (tab-separated)\nLong Article Handling\n\nFor articles with large content (e.g., >5k words):\n\nCheck statistics first:\n\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\n\nShows word count, character count, reading time.\n\nUse pagination to read in chunks:\n\n# First 5000 chars\nuv run scripts/miniflux-cli.py get 123 --limit=5000\n\n# Next 5000 chars (chars 5000-10000)\nuv run scripts/miniflux-cli.py get 123 --offset=5000 --limit=5000\n\n\nFor summarization: If article is >5000 words, use a subagent to read and summarize:\n\n# Get stats to determine word count\nuv run scripts/miniflux-cli.py stats --entry-id=123\n\n# If >5000 words, delegate to subagent for summarization\n\nError Handling\n\nThe CLI provides helpful error messages:\n\nInvalid credentials → Check MINIFLUX_API_KEY\nArticle not found → Suggests using list to browse\nMissing config → Shows config file location\nNo results → Clear message\nStandard Flags\n-v, --version - Show version\n-q, --quiet - Suppress non-error output\n-d, --debug - Enable debug output\n--no-color - Disable colored output\n--url=URL - Miniflux server URL\n--api-key=KEY - Miniflux API key\nExamples\nDaily Workflow\n# Check what's unread\nuv run scripts/miniflux-cli.py list --status=unread --brief\n\n# Read interesting articles\nuv run scripts/miniflux-cli.py get 456\n\n# Mark as read\nuv run scripts/miniflux-cli.py mark-read 456\n\nResearch Mode\n# Search for specific topics\nuv run scripts/miniflux-cli.py search \"machine learning\" --summary\n\n# Get full article content\nuv run scripts/miniflux-cli.py get 789\n\nBatch Processing\n# Get all unread as JSON for processing\nuv run scripts/miniflux-cli.py list --status=unread --json\n\n# Mark multiple as read\nuv run scripts/miniflux-cli.py mark-read 123 456 789\n\n\nFor complete help on any subcommand:\n\nuv run scripts/miniflux-cli.py <subcommand> --help"
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/shekohex/miniflux",
    "publisherUrl": "https://clawhub.ai/shekohex/miniflux",
    "owner": "shekohex",
    "version": "0.1.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/miniflux",
    "downloadUrl": "https://openagent3.xyz/downloads/miniflux",
    "agentUrl": "https://openagent3.xyz/skills/miniflux/agent",
    "manifestUrl": "https://openagent3.xyz/skills/miniflux/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/miniflux/agent.md"
  }
}