by ZhgChgLi
A fully customized, open-source LinkTree alternative deployed directly on GitHub Pages.
# Add to your Claude Code skills
git clone https://github.com/ZhgChgLi/linkyeeLast scanned: 5/30/2026
{
"issues": [],
"status": "PASSED",
"scannedAt": "2026-05-30T16:09:31.491Z",
"npmAuditRan": true,
"pipAuditRan": true
}linkyee is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ZhgChgLi. A fully customized, open-source LinkTree alternative deployed directly on GitHub Pages. It has 148 GitHub stars.
Yes. linkyee passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.
Clone the repository with "git clone https://github.com/ZhgChgLi/linkyee" and add it to your Claude Code skills directory (see the Installation section above).
linkyee is primarily written in JavaScript. It is open-source under ZhgChgLi on GitHub, so you can review or fork the full source.
Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh linkyee against similar tools.
No comments yet. Be the first to share your thoughts!
English | 繁體中文
A fully customized, 100% free, open-source LinkTree alternative — deployed straight to GitHub Pages.
Inspired by Jekyllrb and LinkTree.
In one sentence: click Use this template, edit one YAML file, push — your link page is live on GitHub Pages with a free
*.github.iodomain (or your own). No SaaS, no monthly fee, no vendor lock-in. AI-assisted theming and plugin development included.
config.yml.linkyee-style-designer Claude skill writes the full theme for you (HTML + CSS + JS).linkyee-plugin-builder skill writes the Ruby plugin and wires it in../preview.sh rebuilds on save; refresh the browser, no plugins needed.If this project has helped you, feel free to sponsor me a cup of coffee, thank you.
Feel free to open an issue or submit a fix/contribution via pull request. :)
Everything that ends up on your page is driven by a single file: config.yml. It's a Liquid-rendered YAML file with five top-level sections:
theme: default # ← directory under ./themes/
lang: "en"
plugins: # ← optional dynamic data fetched at build time
- GithubRepoStarsCountPlugin: [ZhgChgLi/linkyee]
title: "Your Name" # ← profile header
avatar: "./images/profile.jpeg"
name: "@yourhandle"
tagline: "One line about you."
links: # ← buttons in the link list
- link:
icon: "fa-brands fa-github"
text: "GitHub ({{ vars.GithubRepoStarsCountPlugin['ZhgChgLi/linkyee'] }} ⭐)"
url: "https://github.com/yourname"
target: "_blank"
socials: [ ... ] # ← icon-only social row
footer: "Free-form HTML."
copyright: "© 2026 You."
The shipped config.yml is a fully working example that exercises every built-in plugin — read it as the canonical reference. Edit fields in place, push, wait for GitHub Actions to rebuild, refresh.
The site rebuilds automatically once a day so plugin output (star counts, latest posts, etc.) stays fresh. The cron lives in build.yml:
schedule:
- cron: '0 0 * * *' # daily at 00:00 UTC
Delete the schedule: block if you don't want scheduled redeploys.
linkyee ships 8 built-in themes designed to be drop-in usable. Switch by editing one line in config.yml:
theme: minimal-mono # any directory under ./themes/
| Slug | Light | Dark | Aesthetic / good for |
|---|---|---|---|
default |
Clean cards · safe default for anyone | ||
minimal-mono |
Swiss minimal · monospace · engineers, writers | ||
editorial-serif |
Magazine serif · drop cap · bloggers, journalists | ||
neo-brutalism |
Thick borders · primary colors · indie devs, artists | ||
glassmorphism |
Frosted glass cards · designers, agencies | ||
paper-card |
Pastel cards · rounded · creators, illustrators | ||
newsprint |
Newspaper masthead · serif + mono · numbered link rows · the live look of link.zhgchg.li | ||
terminal-retro |
CRT · scanlines · phosphor-green-on-black (dark) / olive-on-cream printer-paper (light) · hackers |
Every built-in theme meets the same baseline: WCAG AA contrast, dark mode that auto-switches with your system appearance (no manual toggle), responsive down to 320 px, keyboard-accessible focus states, and prefers-reduced-motion support.
To try them locally before committing, see Local testing. To regenerate the preview screenshots above after any visual change, run ./scripts/screenshot-themes.sh (requires npx playwright).
Each theme lives at ./themes/<theme-name>/ with three files:
index.html — Liquid template (consumes config.yml)styles.css — the lookscripts.js — can be empty, but the file must existThe default theme self-hosts Font Awesome under themes/default/fontawesome/. The other built-ins load Font Awesome from a CDN to keep theme directories small.
Don't see a vibe you like? Describe it in plain English and the bundled linkyee-style-designer Claude skill writes a full theme for you.
How to use it:
Install Claude Code and open this repo with it.
Ask in natural language. Examples:
"Design a linkyee theme inspired by 1960s Penguin paperback covers."
"Make my links look like a Japanese ryokan website — quiet, elegant, lots of negative space."
"I want a vaporwave aesthetic but keep it accessible."
The skill reads your config.yml, asks clarifying questions if the brief is vague, generates themes/<your-theme>/, switches theme: in config.yml, and runs the build.
Run ./preview.sh <new-theme> to see the result locally.
The skill enforces the same quality bar as the built-in themes: no AI slop (no unwarranted purple-pink gradients, no emoji-as-icons, no centered-everything-no-hierarchy), real typographic hierarchy, accessibility minimums, and strict RWD — mobile-first, ≥44 px tap targets, no horizontal scroll at 320 px.
Deeper design tooling. If you want a richer designer experience (multi-direction exploration, expert review, animation export), install the upstream huashu-design skill alongside it. The linkyee skill defers to huashu-design when both are present.
Plugins are tiny Ruby classes that fetch data at build time and inject it into your page. Use them to render live values inside any link, the tagline, or the footer — anything that's a Liquid string.
| Plugin | What it emits | Reference shape |
|---|---|---|
GithubRepoStarsCountPlugin |
Star count for one or more repos | {{ vars.GithubRepoStarsCountPlugin['owner/repo'] }} |
GithubLastCommitPlugin |
Latest commit sha / date / message |
{{ vars.GithubLastCommitPlugin['owner/repo'].date }} |
GithubProfilePlugin |
followers / following / repos |
{{ vars.GithubProfilePlugin['user'].followers }} |
RSSFeedPlugin |
Latest items (Medium / blog / podcast / YouTube feeds) | {{ vars.RSSFeedPlugin['url'][0].title }} |
CountdownPlugin |
Days until / since a target date | `{{ vars.CountdownPlugin |