Openclacky personal-website
install
source · Clone the upstream repo
git clone https://github.com/clacky-ai/openclacky
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/clacky-ai/openclacky "$T" && mkdir -p ~/.claude/skills && cp -r "$T/lib/clacky/default_skills/personal-website" ~/.claude/skills/clacky-ai-openclacky-personal-website && rm -rf "$T"
manifest:
lib/clacky/default_skills/personal-website/SKILL.mdsource content
Profile Homepage Skill
Generate a beautiful personal homepage and publish it at a public URL.
Step 1 — Read user info
Read
~/.clacky/agents/USER.md and ~/.clacky/agents/SOUL.md.
Extract everything you can find:
— display name (fallback: "Friend")name
— job title or role (fallback: "")occupation
— short personal description (fallback: "")bio
— all social/contact links found, preserve their labels. Common ones to look for: GitHub, Twitter/X, LinkedIn, Website, Blog, Email, Instagram, YouTube, Telegram, WeChat, etc. Each link:links
where type helps pick an icon emoji.{ label, url, type }
— AI assistant name from SOUL.md (fallback: "Clacky")ai_name
— professional / friendly / creative / concise (from SOUL.md, fallback: "friendly")personality
Step 2 — Handle delete request
If the user asked to delete their homepage:
- Find the skill's own directory (same folder as this SKILL.md). Call it
.SKILL_DIR - Run:
The script reads the slug automatically fromruby SKILL_DIR/publish.rb delete
.~/clacky_workspace/personal_website/token.json - Tell the user their homepage has been removed. Stop here.
Step 3 — Design & generate the HTML
Write a complete, self-contained HTML file to
/tmp/profile-card.html.
You have full creative freedom on:
- Layout, typography, spacing, color palette
- Background (solid / gradient / subtle pattern / animated)
- Link button style (pill / card / underline / ghost / anything)
- Avatar treatment (large initial letter with color, emoji, geometric shape — no real image needed)
- Animations (subtle hover effects, entrance fade, etc.)
- Overall vibe — make it feel like a real personal brand page, not a template
Hard constraints (must follow):
- Single HTML file, zero external resources — no CDN, no Google Fonts URLs, no
. Use system fonts:<img src="http...">'Helvetica Neue', Arial, 'PingFang SC', 'Hiragino Sans GB', sans-serif - Mobile-first, responsive —
required, works on phone screens<meta name="viewport"> - Valid HTML5
- All links open in
with_blankrel="noopener" - Badge somewhere subtle:
— small, not intrusivemade by {ai_name} personal assistant - Page
:<title>
or similar{name}'s Homepage
Link icons (use emoji prefix in button text):
| Type | Emoji |
|---|---|
| github | 🐙 |
| twitter/x | 🐦 |
| 💼 | |
| website/blog | 🌐 |
| 📧 | |
| 📸 | |
| youtube | ▶️ |
| telegram | ✈️ |
| default | 🔗 |
Step 4 — Publish
Find the skill directory (same folder as this SKILL.md). Call it
SKILL_DIR.
Run:
ruby SKILL_DIR/publish.rb publish \ --name "NAME" \ --html-file /tmp/profile-card.html
- First publish → creates new page, saves token to
~/clacky_workspace/personal_website/token.json - Subsequent runs → updates existing page at the same URL
Capture stdout. Extract the URL from the output line starting with
✅.
Step 5 — Done
Tell the user their homepage is live. Share the URL. Be warm and natural.
Example (adapt tone to personality):
Your homepage is live 🌟 → http://localhost:3000/~ya-fei
It's got all your links in one place. Share it anywhere.