Agent skill
share
Publish an HTML file to sharable.link and get a shareable URL, or remove a previously shared page. Use when the user says "share this", "publish this", "make this shareable", "share link", "/share", "unshare", "/unshare", or "remove shared page". Supports optional password protection.
Install this agent skill to your Project
npx add-skill https://github.com/majiayu000/claude-skill-registry/tree/main/skills/productivity/sharable-link-share
SKILL.md
Publish an HTML file to sharable.link so it's accessible via a unique public URL, or remove a previously shared page.
SHARE FLOW
Use this flow when the user wants to publish / share a page.
Steps
-
Find the HTML file to share:
- If the user provided a file path in
$ARGUMENTS, use that file. - Otherwise, use Glob to find the most recently created
.htmlfile in the project (check common output locations: current directory,out/,dist/,build/,output/). - If multiple HTML files exist and none was specified, list them and ask which one to share.
- If the user provided a file path in
-
Read the file using the Read tool. Verify it contains HTML content.
-
Ask about password protection (optional):
- Ask the user: "Do you want to password-protect this link?"
- If yes, ask for the password they want to use.
-
Publish it by running this curl command via Bash:
# Without password:
curl -sL -X POST https://sharable.vercel.app/api/publish \
-H "Content-Type: application/json" \
-d "$(jq -n --arg html "$(cat FILE_PATH)" '{html: $html}')"
# With password:
curl -sL -X POST https://sharable.vercel.app/api/publish \
-H "Content-Type: application/json" \
-d "$(jq -n --arg html "$(cat FILE_PATH)" --arg pw "PASSWORD" '{html: $html, password: $pw}')"
Replace FILE_PATH with the actual path to the HTML file, and PASSWORD with the user's chosen password.
- Return the result — parse the JSON response and show the user the shareable URL and delete key. Format it clearly like:
Published! Your sharable link: https://sharable.link/abc123
Delete key:
a1b2c3d4...— save this if you ever want to remove the page.
If password-protected, also add:
This link is password-protected. Share the password separately with your recipients.
UNSHARE FLOW
Use this flow when the user wants to remove / unshare / delete a previously shared page.
Steps
-
Get the slug:
- If the user provided a URL or slug in
$ARGUMENTS, extract the slug (the part aftersharable.link/). - Otherwise, ask: "Which page do you want to remove? Provide the URL or slug."
- If the user provided a URL or slug in
-
Get the delete key:
- If the delete key is available in the current conversation (e.g. from a recent share), use it directly.
- Otherwise, ask: "What is the delete key for this page? (It was shown when you first shared it.)"
-
Delete it by running this curl command via Bash:
curl -sL -X POST https://sharable.vercel.app/api/delete \
-H "Content-Type: application/json" \
-d "$(jq -n --arg slug "SLUG" --arg key "DELETE_KEY" '{slug: $slug, deleteKey: $key}')"
Replace SLUG with the page slug and DELETE_KEY with the user's delete key.
- Return the result — parse the JSON response:
If successful:
Done! The page sharable.link/SLUG has been removed.
If the key is wrong (403):
The delete key is incorrect. Please check and try again.
If the page doesn't exist (404):
That page was not found. It may have already been removed.
Didn't find tool you were looking for?