| name | linkding |
| description | This skill should be used when the user asks to save a bookmark, add or save a link, search bookmarks, list bookmarks, find saved links, tag a bookmark, archive a bookmark, check if a URL is already saved, list tags, or create a bundle. It also applies when the user mentions Linkding by name or asks about their bookmark library. |
Linkding Bookmark Manager
Query and manage bookmarks via the Linkding REST API.
Purpose
This skill provides read and write access to your Linkding bookmark library:
- Search and list bookmarks by query, tags, or date
- Add new bookmarks with metadata (title, description, tags)
- Update existing bookmarks
- Archive/unarchive bookmarks
- Delete bookmarks
- Manage tags and bundles (saved searches)
- Check if URLs are already saved
Operations include both read and write actions. Always confirm before deleting bookmarks.
Setup
Credentials: plugin userConfig writes
${XDG_CONFIG_HOME:-~/.config}/lab-linkding/config.env; ~/.lab/.env remains a
fallback during migration.
LINKDING_URL="http://localhost:9090"
LINKDING_API_KEY="your-api-key"
Get your API token from Linkding Settings page. LINKDING_TOKEN is accepted as
a local alias when LINKDING_API_KEY is unset.
Quick Reference
List/Search Bookmarks
./scripts/linkding-api.sh bookmarks
./scripts/linkding-api.sh bookmarks --query "python tutorial"
./scripts/linkding-api.sh bookmarks --archived
./scripts/linkding-api.sh bookmarks --modified-since "2025-01-01T00:00:00Z"
Create Bookmark
./scripts/linkding-api.sh create "https://example.com"
./scripts/linkding-api.sh create "https://example.com" \
--title "Example Site" \
--description "A great resource" \
--tags "reference,docs"
./scripts/linkding-api.sh create "https://example.com" --archived
Check if URL Exists
./scripts/linkding-api.sh check "https://example.com"
Returns existing bookmark data if found, plus scraped metadata.
Update Bookmark
./scripts/linkding-api.sh update 123 --title "New Title" --tags "newtag1,newtag2"
Archive/Unarchive
./scripts/linkding-api.sh archive 123
./scripts/linkding-api.sh unarchive 123
Delete
./scripts/linkding-api.sh delete 123
Tags
./scripts/linkding-api.sh tags
./scripts/linkding-api.sh tag-create "mytag"
Bundles (saved searches)
./scripts/linkding-api.sh bundles
./scripts/linkding-api.sh bundle-create "Work Resources" \
--search "productivity" \
--any-tags "work,tools" \
--excluded-tags "personal"
Response Format
All responses are JSON. Bookmark object:
{
"id": 1,
"url": "https://example.com",
"title": "Example",
"description": "Description",
"notes": "Personal notes",
"is_archived": false,
"unread": false,
"shared": false,
"tag_names": ["tag1", "tag2"],
"date_added": "2020-09-26T09:46:23.006313Z",
"date_modified": "2020-09-26T16:01:14.275335Z"
}
Common Patterns
Save current page for later:
./scripts/linkding-api.sh create "$URL" --tags "toread" --unread
Quick search and display:
./scripts/linkding-api.sh bookmarks --query "keyword" --limit 10 | jq -r '.results[] | "\(.title) - \(.url)"'
Bulk tag update: Update via API PATCH with new tag_names array.
Workflow
When the user asks about bookmarks:
- "Save this link for later" → Run
create <url> with appropriate metadata and tags
- "Find my bookmarks about Python" → Run
bookmarks --query "python"
- "Is example.com already saved?" → Run
check "https://example.com"
- "Archive old bookmarks" → Search first, then
archive <id> for each
- "What tags do I have?" → Run
tags
- "Show recent bookmarks" → Run
bookmarks (defaults to recent)
Notes
- Requires network access to your Linkding server
- Uses Linkding REST API v1
- All data operations return JSON
- Delete operations are permanent - always confirm before deleting
- URL checking includes automatic metadata scraping
- Tags are created automatically when used in bookmarks
- Bundles are saved searches with filter criteria
Reference
Bundled references (load as needed):
references/api-endpoints.md — REST API endpoint reference
references/quick-reference.md — command examples
references/troubleshooting.md — common errors and fixes
Agent Tool Usage
Run this skill's scripts with the Bash tool directly:
./skills/linkding/scripts/linkding-api.sh [args]