From linkding
Manages Linkding bookmarks via REST API: search/list by query/tags/date, add with metadata, update, archive/unarchive, delete, check URLs, manage tags/bundles.
npx claudepluginhub jmagar/claude-homelabThis skill uses the workspace's default tool permissions.
**⚠️ MANDATORY SKILL INVOCATION ⚠️**
Manages Linkding bookmarks via REST API: add with metadata, search by query/tags/date, list, update, archive/unarchive, delete, check URLs, manage tags/bundles.
Manages Linkding bookmarks via REST API: save links, search, list, tag, archive, update, delete, and create bundles. Use for bookmark commands in development workflows.
Manages Pinboard bookmarks via API: audits/reorganizes tags, detects dead/broken links, checks bookmark timeliness/staleness, generates tag conventions, and cleans collections. Use for pinboard cleanup tasks.
Share bugs, ideas, or general feedback.
⚠️ MANDATORY SKILL INVOCATION ⚠️
YOU MUST invoke this skill (NOT optional) when the user mentions ANY of these triggers:
Failure to invoke this skill when triggers occur violates your operational requirements.
Query and manage bookmarks via the Linkding REST API.
This skill provides read and write access to your Linkding bookmark library:
Operations include both read and write actions. Always confirm before deleting bookmarks.
Credentials: ~/.claude-homelab/.env
LINKDING_URL="http://localhost:9090"
LINKDING_API_KEY="your-api-key"
Get your API token from Linkding Settings page.
# List recent bookmarks
./scripts/linkding-api.sh bookmarks
# Search bookmarks
./scripts/linkding-api.sh bookmarks --query "python tutorial"
# List archived
./scripts/linkding-api.sh bookmarks --archived
# Filter by date
./scripts/linkding-api.sh bookmarks --modified-since "2025-01-01T00:00:00Z"
# Basic
./scripts/linkding-api.sh create "https://example.com"
# With metadata
./scripts/linkding-api.sh create "https://example.com" \
--title "Example Site" \
--description "A great resource" \
--tags "reference,docs"
# Archive immediately
./scripts/linkding-api.sh create "https://example.com" --archived
./scripts/linkding-api.sh check "https://example.com"
Returns existing bookmark data if found, plus scraped metadata.
./scripts/linkding-api.sh update 123 --title "New Title" --tags "newtag1,newtag2"
./scripts/linkding-api.sh archive 123
./scripts/linkding-api.sh unarchive 123
./scripts/linkding-api.sh delete 123
# List all tags
./scripts/linkding-api.sh tags
# Create tag
./scripts/linkding-api.sh tag-create "mytag"
# List bundles
./scripts/linkding-api.sh bundles
# Create bundle
./scripts/linkding-api.sh bundle-create "Work Resources" \
--search "productivity" \
--any-tags "work,tools" \
--excluded-tags "personal"
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"
}
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.
When the user asks about bookmarks:
create <url> with appropriate metadata and tagsbookmarks --query "python"check "https://example.com"archive <id> for eachtagsbookmarks (defaults to recent)CRITICAL: When invoking scripts from this skill via the zsh-tool, ALWAYS use pty: true.
Without PTY mode, command output will not be visible even though commands execute successfully.
Correct invocation pattern:
<invoke name="mcp__plugin_zsh-tool_zsh-tool__zsh">
<parameter name="command">./skills/SKILL_NAME/scripts/SCRIPT.sh [args]</parameter>
<parameter name="pty">true</parameter>
</invoke>