Clinkding - Linkding Bookmark Integration
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 re
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 re
Real data. Real impact.
Emerging
Developers
Per week
Open source
Skills give you superpowers. Install in 30 seconds.
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:
# Interactive configuration clinkding config initOr 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-heredefaults: bookmark_limit: 100 output_format: auto
export LINKDING_URL="https://linkding.example.com" export LINKDING_TOKEN="your-api-token-here"
# List recent bookmarks clinkding bookmarks listSearch 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
# Simple bookmark clinkding bookmarks create https://go.devWith metadata
clinkding bookmarks create https://go.dev
--title "Go Programming Language"
--tags "golang,programming,reference"
--description "Official Go website"
--unreadCheck if URL already exists before creating
clinkding bookmarks check https://go.dev
# 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"
# Full details clinkding bookmarks get 42JSON output
clinkding bookmarks get 42 --json
# Archive (hide from main list) clinkding bookmarks archive 42Unarchive
clinkding bookmarks unarchive 42
Delete permanently
clinkding bookmarks delete 42
# List all tags clinkding tags listCreate 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 listCreate 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 42Upload 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 5User: "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" doneArchive 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).jsonExport specific tag
clinkding bookmarks list --query "tag:important" --json > important.json
Available on all commands:
| Flag | Description |
|---|---|
| Config file path |
| Linkding instance URL |
| API token |
| Output as JSON |
| Output as plain text |
| Disable colors |
| Minimal output |
| Verbose output |
| 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) |
# Verify settings clinkding config showTest connection
clinkding config test
Authentication Error:
https://)Command-Specific Help:
clinkding bookmarks --help clinkding bookmarks create --help
brew install daveonkels/tap/clinkdingbrew 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/clinkdingZsh
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:
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):
Tag Selection Rules:
tools over generator)clinkding tags list --plain | grep -i <keyword>awesome, cool, interesting, resources, tips3. 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/project2. 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 Type | Canonical Tags |
|---|---|
| Web development, HTML, CSS, JavaScript | , , |
| React, frameworks, frontend | , |
| Design, UI/UX, mockups | |
| Python, Go, Ruby code | , / |
| Docker, K8s, DevOps | , , |
| Home automation, ESP32, sensors | , , |
| AI, ML, LLMs | , |
| Productivity tools, workflows | , |
| Finance, investing, crypto | |
| Marketing, SEO, ads | |
| Shopping, deals, stores | |
| Tutorials, guides, docs | , , |
| Security, privacy, encryption | , |
| Local (DFW/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"
summarize to get good titles/descriptionsDave's linkding instance has 263 canonical tags after consolidation from 17,189 duplicates.
Top categories (by bookmark count):
pinboard (4,987) - Legacy import tagifttt (2,639) - Legacy import tagwebdev (1,679) - Web developmentdesign (561) - Design/UI/UXcontent (416) - Content/writingcloud (383) - Cloud/hosting/SaaSbusiness (364) - Business/strategyecommerce (308) - Shopping/marketplacesmart-home (295) - Home automationproductivity (291) - Productivity toolsGolden Rule: When in doubt, use broader existing tags rather than creating new specific ones.
No automatic installation available. Please visit the source repository for installation instructions.
View Installation Instructions1,500+ AI skills, agents & workflows. Install in 30 seconds. Part of the Torly.ai family.
© 2026 Torly.ai. All rights reserved.