Live playground · Paste this · Popular styles · Why use it · Params · Providers & themes · Recipes · API
Make your GitHub README feel like a polished product page.
Terminal Identity generates stylish SVG hero cards from a single image URL. Paste one <img> tag into your README, choose a shell + theme, and optionally pull live public GitHub stats.
<img
src="https://terminal-identity-opal.vercel.app/api?name=ggam&role=frontend%20engineer&tagline=Building%20tiny%20tools%20with%20taste.&theme=amber/solar&avatar=GG&pattern=grid&width=980&height=420"
width="100%"
alt="Terminal identity card"
/>Add username=your-handle to pull live public GitHub stats and top languages.
Want motion? Add motion=pulse, motion=scan, or motion=boot to the same API URL.
Try it in the live playground and copy the image URL or markdown directly.
- One URL, real result — no screenshots, no manual SVG editing, no build step
- Actually stylish — provider shells feel more like product UI than generic badges
- Live public data — add
usernameto show repos, stars, followers, and top languages - Contribution activity block — turn recent GitHub activity into a themed grid inside the card
- Animated SVG mode — add
motion=pulse|scan|bootand keep using the same image URL - Good defaults — most people only need
name,role,theme, and maybeusername - Deep enough when you want it — accent color, graph style, filtered stats, language icons, custom bio
- 4 provider shells — Classic, Amber, Obsidian, Prism, each with a distinct layout
- 8 themes — Ember · Aurora · Cobalt · Velvet · Graphite · Matcha · Sakura · Solar
- Live GitHub stats — repos, stars, forks, followers fetched from the public API
- Contribution themes —
cat_jump,popcat,capybara_onsen,moon,star,orbit,signal,citylight,moss,petal,firefly, andconstellation - Top languages — bar chart or skill icons, filterable by name
- Inline bold — use
**text**in bio for bold SVG text - Multi-line bio — wraps dynamically to fit the card height, with line-break support
- Background patterns — grid, rings, pulse
- Animated SVG overlays —
pulse,scan, andbootwork via the same/apiendpoint - Fully customizable — accent color, dimensions (720–1400 × 420–1400 or
auto), stat filters, and more - Zero config — one
<img>tag, hosted and cached on Vercel
<img
src="https://terminal-identity-opal.vercel.app/api?name=ggam&role=frontend%20engineer&tagline=Building%20tiny%20tools%20with%20taste.&theme=amber/solar&avatar=GG&pattern=grid&width=980&height=auto"
width="100%"
alt="Terminal identity card"
/>Add username=your-handle to show live GitHub stats and top languages:
<img
src="https://terminal-identity-opal.vercel.app/api?name=ggam&username=doyoon530&role=frontend%20engineer&tagline=Building%20tiny%20tools%20with%20taste.&theme=amber/solar&avatar=GG&pattern=grid&width=980&height=auto"
width="100%"
alt="Terminal identity card with live GitHub stats"
/>Need a moving version from the same endpoint:
<img
src="https://terminal-identity-opal.vercel.app/api?name=ggam&username=doyoon530&role=frontend%20engineer&tagline=Building%20tiny%20tools%20with%20taste.&theme=amber/solar&avatar=GG&pattern=grid&width=980&height=auto&motion=pulse"
width="100%"
alt="Animated terminal identity card"
/>Want a contribution block too:
<img
src="https://terminal-identity-opal.vercel.app/api?name=ggam&username=doyoon530&role=frontend%20engineer&tagline=Building%20tiny%20tools%20with%20taste.&theme=amber/solar&avatar=GG&pattern=grid&width=980&height=auto&showContribs=on&contribTheme=moon"
width="100%"
alt="Terminal identity card with contribution grid"
/>Try it interactively at the live playground — build your card visually and copy the URL or markdown directly.
| Param | Default | Description |
|---|---|---|
name |
ggam |
Display name |
username |
— | GitHub handle — enables live stats and top languages |
role |
frontend engineer |
Subtitle / role line |
tagline |
— | Main sentence (featured in right panel) |
bio |
— | Multi-line bio for left panel — wraps dynamically to card height; supports **bold**; falls back to tagline if absent |
status |
— | Fallback status text (shown when username is absent or stats fail) |
command |
— | Terminal command shown in the footer |
theme |
solar |
Theme name, or provider/theme combo like amber/sakura |
avatar |
GG |
Initials rendered in the avatar block (classic provider only) |
pattern |
grid |
Background pattern: grid, rings, or pulse |
width |
980 |
Card width in px (720–1400) |
height |
auto |
Card height in px (auto computes the layout fit, or use 420–1400) |
accent |
— | Override accent color with a hex value, e.g. %23ff7a59 |
motion |
off |
Animated SVG overlay: off, pulse, scan, or boot |
showContribs |
off |
Contribution grid display: off, on, or auto |
contribTheme |
moss |
Contribution concept theme: cat_jump, popcat, capybara_onsen, moon, star, orbit, signal, citylight, moss, petal, firefly, or constellation |
contribRange |
16w |
Contribution window: 4w, 8w, 12w, 16w, 24w, 26w, 39w, 3m, 6m, 9m, or 1y |
contribMode |
compact |
Contribution layout mode: compact or focus |
showLangs |
auto |
Top languages display: auto, on, or off |
langCount |
4 |
Number of top languages to show (1–6) |
langStyle |
bar |
Language display style: bar or icons |
iconSize |
md |
Icon size when langStyle=icons: sm, md, or lg |
barStyle |
bar |
Graph style for stats and lang bars: bar, dots, or blocks |
hideAvatar |
false |
Set to true to hide the avatar block |
hideProfile |
false |
Set to true to hide the GitHub profile picture (amber provider) |
hideCommand |
false |
Set to true to hide the command line |
stats |
all | Comma-separated stats to show: repos,stars,forks,followers |
excludeLangs |
— | Comma-separated language names to exclude, e.g. HTML,CSS |
showLangs=autoshows top languages only when ausernameis provided and GitHub returns language data. Useonto always attempt to show them,offto hide entirely.
Contribution sizing: shorter ranges like
4w,8w,12w, and16wrender larger cells; medium ranges like24w,26w/6m, and39w/9mbalance detail and history;1yrenders a compact annual view.
Icons:
langStyle=iconsfetches icons from skillicons.dev at render time. Supported languages: JavaScript, TypeScript, Python, Rust, Go, Java, Kotlin, Swift, Ruby, PHP, C, C++, C#, HTML, CSS, SCSS, Dart, Lua, Scala, Elixir, Haskell, Shell, R, Perl, Zig, OCaml, Dockerfile, Vue, Svelte, and more.
Specify a provider via the theme param as provider/theme — e.g. amber/solar, obsidian/cobalt.
| Provider | Shell feel |
|---|---|
classic |
Clean terminal layout, full theme palette |
amber |
Warm editorial dashboard with profile photo support |
obsidian |
Dark workspace, sharp monochrome |
prism |
Bright canvas, airy and structured |
Available themes: ember · aurora · cobalt · velvet · graphite · matcha · sakura · solar
Theme gallery
provider=amber · theme=solar
provider=classic · theme=ember
provider=prism · theme=aurora
provider=obsidian · theme=cobalt
provider=amber · theme=velvet
provider=obsidian · theme=graphite
provider=prism · theme=matcha
provider=amber · theme=sakura
Copy-paste starter cards for different contribution moods. Each example leans on a different contribTheme and uses a well-known public GitHub developer account for realistic live stats; replace username with your own handle when you use it.
theme=obsidian/velvet · showContribs=on · contribTheme=cat_jump · contribRange=16w · contribMode=focus
<img
src="https://terminal-identity-opal.vercel.app/api?name=Tom%20Preston-Werner&username=mojombo&role=GitHub%20co-founder&tagline=One%20of%20the%20people%20who%20helped%20make%20open%20source%20feel%20social.&status=haunting%20commit%20history%20with%20tiny%20ghost%20cats&command=git%20log%20--oneline&theme=obsidian/velvet&avatar=TP&pattern=pulse&width=980&height=auto&motion=boot&showContribs=on&contribTheme=cat_jump&contribRange=16w&contribMode=focus&showLangs=off&hideCommand=true"
width="100%"
alt="Terminal identity card with cat jump activity"
/>theme=amber/sakura · showContribs=on · contribTheme=popcat · contribRange=16w · contribMode=focus
<img
src="https://terminal-identity-opal.vercel.app/api?name=Guillermo%20Rauch&username=rauchg&role=Vercel%20CEO&tagline=Making%20frontend%20deploys%20feel%20instant.&status=shipping%20preview%20deployments%20with%20taste&command=vercel%20deploy&theme=amber/sakura&avatar=GR&pattern=grid&width=980&height=auto&showContribs=on&contribTheme=popcat&contribRange=16w&contribMode=focus&showLangs=off&barStyle=blocks"
width="100%"
alt="Terminal identity card with popcat activity"
/>theme=amber/matcha · showContribs=on · contribTheme=capybara_onsen · contribRange=16w · contribMode=focus
<img
src="https://terminal-identity-opal.vercel.app/api?name=David%20Tolnay&username=dtolnay&role=Rust%20maintainer&tagline=Careful%20crates%2C%20macro%20magic%2C%20and%20quietly%20cozy%20open%20source.&status=soaking%20release%20trains%20in%20careful%20reviews&command=cargo%20test%20--workspace&theme=amber/matcha&avatar=DT&pattern=rings&width=980&height=auto&showContribs=on&contribTheme=capybara_onsen&contribRange=16w&contribMode=focus&showLangs=off&barStyle=blocks"
width="100%"
alt="Terminal identity card with capybara onsen activity"
/>theme=amber/solar · showContribs=on · contribTheme=moon · contribRange=16w · showLangs=on
<img
src="https://terminal-identity-opal.vercel.app/api?name=Andrej%20Karpathy&username=karpathy&role=AI%20researcher&tagline=Neural%20nets%2C%20teaching%2C%20and%20quiet%20moonlit%20experiments.&status=researching%2C%20writing%2C%20and%20iterating&command=python%20train.py&theme=amber/solar&avatar=AK&pattern=grid&width=980&height=auto&showContribs=on&contribTheme=moon&contribRange=16w&showLangs=on&langCount=4&langStyle=icons&iconSize=sm"
width="100%"
alt="Terminal identity card with moon phase activity"
/>theme=obsidian/graphite · contribTheme=star · contribRange=16w · motion=pulse · pattern=pulse
<img
src="https://terminal-identity-opal.vercel.app/api?name=Linus%20Torvalds&username=torvalds&role=Linux%20maintainer&tagline=Kernel%20patches%2C%20release%20candidates%2C%20and%20stars%20that%20actually%20compile.&status=reviewing%20patches%20and%20release%20candidates&command=make%20oldconfig&theme=obsidian/graphite&avatar=LT&pattern=pulse&width=980&height=auto&motion=pulse&showContribs=on&contribTheme=star&contribRange=16w&showLangs=on&langCount=4&langStyle=bar&barStyle=blocks"
width="100%"
alt="Terminal identity card with starfield activity"
/>theme=prism/aurora · contribTheme=orbit · contribRange=16w · accent=%239cd7ff · showLangs=off
<img
src="https://terminal-identity-opal.vercel.app/api?name=Addy%20Osmani&username=addyosmani&role=Chrome%20engineer&tagline=Performance%2C%20UX%2C%20and%20web%20apps%20in%20orbit.&status=maintaining%20web%20performance%20notes&command=npm%20run%20perf&theme=prism/aurora&avatar=AO&pattern=rings&width=980&height=auto&accent=%239cd7ff&showContribs=on&contribTheme=orbit&contribRange=16w&showLangs=off&barStyle=dots"
width="100%"
alt="Terminal identity card with orbit activity"
/>theme=obsidian/aurora · contribTheme=signal · contribRange=16w · motion=scan · stats=stars,forks,followers
<img
src="https://terminal-identity-opal.vercel.app/api?name=Sindre%20Sorhus&username=sindresorhus&role=open-source%20maintainer&tagline=Tiny%20packages%2C%20strong%20signals%2C%20and%20decades%20of%20useful%20APIs.&status=tracking%20issues%20and%20shipping%20small%20fixes&command=npm%20publish&theme=obsidian/aurora&avatar=SS&pattern=grid&width=980&height=auto&motion=scan&showContribs=on&contribTheme=signal&contribRange=16w&showLangs=off&stats=stars%2Cforks%2Cfollowers&barStyle=dots"
width="100%"
alt="Terminal identity card with signal activity"
/>theme=obsidian/velvet · contribTheme=firefly · contribRange=16w · hideCommand=true · motion=boot
<img
src="https://terminal-identity-opal.vercel.app/api?name=Anthony%20Fu&username=antfu&role=open-source%20designer%20engineer&tagline=Tooling%2C%20DX%2C%20and%20tiny%20night%20lights%20for%20the%20web.&status=shipping%20after%20dark&theme=obsidian/velvet&avatar=AF&pattern=pulse&width=980&height=auto&motion=boot&showContribs=on&contribTheme=firefly&contribRange=16w&showLangs=off&hideCommand=true"
width="100%"
alt="Terminal identity card with firefly activity"
/>GET https://terminal-identity-opal.vercel.app/api?[params]
Returns an image/svg+xml response. Drop it directly in any Markdown <img> tag. GitHub caches images — append &v=2 (or increment) to bust the cache when you update params.
Animated cards use the same endpoint. Add motion=pulse, motion=scan, or motion=boot to return an animated SVG instead of a static one.
Contribution cards use the same endpoint too. Add showContribs=on, a contribTheme, and optionally contribRange=4w|8w|12w|16w|24w|26w|39w|1y plus contribMode=compact|focus to control how large the activity block feels inside the card. Range aliases 3m, 6m, and 9m are also supported, and the summary label changes with the selected window (last 16 weeks, last 6 months, or this year). cat_jump uses a custom black pixel cat sprite with ghost-white eyes, popcat uses a custom mouth-opening pixel cat sprite, capybara_onsen uses a cozy yuzu bath sprite, moon draws custom SVG moon phases, star uses a custom glowing star, orbit draws a tiny planet system, signal renders radar-like arcs, and citylight turns activity into lit windows.
Accent color: URL-encode
#as%23when passing theaccentparam. Example:accent=%23ff7a59for#ff7a59.
python3 -m http.server 4173
# open http://localhost:4173The playground at index.html previews cards live, copies SVG/markdown/API URLs, and shows a preset gallery.
Import this repo into Vercel. The /api directory is picked up as serverless functions automatically. No config needed.
terminal-card.js SVG generation (shared between browser and server)
api/index.js Card endpoint — fetches GitHub stats, returns SVG
api/github.js GitHub stats proxy for the playground
github-data.js Public GitHub API fetch helper
index.html Live playground
script.js Playground logic
styles.css Playground styles
Language icons powered by skillicons.dev — MIT License © tandpfun
MIT © doyoon530