Skip to content

doyoon530/terminal-identity

Repository files navigation

Terminal Identity

Live playground · Paste this · Popular styles · Why use it · Params · Providers & themes · Recipes · API

MIT License Deployed on Vercel Live Playground

Terminal Identity demo card

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.


Paste this into your README

<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.


Popular styles

Minimal hero card Minimal Hero
Clean landing-header vibe for profile READMEs.
amber/solar
Design engineer card Design Engineer
Softer editorial shell for product and design profiles.
amber/sakura
Builder card Builder Mode
Dark workspace shell with stats for indie hackers and maintainers.
obsidian/graphite

Why people use it

  • 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 username to 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|boot and keep using the same image URL
  • Good defaults — most people only need name, role, theme, and maybe username
  • Deep enough when you want it — accent color, graph style, filtered stats, language icons, custom bio

Features

  • 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 themescat_jump, popcat, capybara_onsen, moon, star, orbit, signal, citylight, moss, petal, firefly, and constellation
  • 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 overlayspulse, scan, and boot work via the same /api endpoint
  • 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

Quick start

<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.


Params

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=auto shows top languages only when a username is provided and GitHub returns language data. Use on to always attempt to show them, off to hide entirely.

Contribution sizing: shorter ranges like 4w, 8w, 12w, and 16w render larger cells; medium ranges like 24w, 26w/6m, and 39w/9m balance detail and history; 1y renders a compact annual view.

Icons: langStyle=icons fetches 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.


Providers & themes

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

solar

Solar theme

provider=amber · theme=solar

ember

Ember theme

provider=classic · theme=ember

aurora

Aurora theme

provider=prism · theme=aurora

cobalt

Cobalt theme

provider=obsidian · theme=cobalt

velvet

Velvet theme

provider=amber · theme=velvet

graphite

Graphite theme

provider=obsidian · theme=graphite

matcha

Matcha theme

provider=prism · theme=matcha

sakura

Sakura theme

provider=amber · theme=sakura


README Recipes

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.

Cat jump ghost grid

theme=obsidian/velvet · showContribs=on · contribTheme=cat_jump · contribRange=16w · contribMode=focus

Cat jump contribution card

<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"
/>

Popcat activity burst

theme=amber/sakura · showContribs=on · contribTheme=popcat · contribRange=16w · contribMode=focus

Popcat contribution card

<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"
/>

Capybara onsen

theme=amber/matcha · showContribs=on · contribTheme=capybara_onsen · contribRange=16w · contribMode=focus

Capybara onsen contribution card

<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"
/>

Moon phase dashboard

theme=amber/solar · showContribs=on · contribTheme=moon · contribRange=16w · showLangs=on

Moon phase contribution card

<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"
/>

Starfield maintainer

theme=obsidian/graphite · contribTheme=star · contribRange=16w · motion=pulse · pattern=pulse

Starfield contribution card

<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"
/>

Orbit builder

theme=prism/aurora · contribTheme=orbit · contribRange=16w · accent=%239cd7ff · showLangs=off

Orbit contribution card

<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"
/>

Signal radar card

theme=obsidian/aurora · contribTheme=signal · contribRange=16w · motion=scan · stats=stars,forks,followers

Signal contribution card

<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"
/>

Firefly night mode

theme=obsidian/velvet · contribTheme=firefly · contribRange=16w · hideCommand=true · motion=boot

Firefly contribution card

<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"
/>

API

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 %23 when passing the accent param. Example: accent=%23ff7a59 for #ff7a59.


Run locally

python3 -m http.server 4173
# open http://localhost:4173

The playground at index.html previews cards live, copies SVG/markdown/API URLs, and shows a preset gallery.


Deploy

Import this repo into Vercel. The /api directory is picked up as serverless functions automatically. No config needed.


Project structure

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

Acknowledgements

Language icons powered by skillicons.dev — MIT License © tandpfun


License

MIT © doyoon530

About

A highly customizable GitHub README card generator for creating terminal-style profile cards with live stats, top languages, themes, patterns, and more.

Topics

Resources

License

Stars

4 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors