Requirements
- Target platform
- OpenClaw
- Install method
- Manual import
- Extraction
- Extract archive
- Prerequisites
- OpenClaw
- Primary doc
- SKILL.md
Manage linkding bookmarks - save URLs, search, tag, organize, and retrieve your personal bookmark collection. Use when the user wants to save links, search bookmarks, manage tags, or organize their reading list.
Manage linkding bookmarks - save URLs, search, tag, organize, and retrieve your personal bookmark collection. Use when the user wants to save links, search bookmarks, manage tags, or organize their reading list.
Hand the extracted package to your coding agent with a concrete install brief instead of figuring it out manually.
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.
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.
A modern Go-based CLI for managing bookmarks in linkding, a self-hosted bookmark manager.
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. Think of it as: Save for later - Capture URLs you want to read Searchable library - Full-text search across titles, descriptions, tags Organized collections - Tag and bundle related bookmarks Personal archive - Keep important links with notes and metadata
# Interactive configuration clinkding config init # Or manually configure clinkding config set url https://your-linkding-instance.com clinkding config set token YOUR_API_TOKEN # Test connection clinkding config test
Location: ~/.config/clinkding/config.yaml url: https://linkding.example.com token: your-api-token-here defaults: bookmark_limit: 100 output_format: auto
export LINKDING_URL="https://linkding.example.com" export LINKDING_TOKEN="your-api-token-here"
List & Search # List recent bookmarks clinkding bookmarks list # Search by keyword clinkding bookmarks list --query "golang tutorial" # Filter by tag clinkding bookmarks list --query "tag:programming" # Recent bookmarks (last 7 days) clinkding bookmarks list --added-since "7d" # Unread bookmarks clinkding bookmarks list --query "unread:yes" # JSON output for scripting clinkding bookmarks list --json # Plain text (tab-separated) clinkding bookmarks list --plain Create Bookmarks # Simple bookmark clinkding bookmarks create https://go.dev # With metadata clinkding bookmarks create https://go.dev \ --title "Go Programming Language" \ --tags "golang,programming,reference" \ --description "Official Go website" \ --unread # Check if URL already exists before creating clinkding bookmarks check https://go.dev Update Bookmarks # Update title clinkding bookmarks update 42 --title "New Title" # Add tags clinkding bookmarks update 42 --add-tags "important,work" # Remove tags clinkding bookmarks update 42 --remove-tags "old-tag" # Mark as read clinkding bookmarks update 42 --read # Update description clinkding bookmarks update 42 --description "Updated notes" Get Bookmark Details # Full details clinkding bookmarks get 42 # JSON output clinkding bookmarks get 42 --json Archive & Delete # Archive (hide from main list) clinkding bookmarks archive 42 # Unarchive clinkding bookmarks unarchive 42 # Delete permanently clinkding bookmarks delete 42
# List all tags clinkding tags list # Create a tag clinkding tags create "golang" # Get tag details clinkding tags get 1 # Plain text output clinkding tags list --plain
Bundles are collections of related bookmarks. # List bundles clinkding bundles list # Create a bundle clinkding bundles create "Go Resources" \ --description "Everything related to Go programming" # Update a bundle clinkding bundles update 1 --name "Go Lang Resources" # Get bundle details clinkding bundles get 1 # Delete a bundle clinkding bundles delete 1
Upload and manage file attachments for bookmarks. # List assets for a bookmark clinkding assets list 42 # Upload a file clinkding assets upload 42 ~/Documents/screenshot.png # Download an asset clinkding assets download 42 1 -o ./downloaded-file.png # Delete an asset clinkding assets delete 42 1
# Get user profile info clinkding user profile
# User: "Save this for later: https://example.com" clinkding bookmarks create https://example.com \ --title "Article Title" \ --description "Context from conversation" \ --tags "topic,context"
# User: "Find my golang bookmarks" clinkding bookmarks list --query "golang" # User: "Show me unread programming articles" clinkding bookmarks list --query "tag:programming unread:yes" # User: "What did I save last week?" clinkding bookmarks list --added-since "7d"
# User: "Tag bookmark 42 as important" clinkding bookmarks update 42 --add-tags "important" # User: "Create a bundle for my AI research links" clinkding bundles create "AI Research" \ --description "Machine learning and AI papers"
# User: "Give me something to read" clinkding bookmarks list --query "unread:yes" --limit 5 # User: "Show me my golang tutorials" clinkding bookmarks list --query "tag:golang tag:tutorial"
Human-friendly tables and colors for terminal display.
clinkding bookmarks list --json Machine-readable for scripting and agent parsing.
clinkding bookmarks list --plain Tab-separated values for pipe-friendly parsing.
Supports human-friendly time ranges: # Last 24 hours clinkding bookmarks list --added-since "24h" # Last 7 days clinkding bookmarks list --added-since "7d" # Last 6 months clinkding bookmarks list --modified-since "180d" Supported units: h (hours), d (days), y (years)
# Check unread bookmarks clinkding bookmarks list --query "unread:yes" # Get top 5 most recent clinkding bookmarks list --limit 5
# macOS pbpaste | xargs -I {} clinkding bookmarks create {} # Linux xclip -o | xargs -I {} clinkding bookmarks create {}
# Tag multiple bookmarks for id in 42 43 44; do clinkding bookmarks update $id --add-tags "important" done # Archive old unread bookmarks clinkding bookmarks list --query "unread:yes" --added-since "30d" --plain | \ while read id _; do clinkding bookmarks archive "$id" done
# Export all bookmarks as JSON clinkding bookmarks list --json > bookmarks-backup-$(date +%Y%m%d).json # Export specific tag clinkding bookmarks list --query "tag:important" --json > important.json
Available on all commands: FlagDescription-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
CodeMeaning0Success1General error (API/network)2Invalid usage (bad flags/args)3Authentication error4Not found130Interrupted (Ctrl-C)
# Verify settings clinkding config show # Test connection clinkding config test
Authentication Error: Verify API token in linkding web interface Check URL includes protocol (https://) Remove trailing slashes from URL Command-Specific Help: clinkding bookmarks --help clinkding bookmarks create --help
GitHub: https://github.com/daveonkels/clinkding Linkding: https://github.com/sissbruecker/linkding Homebrew: brew install daveonkels/tap/clinkding
brew install daveonkels/tap/clinkding
go install github.com/daveonkels/clinkding@latest
Download from releases for your platform.
# Bash clinkding completion bash > /etc/bash_completion.d/clinkding # Zsh clinkding completion zsh > "${fpath[1]}/_clinkding" # Fish clinkding completion fish > ~/.config/fish/completions/clinkding.fish Built by: @daveonkels License: MIT
When a user says "Add this to linkding" or "Save this URL", follow this workflow: 1. Extract metadata from the URL Use the summarize skill to get title and description: # Get page metadata summarize url https://example.com --format json This returns structured data with: Title Description/summary Main content 2. Infer appropriate tags from content Map the content to existing canonical tags only. Do NOT create new tags. Use this canonical tag list (263 tags total): Tech: webdev, design, programming, ai, cloud, devops, docker, linux, networking, security, privacy Content: content, media, photography, video, audio, books, podcasting Business: business, marketing, ecommerce, finance, career, productivity Home: smart-home, home-assistant, esphome, iot, home-improvement Tools: tools, cli, git, github, editor, reference, documentation Data: data, analytics, mysql, nosql Communication: communication, email, messaging, slack Education: education, guide, howto, research, testing Locations: texas, seattle, dallas (use sparingly) Tag Selection Rules: Use 2-5 tags maximum Choose the most specific applicable tags If unsure, default to broader categories (e.g., tools over generator) Check existing tags first: clinkding tags list --plain | grep -i <keyword> Never create tags like: awesome, cool, interesting, resources, tips 3. Create the bookmark with metadata clinkding bookmarks create "https://example.com" \ --title "Title from summarize" \ --description "Summary from summarize (1-2 sentences)" \ --tags "webdev,tools,reference"
User: "Save this to linkding: https://github.com/awesome/project" Agent Actions: # 1. Check if already bookmarked clinkding bookmarks check https://github.com/awesome/project # 2. Get metadata (use summarize skill) summarize url https://github.com/awesome/project --format json # 3. Analyze content and infer tags # From summary: "A CLI tool for Docker container management" # Canonical tags: docker, devops, cli, tools # 4. Create bookmark clinkding bookmarks create https://github.com/awesome/project \ --title "Awesome Project - Docker Container CLI" \ --description "Command-line tool for managing Docker containers with enhanced features" \ --tags "docker,devops,cli"
Use these rules to map content โ canonical tags: Content 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
Always run these checks: # 1. Does URL already exist? clinkding bookmarks check <url> # 2. Do the tags exist? clinkding tags list --plain | grep -iE "^(tag1|tag2|tag3)$" # 3. Are we using canonical tags? # Cross-reference against the 263 canonical tags # Never create new tags without explicit user request
If user provides multiple URLs: # Process each URL separately with metadata extraction for url in url1 url2 url3; do # Get metadata # Infer tags # Create bookmark done
If user says "Update that bookmark" or "Add tags to my last save": # Get most recent bookmark recent_id=$(clinkding bookmarks list --limit 1 --plain | cut -f1) # Add tags (don't remove existing ones unless asked) clinkding bookmarks update $recent_id --add-tags "new-tag" # Update description clinkding bookmarks update $recent_id --description "Updated notes"
Always fetch metadata - Use summarize to get good titles/descriptions Use existing tags - Never create new tags without checking canonical list Be selective - 2-5 tags max, choose the most specific applicable Validate first - Check for duplicates before creating Provide context - Include brief description explaining why it's useful
Dave's linkding instance has 263 canonical tags after consolidation from 17,189 duplicates. Top categories (by bookmark count): pinboard (4,987) - Legacy import tag ifttt (2,639) - Legacy import tag webdev (1,679) - Web development design (561) - Design/UI/UX content (416) - Content/writing cloud (383) - Cloud/hosting/SaaS business (364) - Business/strategy ecommerce (308) - Shopping/marketplace smart-home (295) - Home automation productivity (291) - Productivity tools Golden Rule: When in doubt, use broader existing tags rather than creating new specific ones.
Code helpers, APIs, CLIs, browser automation, testing, and developer operations.
Largest current source with strong distribution and engagement signals.