Inbox capture that matches Web Clipper output. Clips URLs or inline text as clipping notes with LLM-generated titles. Batch-capable for multiple URLs. No classification, no area/project assignment — triage handles that.
View on GitHubnathanvale/side-quest-marketplace
para-obsidian
February 4, 2026
Select agents to install to:
npx add-skill https://github.com/nathanvale/side-quest-marketplace/blob/main/plugins/para-obsidian/skills/clip/SKILL.md -a claude-code --skill clipInstallation paths:
.claude/skills/clip/# Clip
Inbox capture that produces clipping notes matching Obsidian Web Clipper output — real page titles, raw fetched content, `<!-- highlights:0 -->` marker. No classification, no Layer 1 formatting, no area/project assignment. Everything gets organized later by `/para-obsidian:triage`.
**Design philosophy:** ADHD-friendly capture with Web Clipper parity. Save a link, get a real note — not a stub. Capture now, organize later.
---
## Step 0 — Discover Template Metadata
Before processing any input, query the clipping template for its current structure:
```
para_template_fields({ template: "clipping", response_format: "json" })
```
Extract from response:
- `validArgs` → which args to pass to `para_create` (e.g., `source`, `clipped`, `domain`)
- `creation_meta.dest` → destination folder (e.g., `"00 Inbox"`)
- `creation_meta.contentTargets` → which section heading accepts content injection (e.g., `["Content"]`)
- `creation_meta.titlePrefix` → emoji prefix (e.g., `"✂️ "`)
Use these discovered values throughout the skill instead of hardcoding them. If the template changes, this skill auto-adapts.
---
## Input Detection
Parse `$ARGUMENTS` to determine mode:
**Step 1:** Extract all URLs from arguments (regex: `https?://\S+`).
| Result | Mode |
|--------|------|
| 1+ URLs found | **URL mode** — create clipping notes |
| No URLs found | **Inline text mode** — create clipping note |
**Step 2:** Deduplicate URLs before processing (URL mode only).
---
## Mode 1: URL Capture (Clipping Notes)
For each URL, create a clipping note that triage recognizes as `itemType: "clipping"`.
### For each URL:
**Step 1 — Extract domain:**
Strip `www.` prefix from hostname:
```
github.com/anthropics/claude-code → domain: "github.com"
www.kentcdodds.com/blog/aha → domain: "kentcdodds.com"
```
**Step 2 — Fetch content:**
The clip skill should produce notes identical to what the Obsidian Web Clipper creates — including page content in the Content section. Fetch conte