HN 표시: 자체 기간 – 터미널에서 개발자 포트폴리오 실행(npx 자체 기간)

hackernews | | 🔬 연구
#claude #node.js #npx #review #개발자 #터미널 #포트폴리오
원문 출처: hackernews · Genesis Park에서 요약 및 분석

요약

개발자가 터미널 기반의 포트폴리오를 만들 수 있도록 돕는 타입스크립트 프레임워크 'Own-term'이 공개되었습니다. 사용자는 `npx own-term` 명령어를 통해 CLI 환경에서 `about`이나 `projects` 같은 명령어로 경험할 수 있는 인터랙티브한 포트폴리오를 구축하고 NPM을 통해 배포할 수 있습니다. 이 프로젝트는 MIT 라이선스를 따르며, 테스트 커버리지 개선이나 탭 완성 기능 추가 등 다양한 기여를 기다리고 있습니다.

본문

Create a beautiful, interactive terminal portfolio — installable via npx or npm i -g Own-term is a powerful, reusable framework for creating beautiful terminal portfolios. Not just a single person's portfolio — it's a complete framework that lets anyone create their own interactive terminal experience. - 🎨 Beautiful by default - Stunning themes, gradients, and ASCII art - 🔌 Plugin system - Extend with custom commands and features - 🎭 Multiple themes - 6 built-in themes (dark, light, hacker, neo, dracula, nordic) - 💻 Dynamic prompts - 5 configurable prompt styles (git, time, dashboard, minimal, cyberpunk) - ⚡ Zero config - Works out of the box, customize when you want - 📦 Easy to use - Run with npx or install globally - 🛠️ Developer friendly - TypeScript, well-documented, tested - ✅ Interactive shell with commands: about ,projects ,skills ,contact ,resume ,theme ,help - ✅ Config file ( termfolio.config.ts ) for easy customization - ✅ Beautiful ASCII logo with Claude-style gradient (orange → pink → purple) - ✅ 6 color themes with gradient support - ✅ 5 dynamic prompt styles (git-style, time-based, dashboard, minimal, cyberpunk) - ✅ Context-aware prompts (changes based on current command) - ✅ Animated boot sequence and welcome screen - ✅ Installable via npm / runnable via npx - 🔌 Plugin system for custom commands - 🎨 Theme system with 6 built-in themes - 📊 Beautiful rendering components (tables, progress bars, cards) - 🧪 Full test coverage - 🚀 CI/CD pipeline with GitHub Actions - 📚 Comprehensive documentation npx own-term npm install -g own-term own-term - Create a config file ( termfolio.config.ts ): export default { name: "Your Name", title: "Your Title", about: "A brief description about yourself", theme: "dark", // dark, light, hacker, neo, dracula, nordic promptStyle: "dashboard", // git, time, dashboard, minimal, cyberpunk links: { github: "https://github.com/yourusername", linkedin: "https://linkedin.com/in/yourusername", email: "[email protected]" }, projects: [ { name: "Awesome Project", desc: "Description of your project", repo: "https://github.com/yourusername/project", tags: ["javascript", "react"], status: "active" // active, wip, archived } ], skills: { languages: [ { name: "JavaScript", level: 90 }, // with progress bar "Python" // or simple string ], frameworks: ["React", "Node.js"], tools: ["Git", "Docker", "VS Code"] }, resume: "https://yourwebsite.com/resume.pdf" }; - Run your portfolio: npx own-term --config=./termfolio.config.ts | Command | Description | |---|---| about | Learn about the person | projects | Browse projects (interactive picker) | skills | See skills with progress bars | contact | Get contact information | resume | Open resume (if configured) | theme [name] | Change theme (or see theme gallery) | clear | Clear terminal and show welcome screen | help | Show available commands | exit | Exit the portfolio | open [service] | Quick open links (e.g., open github ) | Built-in themes: - dark (default) - Modern dark theme with cyan/purple accents - light - Clean light theme - hacker - Matrix-style green terminal - neo - Neon pink & cyan - dracula - Classic Dracula palette - nordic - Muted Nordic tones Change theme in config: theme: "dracula" Or interactively: theme dracula Choose from 5 dynamic prompt styles: - git - Git-style: user@termfolio ~/project (context) ❯ - time - Time-based: [14:23] 📧 project:context ▶ - dashboard (default) - Full info with time, context, counter - minimal - Zsh-style: ◆ ~/project ➜ - cyberpunk - Hacker aesthetic: █ root@project [context] $ Configure in termfolio.config.ts : promptStyle: "time" Prompts are context-aware and change based on your current command! Two formats supported: skills: { // With progress bars (0-100) languages: [ { name: "TypeScript", level: 92 }, { name: "JavaScript", level: 95 } ], // Simple pills tools: ["Git", "Docker", "VS Code"] } See templates/ for complete examples: - Default - Standard professional template - Hacker - Security researcher theme - Minimal - Bare essentials Create custom plugins to extend functionality: import { createPlugin } from "own-term"; export default createPlugin("my-plugin", "1.0.0", (api) => { api.registerCommand("custom", "My custom command", async (args) => { api.render.header("Custom Command"); api.render.text("Hello from my plugin!"); // Access config const config = api.getConfig(); api.render.info(`User: ${config.name}`); // Use theme colors api.render.success("Command executed!"); }); }); Add plugins to your config: export default { // ... other config plugins: ["@username/my-plugin-package"] }; - Node.js 18+ - npm or yarn # Clone the repository git clone https://github.com/Biki-dev/own-term.git cd own-term # Install dependencies npm install # Run in development mode npm run dev # Build npm run build # Run tests npm test # Lint npm run lint # Format code npm run format own-term/ ├── src/ │ ├── cli.ts # Entry point │ ├── config.ts # Config loader │ ├── types.ts # TypeScript definitions │ ├── shell/

Genesis Park 편집팀이 AI를 활용하여 작성한 분석입니다. 원문은 출처 링크를 통해 확인할 수 있습니다.

공유

관련 저널 읽기

전체 보기 →