Help us improve
Share bugs, ideas, or general feedback.
From homelab-core
Manages Linkding bookmarks via REST API: add with metadata, search by query/tags/date, list, update, archive/unarchive, delete, check URLs, manage tags/bundles.
npx claudepluginhub jmagar/claude-homelab --plugin tautulliHow this skill is triggered — by the user, by Claude, or both
Slash command
/homelab-core:linkdingThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
**⚠️ MANDATORY SKILL INVOCATION ⚠️**
Saves a URL with auto-generated summary to knowledge base, checks for duplicates via similarity search, extracts tags, and stores. Use /bookmark <url> [#tags] or phrases like 'bookmark this'.
Manages bookmark research pipeline: fetches X bookmarks via bre CLI, triages by research interests, spawns parallel deep-dive agents, generates reports. For sync, triage, or review workflows.
wiki.yowu.dev WikiJS 지식 관리자. 검색, 생성, 수정, 삭제, 탐색을 자동 트리거한다. 자동 경로 분류(/dev/, /tips/, /notes/, /book/), 관련 문서 링킹, 양방향 링크 제안. 트리거 키워드 - 위키, wikijs, wiki.yowu.dev, 지식 추가, 문서 작성, 위키 검색, 위키 수정
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>