{
  "schemaVersion": "1.0",
  "item": {
    "slug": "clinkding",
    "name": "Clinkding - Linkding Bookmark Integration",
    "source": "tencent",
    "type": "skill",
    "category": "开发工具",
    "sourceUrl": "https://clawhub.ai/daveonkels/clinkding",
    "canonicalUrl": "https://clawhub.ai/daveonkels/clinkding",
    "targetPlatform": "OpenClaw"
  },
  "install": {
    "downloadMode": "redirect",
    "downloadUrl": "/downloads/clinkding",
    "sourceDownloadUrl": "https://wry-manatee-359.convex.site/api/v1/download?slug=clinkding",
    "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/clinkding"
    },
    "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/clinkding",
    "agentPageUrl": "https://openagent3.xyz/skills/clinkding/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clinkding/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clinkding/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": "clinkding - Linkding Bookmark Manager CLI",
        "body": "A modern Go-based CLI for managing bookmarks in linkding, a self-hosted bookmark manager."
      },
      {
        "title": "What This Does",
        "body": "Linkding is a self-hosted bookmark manager (like Pocket, Instapaper). clinkding is the CLI that lets you manage your bookmarks from the terminal or via AI agents.\n\nThink of it as:\n\nSave for later - Capture URLs you want to read\nSearchable library - Full-text search across titles, descriptions, tags\nOrganized collections - Tag and bundle related bookmarks\nPersonal archive - Keep important links with notes and metadata"
      },
      {
        "title": "Initial Setup",
        "body": "# Interactive configuration\nclinkding config init\n\n# Or manually configure\nclinkding config set url https://your-linkding-instance.com\nclinkding config set token YOUR_API_TOKEN\n\n# Test connection\nclinkding config test"
      },
      {
        "title": "Configuration File",
        "body": "Location: ~/.config/clinkding/config.yaml\n\nurl: https://linkding.example.com\ntoken: your-api-token-here\n\ndefaults:\n  bookmark_limit: 100\n  output_format: auto"
      },
      {
        "title": "Environment Variables",
        "body": "export LINKDING_URL=\"https://linkding.example.com\"\nexport LINKDING_TOKEN=\"your-api-token-here\""
      },
      {
        "title": "Bookmarks",
        "body": "List & Search\n\n# List recent bookmarks\nclinkding bookmarks list\n\n# Search by keyword\nclinkding bookmarks list --query \"golang tutorial\"\n\n# Filter by tag\nclinkding bookmarks list --query \"tag:programming\"\n\n# Recent bookmarks (last 7 days)\nclinkding bookmarks list --added-since \"7d\"\n\n# Unread bookmarks\nclinkding bookmarks list --query \"unread:yes\"\n\n# JSON output for scripting\nclinkding bookmarks list --json\n\n# Plain text (tab-separated)\nclinkding bookmarks list --plain\n\nCreate Bookmarks\n\n# Simple bookmark\nclinkding bookmarks create https://go.dev\n\n# With metadata\nclinkding bookmarks create https://go.dev \\\n  --title \"Go Programming Language\" \\\n  --tags \"golang,programming,reference\" \\\n  --description \"Official Go website\" \\\n  --unread\n\n# Check if URL already exists before creating\nclinkding bookmarks check https://go.dev\n\nUpdate Bookmarks\n\n# Update title\nclinkding bookmarks update 42 --title \"New Title\"\n\n# Add tags\nclinkding bookmarks update 42 --add-tags \"important,work\"\n\n# Remove tags\nclinkding bookmarks update 42 --remove-tags \"old-tag\"\n\n# Mark as read\nclinkding bookmarks update 42 --read\n\n# Update description\nclinkding bookmarks update 42 --description \"Updated notes\"\n\nGet Bookmark Details\n\n# Full details\nclinkding bookmarks get 42\n\n# JSON output\nclinkding bookmarks get 42 --json\n\nArchive & Delete\n\n# Archive (hide from main list)\nclinkding bookmarks archive 42\n\n# Unarchive\nclinkding bookmarks unarchive 42\n\n# Delete permanently\nclinkding bookmarks delete 42"
      },
      {
        "title": "Tags",
        "body": "# List all tags\nclinkding tags list\n\n# Create a tag\nclinkding tags create \"golang\"\n\n# Get tag details\nclinkding tags get 1\n\n# Plain text output\nclinkding tags list --plain"
      },
      {
        "title": "Bundles",
        "body": "Bundles are collections of related bookmarks.\n\n# List bundles\nclinkding bundles list\n\n# Create a bundle\nclinkding bundles create \"Go Resources\" \\\n  --description \"Everything related to Go programming\"\n\n# Update a bundle\nclinkding bundles update 1 --name \"Go Lang Resources\"\n\n# Get bundle details\nclinkding bundles get 1\n\n# Delete a bundle\nclinkding bundles delete 1"
      },
      {
        "title": "Assets",
        "body": "Upload and manage file attachments for bookmarks.\n\n# List assets for a bookmark\nclinkding assets list 42\n\n# Upload a file\nclinkding assets upload 42 ~/Documents/screenshot.png\n\n# Download an asset\nclinkding assets download 42 1 -o ./downloaded-file.png\n\n# Delete an asset\nclinkding assets delete 42 1"
      },
      {
        "title": "User Profile",
        "body": "# Get user profile info\nclinkding user profile"
      },
      {
        "title": "Save URL from Conversation",
        "body": "# User: \"Save this for later: https://example.com\"\nclinkding bookmarks create https://example.com \\\n  --title \"Article Title\" \\\n  --description \"Context from conversation\" \\\n  --tags \"topic,context\""
      },
      {
        "title": "Search Bookmarks",
        "body": "# User: \"Find my golang bookmarks\"\nclinkding bookmarks list --query \"golang\"\n\n# User: \"Show me unread programming articles\"\nclinkding bookmarks list --query \"tag:programming unread:yes\"\n\n# User: \"What did I save last week?\"\nclinkding bookmarks list --added-since \"7d\""
      },
      {
        "title": "Organize & Tag",
        "body": "# User: \"Tag bookmark 42 as important\"\nclinkding bookmarks update 42 --add-tags \"important\"\n\n# User: \"Create a bundle for my AI research links\"\nclinkding bundles create \"AI Research\" \\\n  --description \"Machine learning and AI papers\""
      },
      {
        "title": "Retrieve for Reading",
        "body": "# User: \"Give me something to read\"\nclinkding bookmarks list --query \"unread:yes\" --limit 5\n\n# User: \"Show me my golang tutorials\"\nclinkding bookmarks list --query \"tag:golang tag:tutorial\""
      },
      {
        "title": "Auto (Default)",
        "body": "Human-friendly tables and colors for terminal display."
      },
      {
        "title": "JSON",
        "body": "clinkding bookmarks list --json\n\nMachine-readable for scripting and agent parsing."
      },
      {
        "title": "Plain Text",
        "body": "clinkding bookmarks list --plain\n\nTab-separated values for pipe-friendly parsing."
      },
      {
        "title": "Relative Date Filtering",
        "body": "Supports human-friendly time ranges:\n\n# Last 24 hours\nclinkding bookmarks list --added-since \"24h\"\n\n# Last 7 days\nclinkding bookmarks list --added-since \"7d\"\n\n# Last 6 months\nclinkding bookmarks list --modified-since \"180d\"\n\nSupported units: h (hours), d (days), y (years)"
      },
      {
        "title": "Morning Reading Routine",
        "body": "# Check unread bookmarks\nclinkding bookmarks list --query \"unread:yes\"\n\n# Get top 5 most recent\nclinkding bookmarks list --limit 5"
      },
      {
        "title": "Save from Clipboard",
        "body": "# macOS\npbpaste | xargs -I {} clinkding bookmarks create {}\n\n# Linux\nxclip -o | xargs -I {} clinkding bookmarks create {}"
      },
      {
        "title": "Batch Operations",
        "body": "# Tag multiple bookmarks\nfor id in 42 43 44; do\n  clinkding bookmarks update $id --add-tags \"important\"\ndone\n\n# Archive old unread bookmarks\nclinkding bookmarks list --query \"unread:yes\" --added-since \"30d\" --plain | \\\n  while read id _; do\n    clinkding bookmarks archive \"$id\"\n  done"
      },
      {
        "title": "Backup Bookmarks",
        "body": "# Export all bookmarks as JSON\nclinkding bookmarks list --json > bookmarks-backup-$(date +%Y%m%d).json\n\n# Export specific tag\nclinkding bookmarks list --query \"tag:important\" --json > important.json"
      },
      {
        "title": "Global Flags",
        "body": "Available on all commands:\n\nFlagDescription-c, --config <file>Config file path-u, --url <url>Linkding instance URL-t, --token <token>API token--jsonOutput as JSON--plainOutput as plain text--no-colorDisable colors-q, --quietMinimal output-v, --verboseVerbose output"
      },
      {
        "title": "Exit Codes",
        "body": "CodeMeaning0Success1General error (API/network)2Invalid usage (bad flags/args)3Authentication error4Not found130Interrupted (Ctrl-C)"
      },
      {
        "title": "Test Configuration",
        "body": "# Verify settings\nclinkding config show\n\n# Test connection\nclinkding config test"
      },
      {
        "title": "Common Issues",
        "body": "Authentication Error:\n\nVerify API token in linkding web interface\nCheck URL includes protocol (https://)\nRemove trailing slashes from URL\n\nCommand-Specific Help:\n\nclinkding bookmarks --help\nclinkding bookmarks create --help"
      },
      {
        "title": "Links",
        "body": "GitHub: https://github.com/daveonkels/clinkding\nLinkding: https://github.com/sissbruecker/linkding\nHomebrew: brew install daveonkels/tap/clinkding"
      },
      {
        "title": "Homebrew (macOS/Linux)",
        "body": "brew install daveonkels/tap/clinkding"
      },
      {
        "title": "Go Install",
        "body": "go install github.com/daveonkels/clinkding@latest"
      },
      {
        "title": "Binary Download",
        "body": "Download from releases for your platform."
      },
      {
        "title": "Shell Completion",
        "body": "# Bash\nclinkding completion bash > /etc/bash_completion.d/clinkding\n\n# Zsh\nclinkding completion zsh > \"${fpath[1]}/_clinkding\"\n\n# Fish\nclinkding completion fish > ~/.config/fish/completions/clinkding.fish\n\nBuilt by: @daveonkels\nLicense: MIT"
      },
      {
        "title": "Adding URLs with Automatic Metadata",
        "body": "When a user says \"Add this to linkding\" or \"Save this URL\", follow this workflow:\n\n1. Extract metadata from the URL\n\nUse the summarize skill to get title and description:\n\n# Get page metadata\nsummarize url https://example.com --format json\n\nThis returns structured data with:\n\nTitle\nDescription/summary\nMain content\n\n2. Infer appropriate tags from content\n\nMap the content to existing canonical tags only. Do NOT create new tags.\n\nUse this canonical tag list (263 tags total):\n\nTech: webdev, design, programming, ai, cloud, devops, docker, linux, networking, security, privacy\nContent: content, media, photography, video, audio, books, podcasting\nBusiness: business, marketing, ecommerce, finance, career, productivity\nHome: smart-home, home-assistant, esphome, iot, home-improvement\nTools: tools, cli, git, github, editor, reference, documentation\nData: data, analytics, mysql, nosql\nCommunication: communication, email, messaging, slack\nEducation: education, guide, howto, research, testing\nLocations: texas, seattle, dallas (use sparingly)\n\nTag Selection Rules:\n\nUse 2-5 tags maximum\nChoose the most specific applicable tags\nIf unsure, default to broader categories (e.g., tools over generator)\nCheck existing tags first: clinkding tags list --plain | grep -i <keyword>\nNever create tags like: awesome, cool, interesting, resources, tips\n\n3. Create the bookmark with metadata\n\nclinkding bookmarks create \"https://example.com\" \\\n  --title \"Title from summarize\" \\\n  --description \"Summary from summarize (1-2 sentences)\" \\\n  --tags \"webdev,tools,reference\""
      },
      {
        "title": "Example Workflow",
        "body": "User: \"Save this to linkding: https://github.com/awesome/project\"\n\nAgent Actions:\n\n# 1. Check if already bookmarked\nclinkding bookmarks check https://github.com/awesome/project\n\n# 2. Get metadata (use summarize skill)\nsummarize url https://github.com/awesome/project --format json\n\n# 3. Analyze content and infer tags\n# From summary: \"A CLI tool for Docker container management\"\n# Canonical tags: docker, devops, cli, tools\n\n# 4. Create bookmark\nclinkding bookmarks create https://github.com/awesome/project \\\n  --title \"Awesome Project - Docker Container CLI\" \\\n  --description \"Command-line tool for managing Docker containers with enhanced features\" \\\n  --tags \"docker,devops,cli\""
      },
      {
        "title": "Tag Mapping Heuristics",
        "body": "Use these rules to map content → canonical tags:\n\nContent TypeCanonical TagsWeb development, HTML, CSS, JavaScriptwebdev, css, javascriptReact, frameworks, frontendwebdev, reactDesign, UI/UX, mockupsdesignPython, Go, Ruby codeprogramming, python/rubyDocker, K8s, DevOpsdocker, devops, cloudHome automation, ESP32, sensorssmart-home, esphome, iotAI, ML, LLMsai, llmProductivity tools, workflowsproductivity, toolsFinance, investing, cryptofinanceMarketing, SEO, adsmarketingShopping, deals, storesecommerceTutorials, guides, docsguide, howto, documentationSecurity, privacy, encryptionsecurity, privacyLocal (DFW/Seattle)texas, seattle"
      },
      {
        "title": "Validation Before Creating",
        "body": "Always run these checks:\n\n# 1. Does URL already exist?\nclinkding bookmarks check <url>\n\n# 2. Do the tags exist?\nclinkding tags list --plain | grep -iE \"^(tag1|tag2|tag3)$\"\n\n# 3. Are we using canonical tags?\n# Cross-reference against the 263 canonical tags\n# Never create new tags without explicit user request"
      },
      {
        "title": "User Requests to Save Multiple Links",
        "body": "If user provides multiple URLs:\n\n# Process each URL separately with metadata extraction\nfor url in url1 url2 url3; do\n  # Get metadata\n  # Infer tags\n  # Create bookmark\ndone"
      },
      {
        "title": "Updating Existing Bookmarks",
        "body": "If user says \"Update that bookmark\" or \"Add tags to my last save\":\n\n# Get most recent bookmark\nrecent_id=$(clinkding bookmarks list --limit 1 --plain | cut -f1)\n\n# Add tags (don't remove existing ones unless asked)\nclinkding bookmarks update $recent_id --add-tags \"new-tag\"\n\n# Update description\nclinkding bookmarks update $recent_id --description \"Updated notes\""
      },
      {
        "title": "Key Principles",
        "body": "Always fetch metadata - Use summarize to get good titles/descriptions\nUse existing tags - Never create new tags without checking canonical list\nBe selective - 2-5 tags max, choose the most specific applicable\nValidate first - Check for duplicates before creating\nProvide context - Include brief description explaining why it's useful"
      },
      {
        "title": "Current Canonical Tag Structure",
        "body": "Dave's linkding instance has 263 canonical tags after consolidation from 17,189 duplicates.\n\nTop categories (by bookmark count):\n\npinboard (4,987) - Legacy import tag\nifttt (2,639) - Legacy import tag\nwebdev (1,679) - Web development\ndesign (561) - Design/UI/UX\ncontent (416) - Content/writing\ncloud (383) - Cloud/hosting/SaaS\nbusiness (364) - Business/strategy\necommerce (308) - Shopping/marketplace\nsmart-home (295) - Home automation\nproductivity (291) - Productivity tools\n\nGolden Rule: When in doubt, use broader existing tags rather than creating new specific ones."
      }
    ],
    "body": "clinkding - Linkding Bookmark Manager CLI\n\nA modern Go-based CLI for managing bookmarks in linkding, a self-hosted bookmark manager.\n\nWhat This Does\n\nLinkding is a self-hosted bookmark manager (like Pocket, Instapaper). clinkding is the CLI that lets you manage your bookmarks from the terminal or via AI agents.\n\nThink of it as:\n\nSave for later - Capture URLs you want to read\nSearchable library - Full-text search across titles, descriptions, tags\nOrganized collections - Tag and bundle related bookmarks\nPersonal archive - Keep important links with notes and metadata\nQuick Start\nInitial Setup\n# Interactive configuration\nclinkding config init\n\n# Or manually configure\nclinkding config set url https://your-linkding-instance.com\nclinkding config set token YOUR_API_TOKEN\n\n# Test connection\nclinkding config test\n\nConfiguration File\n\nLocation: ~/.config/clinkding/config.yaml\n\nurl: https://linkding.example.com\ntoken: your-api-token-here\n\ndefaults:\n  bookmark_limit: 100\n  output_format: auto\n\nEnvironment Variables\nexport LINKDING_URL=\"https://linkding.example.com\"\nexport LINKDING_TOKEN=\"your-api-token-here\"\n\nCore Commands\nBookmarks\nList & Search\n# List recent bookmarks\nclinkding bookmarks list\n\n# Search by keyword\nclinkding bookmarks list --query \"golang tutorial\"\n\n# Filter by tag\nclinkding bookmarks list --query \"tag:programming\"\n\n# Recent bookmarks (last 7 days)\nclinkding bookmarks list --added-since \"7d\"\n\n# Unread bookmarks\nclinkding bookmarks list --query \"unread:yes\"\n\n# JSON output for scripting\nclinkding bookmarks list --json\n\n# Plain text (tab-separated)\nclinkding bookmarks list --plain\n\nCreate Bookmarks\n# Simple bookmark\nclinkding bookmarks create https://go.dev\n\n# With metadata\nclinkding bookmarks create https://go.dev \\\n  --title \"Go Programming Language\" \\\n  --tags \"golang,programming,reference\" \\\n  --description \"Official Go website\" \\\n  --unread\n\n# Check if URL already exists before creating\nclinkding bookmarks check https://go.dev\n\nUpdate Bookmarks\n# Update title\nclinkding bookmarks update 42 --title \"New Title\"\n\n# Add tags\nclinkding bookmarks update 42 --add-tags \"important,work\"\n\n# Remove tags\nclinkding bookmarks update 42 --remove-tags \"old-tag\"\n\n# Mark as read\nclinkding bookmarks update 42 --read\n\n# Update description\nclinkding bookmarks update 42 --description \"Updated notes\"\n\nGet Bookmark Details\n# Full details\nclinkding bookmarks get 42\n\n# JSON output\nclinkding bookmarks get 42 --json\n\nArchive & Delete\n# Archive (hide from main list)\nclinkding bookmarks archive 42\n\n# Unarchive\nclinkding bookmarks unarchive 42\n\n# Delete permanently\nclinkding bookmarks delete 42\n\nTags\n# List all tags\nclinkding tags list\n\n# Create a tag\nclinkding tags create \"golang\"\n\n# Get tag details\nclinkding tags get 1\n\n# Plain text output\nclinkding tags list --plain\n\nBundles\n\nBundles are collections of related bookmarks.\n\n# List bundles\nclinkding bundles list\n\n# Create a bundle\nclinkding bundles create \"Go Resources\" \\\n  --description \"Everything related to Go programming\"\n\n# Update a bundle\nclinkding bundles update 1 --name \"Go Lang Resources\"\n\n# Get bundle details\nclinkding bundles get 1\n\n# Delete a bundle\nclinkding bundles delete 1\n\nAssets\n\nUpload and manage file attachments for bookmarks.\n\n# List assets for a bookmark\nclinkding assets list 42\n\n# Upload a file\nclinkding assets upload 42 ~/Documents/screenshot.png\n\n# Download an asset\nclinkding assets download 42 1 -o ./downloaded-file.png\n\n# Delete an asset\nclinkding assets delete 42 1\n\nUser Profile\n# Get user profile info\nclinkding user profile\n\nAgent Usage Patterns\nSave URL from Conversation\n# User: \"Save this for later: https://example.com\"\nclinkding bookmarks create https://example.com \\\n  --title \"Article Title\" \\\n  --description \"Context from conversation\" \\\n  --tags \"topic,context\"\n\nSearch Bookmarks\n# User: \"Find my golang bookmarks\"\nclinkding bookmarks list --query \"golang\"\n\n# User: \"Show me unread programming articles\"\nclinkding bookmarks list --query \"tag:programming unread:yes\"\n\n# User: \"What did I save last week?\"\nclinkding bookmarks list --added-since \"7d\"\n\nOrganize & Tag\n# User: \"Tag bookmark 42 as important\"\nclinkding bookmarks update 42 --add-tags \"important\"\n\n# User: \"Create a bundle for my AI research links\"\nclinkding bundles create \"AI Research\" \\\n  --description \"Machine learning and AI papers\"\n\nRetrieve for Reading\n# User: \"Give me something to read\"\nclinkding bookmarks list --query \"unread:yes\" --limit 5\n\n# User: \"Show me my golang tutorials\"\nclinkding bookmarks list --query \"tag:golang tag:tutorial\"\n\nOutput Formats\nAuto (Default)\n\nHuman-friendly tables and colors for terminal display.\n\nJSON\nclinkding bookmarks list --json\n\n\nMachine-readable for scripting and agent parsing.\n\nPlain Text\nclinkding bookmarks list --plain\n\n\nTab-separated values for pipe-friendly parsing.\n\nRelative Date Filtering\n\nSupports human-friendly time ranges:\n\n# Last 24 hours\nclinkding bookmarks list --added-since \"24h\"\n\n# Last 7 days\nclinkding bookmarks list --added-since \"7d\"\n\n# Last 6 months\nclinkding bookmarks list --modified-since \"180d\"\n\n\nSupported units: h (hours), d (days), y (years)\n\nCommon Workflows\nMorning Reading Routine\n# Check unread bookmarks\nclinkding bookmarks list --query \"unread:yes\"\n\n# Get top 5 most recent\nclinkding bookmarks list --limit 5\n\nSave from Clipboard\n# macOS\npbpaste | xargs -I {} clinkding bookmarks create {}\n\n# Linux\nxclip -o | xargs -I {} clinkding bookmarks create {}\n\nBatch Operations\n# Tag multiple bookmarks\nfor id in 42 43 44; do\n  clinkding bookmarks update $id --add-tags \"important\"\ndone\n\n# Archive old unread bookmarks\nclinkding bookmarks list --query \"unread:yes\" --added-since \"30d\" --plain | \\\n  while read id _; do\n    clinkding bookmarks archive \"$id\"\n  done\n\nBackup Bookmarks\n# Export all bookmarks as JSON\nclinkding bookmarks list --json > bookmarks-backup-$(date +%Y%m%d).json\n\n# Export specific tag\nclinkding bookmarks list --query \"tag:important\" --json > important.json\n\nGlobal Flags\n\nAvailable on all commands:\n\nFlag\tDescription\n-c, --config <file>\tConfig file path\n-u, --url <url>\tLinkding instance URL\n-t, --token <token>\tAPI token\n--json\tOutput as JSON\n--plain\tOutput as plain text\n--no-color\tDisable colors\n-q, --quiet\tMinimal output\n-v, --verbose\tVerbose output\nExit Codes\nCode\tMeaning\n0\tSuccess\n1\tGeneral error (API/network)\n2\tInvalid usage (bad flags/args)\n3\tAuthentication error\n4\tNot found\n130\tInterrupted (Ctrl-C)\nTroubleshooting\nTest Configuration\n# Verify settings\nclinkding config show\n\n# Test connection\nclinkding config test\n\nCommon Issues\n\nAuthentication Error:\n\nVerify API token in linkding web interface\nCheck URL includes protocol (https://)\nRemove trailing slashes from URL\n\nCommand-Specific Help:\n\nclinkding bookmarks --help\nclinkding bookmarks create --help\n\nLinks\nGitHub: https://github.com/daveonkels/clinkding\nLinkding: https://github.com/sissbruecker/linkding\nHomebrew: brew install daveonkels/tap/clinkding\nInstallation\nHomebrew (macOS/Linux)\nbrew install daveonkels/tap/clinkding\n\nGo Install\ngo install github.com/daveonkels/clinkding@latest\n\nBinary Download\n\nDownload from releases for your platform.\n\nShell Completion\n# Bash\nclinkding completion bash > /etc/bash_completion.d/clinkding\n\n# Zsh\nclinkding completion zsh > \"${fpath[1]}/_clinkding\"\n\n# Fish\nclinkding completion fish > ~/.config/fish/completions/clinkding.fish\n\n\nBuilt by: @daveonkels\nLicense: MIT\n\nAgent Workflows for Smart Bookmark Creation\nAdding URLs with Automatic Metadata\n\nWhen a user says \"Add this to linkding\" or \"Save this URL\", follow this workflow:\n\n1. Extract metadata from the URL\n\nUse the summarize skill to get title and description:\n\n# Get page metadata\nsummarize url https://example.com --format json\n\n\nThis returns structured data with:\n\nTitle\nDescription/summary\nMain content\n\n2. Infer appropriate tags from content\n\nMap the content to existing canonical tags only. Do NOT create new tags.\n\nUse this canonical tag list (263 tags total):\n\nTech: webdev, design, programming, ai, cloud, devops, docker, linux, networking, security, privacy\nContent: content, media, photography, video, audio, books, podcasting\nBusiness: business, marketing, ecommerce, finance, career, productivity\nHome: smart-home, home-assistant, esphome, iot, home-improvement\nTools: tools, cli, git, github, editor, reference, documentation\nData: data, analytics, mysql, nosql\nCommunication: communication, email, messaging, slack\nEducation: education, guide, howto, research, testing\nLocations: texas, seattle, dallas (use sparingly)\n\nTag Selection Rules:\n\nUse 2-5 tags maximum\nChoose the most specific applicable tags\nIf unsure, default to broader categories (e.g., tools over generator)\nCheck existing tags first: clinkding tags list --plain | grep -i <keyword>\nNever create tags like: awesome, cool, interesting, resources, tips\n\n3. Create the bookmark with metadata\n\nclinkding bookmarks create \"https://example.com\" \\\n  --title \"Title from summarize\" \\\n  --description \"Summary from summarize (1-2 sentences)\" \\\n  --tags \"webdev,tools,reference\"\n\nExample Workflow\n\nUser: \"Save this to linkding: https://github.com/awesome/project\"\n\nAgent Actions:\n\n# 1. Check if already bookmarked\nclinkding bookmarks check https://github.com/awesome/project\n\n# 2. Get metadata (use summarize skill)\nsummarize url https://github.com/awesome/project --format json\n\n# 3. Analyze content and infer tags\n# From summary: \"A CLI tool for Docker container management\"\n# Canonical tags: docker, devops, cli, tools\n\n# 4. Create bookmark\nclinkding bookmarks create https://github.com/awesome/project \\\n  --title \"Awesome Project - Docker Container CLI\" \\\n  --description \"Command-line tool for managing Docker containers with enhanced features\" \\\n  --tags \"docker,devops,cli\"\n\nTag Mapping Heuristics\n\nUse these rules to map content → canonical tags:\n\nContent Type\tCanonical Tags\nWeb development, HTML, CSS, JavaScript\twebdev, css, javascript\nReact, frameworks, frontend\twebdev, react\nDesign, UI/UX, mockups\tdesign\nPython, Go, Ruby code\tprogramming, python/ruby\nDocker, K8s, DevOps\tdocker, devops, cloud\nHome automation, ESP32, sensors\tsmart-home, esphome, iot\nAI, ML, LLMs\tai, llm\nProductivity tools, workflows\tproductivity, tools\nFinance, investing, crypto\tfinance\nMarketing, SEO, ads\tmarketing\nShopping, deals, stores\tecommerce\nTutorials, guides, docs\tguide, howto, documentation\nSecurity, privacy, encryption\tsecurity, privacy\nLocal (DFW/Seattle)\ttexas, seattle\nValidation Before Creating\n\nAlways run these checks:\n\n# 1. Does URL already exist?\nclinkding bookmarks check <url>\n\n# 2. Do the tags exist?\nclinkding tags list --plain | grep -iE \"^(tag1|tag2|tag3)$\"\n\n# 3. Are we using canonical tags?\n# Cross-reference against the 263 canonical tags\n# Never create new tags without explicit user request\n\nUser Requests to Save Multiple Links\n\nIf user provides multiple URLs:\n\n# Process each URL separately with metadata extraction\nfor url in url1 url2 url3; do\n  # Get metadata\n  # Infer tags\n  # Create bookmark\ndone\n\nUpdating Existing Bookmarks\n\nIf user says \"Update that bookmark\" or \"Add tags to my last save\":\n\n# Get most recent bookmark\nrecent_id=$(clinkding bookmarks list --limit 1 --plain | cut -f1)\n\n# Add tags (don't remove existing ones unless asked)\nclinkding bookmarks update $recent_id --add-tags \"new-tag\"\n\n# Update description\nclinkding bookmarks update $recent_id --description \"Updated notes\"\n\nKey Principles\nAlways fetch metadata - Use summarize to get good titles/descriptions\nUse existing tags - Never create new tags without checking canonical list\nBe selective - 2-5 tags max, choose the most specific applicable\nValidate first - Check for duplicates before creating\nProvide context - Include brief description explaining why it's useful\nCurrent Canonical Tag Structure\n\nDave's linkding instance has 263 canonical tags after consolidation from 17,189 duplicates.\n\nTop categories (by bookmark count):\n\npinboard (4,987) - Legacy import tag\nifttt (2,639) - Legacy import tag\nwebdev (1,679) - Web development\ndesign (561) - Design/UI/UX\ncontent (416) - Content/writing\ncloud (383) - Cloud/hosting/SaaS\nbusiness (364) - Business/strategy\necommerce (308) - Shopping/marketplace\nsmart-home (295) - Home automation\nproductivity (291) - Productivity tools\n\nGolden Rule: When in doubt, use broader existing tags rather than creating new specific ones."
  },
  "trust": {
    "sourceLabel": "tencent",
    "provenanceUrl": "https://clawhub.ai/daveonkels/clinkding",
    "publisherUrl": "https://clawhub.ai/daveonkels/clinkding",
    "owner": "daveonkels",
    "version": "1.0.0",
    "license": null,
    "verificationStatus": "Indexed source record"
  },
  "links": {
    "detailUrl": "https://openagent3.xyz/skills/clinkding",
    "downloadUrl": "https://openagent3.xyz/downloads/clinkding",
    "agentUrl": "https://openagent3.xyz/skills/clinkding/agent",
    "manifestUrl": "https://openagent3.xyz/skills/clinkding/agent.json",
    "briefUrl": "https://openagent3.xyz/skills/clinkding/agent.md"
  }
}