Your Resume In. Portfolio Out.
Terminal-themed portfolio for developers, researchers, and creatives. Edit text files or let AI do it via MCP.
Tip
Don't want to touch code? We're building a hosted solution at termhubai.com — upload your resume and get a live portfolio, no Git or terminal needed. Join the waitlist to get early access!
h-freax.github.io — the author's real portfolio, built with TermHub
Cookie's Demo · Author's Portfolio
View all pages
Publications
Projects
Experience
Articles
Awards · My Journey
Selected Publications · Recent Updates
TermHub is built around one simple idea: CV → AI → Markdown → Homepage
Instead of writing HTML or learning a framework, you give your CV to any AI — ChatGPT, Claude, Gemini, or any LLM — and it generates Markdown files that plug directly into TermHub. Works for developers, researchers, designers, students — anyone who wants a professional portfolio. With our built-in MCP server, Claude can do this fully automatically: read your resume, call 19 specialized tools, and populate your entire site in under a minute.
- Terminal aesthetic with Nord color palette, dark / light mode
- Fully responsive (mobile → desktop), hot reload on edit
- No code needed — just edit text files in
content/ - MCP-powered — resume → AI → portfolio in minutes
- i18n — built-in English / Chinese bilingual support
Content types: Publications · Projects · Experience · Articles · Awards · News
# 1. Fork & clone
git clone https://github.com/H-Freax/TermHub.git
cd TermHub && npm install
# 2. Run the setup wizard — generates your config
npm run setup
# 3. Start dev server
npm run devOpen http://localhost:5173 — your site is running. Edit files in
content/, save, and the browser refreshes automatically.
All your content lives in one folder — you never touch source code.
content/
├── site.json ← name, email, social links, features
├── about.md ← bio & career timeline
├── experience.json ← work & education history
├── publications/ ← one .md per paper
├── projects/ ← one .md per project
├── articles/ ← one .md per blog post
├── news.json ← announcements
├── awards.json ← awards & honors
└── images/ ← avatar, logos, screenshots
Feature toggles — show or hide entire pages
In content/site.json, flip features on or off:
{
"features": {
"publications": true,
"projects": true,
"articles": true,
"experience": true,
"news": true,
"pets": false,
"guide": false
}
}When a feature is false, its page and nav link disappear completely.
- GitHub Pages — Push to
main, the included workflow deploys automatically - Vercel — Import repo → click Deploy (auto-detects Vite)
- Netlify — Import repo → click Deploy
The CV → AI → Markdown → Homepage pipeline taken to its logical conclusion: TermHub includes a built-in MCP server that lets Claude directly read your resume, generate all Markdown/JSON content files, and build your site — zero manual editing.
- Give AI your resume PDF or text, get a complete site
- 19 specialized tools for publications, projects, experience, awards
- Built-in PDF text extraction
- AI can start dev server and live preview your site
# Quick setup
cd mcp-server && npm install # 1. Install
# 2. Configure Claude Desktop / Code (see mcp-server/mcp-config.json)
# 3. Tell Claude: "Parse my resume and generate my portfolio"Available tools
| Tool | Description |
|---|---|
get_schema |
Get all data types — AI calls this first |
parse_pdf |
Extract text from resume PDF |
generate_from_resume |
Create structured blueprint from resume text |
update_site_config |
Set name, email, social links |
add_publication |
Add a paper with full metadata |
add_project |
Add a project with tags and highlights |
add_experience |
Add work/research timeline entry |
add_education |
Add education entry |
add_news / add_award |
Add news items and awards |
write_markdown_content |
Write any Markdown content file |
write_json_content |
Write any JSON content file |
manage_assets |
Copy images to public directory |
preview_site |
Start dev server or production build |
get_site_status |
Overview of current portfolio content |
reset_content |
Clear all content for fresh start |
Workflow: Resume →
parse_pdf→generate_from_resume→ AI callsadd_*tools →preview_site— done in under a minute.
For detailed setup instructions, see the AI Integration guide.
React 18 · TypeScript 5 · Vite 5 · Chakra UI · Framer Motion · Nord Palette · i18next
2026-03-15v1.2.0 — Built-in English / Chinese bilingual support with language switcher and auto detection2026-03-15v1.1.0 — Added MCP server with 19 tools for AI-powered portfolio generation2026-03-14v1.0.0 — Initial release with publications, projects, experience, articles, awards, and news
Contributions are welcome! Feel free to:
- Star this repo to show support
- Issue for bugs or feature requests
- PR — check CONTRIBUTING.md first
- Discord — Join our server to chat
GPL-3.0-only · Copyright © 2026 Yaoyao (Freax) Qian



