Back to Skills
    🦞

    clinkding

    Manage linkding bookmarks - save URLs, search, tag, organize

    By @daveonkels
    View on GitHub
    SKILL.md
    ---
    name: clinkding
    description: 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.
    homepage: https://github.com/daveonkels/clinkding
    metadata: {"clawdis":{"emoji":"🔖","requires":{"bins":["clinkding"]},"install":[{"id":"homebrew","kind":"brew","formula":"daveonkels/tap/clinkding","bins":["clinkding"],"label":"Install clinkding (Homebrew)"},{"id":"go","kind":"go","module":"github.com/daveonkels/clinkding@latest","bins":["clinkding"],"label":"Install clinkding (Go)"}]}}
    ---
    
    # clinkding - Linkding Bookmark Manager CLI
    
    A modern Go-based CLI for managing bookmarks in [linkding](https://github.com/sissbruecker/linkding), a self-hosted bookmark manager.
    
    ## What This Does
    
    **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
    
    ## Quick Start
    
    ### Initial Setup
    
    ```bash
    # 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
    ```
    
    ### Configuration File
    
    Location: `~/.config/clinkding/config.yaml`
    
    ```yaml
    url: https://linkding.example.com
    token: your-api-token-here
    
    defaults:
      bookmark_limit: 100
      output_format: auto
    ```
    
    ### Environment Variables
    
    ```bash
    export LINKDING_URL="https://linkding.example.com"
    export LINKDING_TOKEN="your-api-token-here"
    ```
    
    ## Core Commands
    
    ### Bookmarks
    
    #### List & Search
    
    ```bash
    # 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
    
    ```bash
    # 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
    
    ```bash
    # 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
    
    ```bash
    # Full details
    clinkding bookmarks get 42
    
    # JSON output
    clinkding bookmarks get 42 --json
    ```
    
    #### Archive & Delete
    
    ```bash
    # Archive (hide from main list)
    clinkding bookmarks archive 42
    
    # Unarchive
    clinkding bookmarks unarchive 42
    
    # Delete permanently
    clinkding bookmarks delete 42
    ```
    
    ### Tags
    
    ```bash
    # 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
    
    Bundles are collections of related bookmarks.
    
    ```bash
    # 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
    ```
    
    ### Assets
    
    Upload and manage file attachments for bookmarks.
    
    ```bash
    # 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
    ```
    
    ### User Profile
    
    ```bash
    # Get user profile info
    clinkding user profile
    ```
    
    ## Agent Usage Patterns
    
    ### Save URL from Conversation
    
    ```bash
    # User: "Save this for later: https://example.com"
    clinkding bookmarks create https://example.com \
      --title "Article Title" \
      --description "Context from conversation" \
      --tags "topic,context"
    ```
    
    ### Search Bookmarks
    
    ```bash
    # 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"
    ```
    
    ### Organize & Tag
    
    ```bash
    # 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"
    ```
    
    ### Retrieve for Reading
    
    ```bash
    # 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"
    ```
    
    ## Output Formats
    
    ### Auto (Default)
    Human-friendly tables and colors for terminal display.
    
    ### JSON
    ```bash
    clinkding bookmarks list --json
    ```
    Machine-readable for scripting and agent parsing.
    
    ### Plain Text
    ```bash
    clinkding bookmarks list --plain
    ```
    Tab-separated values for pipe-friendly parsing.
    
    ## Relative Date Filtering
    
    Supports human-friendly time ranges:
    
    ```bash
    # 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)
    
    ## Common Workflows
    
    ### Morning Reading Routine
    
    ```bash
    # Check unread bookmarks
    clinkding bookmarks list --query "unread:yes"
    
    # Get top 5 most recent
    clinkding bookmarks list --limit 5
    ```
    
    ### Save from Clipboard
    
    ```bash
    # macOS
    pbpaste | xargs -I {} clinkding bookmarks create {}
    
    # Linux
    xclip -o | xargs -I {} clinkding bookmarks create {}
    ```
    
    ### Batch Operations
    
    ```bash
    # 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
    ```
    
    ### Backup Bookmarks
    
    ```bash
    # 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
    ```
    
    ## Global Flags
    
    Available on all commands:
    
    | Flag | Description |
    |------|-------------|
    | `-c, --config <file>` | Config file path |
    | `-u, --url <url>` | Linkding instance URL |
    | `-t, --token <token>` | API token |
    | `--json` | Output as JSON |
    | `--plain` | Output as plain text |
    | `--no-color` | Disable colors |
    | `-q, --quiet` | Minimal output |
    | `-v, --verbose` | Verbose output |
    
    ## Exit Codes
    
    | Code | Meaning |
    |------|---------|
    | 0 | Success |
    | 1 | General error (API/network) |
    | 2 | Invalid usage (bad flags/args) |
    | 3 | Authentication error |
    | 4 | Not found |
    | 130 | Interrupted (Ctrl-C) |
    
    ## Troubleshooting
    
    ### Test Configuration
    
    ```bash
    # Verify settings
    clinkding config show
    
    # Test connection
    clinkding config test
    ```
    
    ### Common Issues
    
    **Authentication Error:**
    - Verify API token in linkding web interface
    - Check URL includes protocol (`https://`)
    - Remove trailing slashes from URL
    
    **Command-Specific Help:**
    ```bash
    clinkding bookmarks --help
    clinkding bookmarks create --help
    ```
    
    ## Links
    
    - **GitHub:** https://github.com/daveonkels/clinkding
    - **Linkding:** https://github.com/sissbruecker/linkding
    - **Homebrew:** `brew install daveonkels/tap/clinkding`
    
    ## Installation
    
    ### Homebrew (macOS/Linux)
    
    ```bash
    brew install daveonkels/tap/clinkding
    ```
    
    ### Go Install
    
    ```bash
    go install github.com/daveonkels/clinkding@latest
    ```
    
    ### Binary Download
    
    Download from [releases](https://github.com/daveonkels/clinkding/releases) for your platform.
    
    ## Shell Completion
    
    ```bash
    # 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](https://github.com/daveonkels)  
    **License:** MIT
    
    ## Agent Workflows for Smart Bookmark Creation
    
    ### Adding URLs with Automatic Metadata
    
    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:
    
    ```bash
    # 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, messagin
    
    ... (truncated)