Create a beautiful, interactive terminal portfolio β installable via npx or npm i -g
Demo β’ Features β’ Quick Start β’ Documentation β’ Contributing
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 - Dark, light, and hacker themes built-in
- β‘ Zero config - Works out of the box, customize when you want
- π¦ Easy to use - Run with
npxor install globally - π οΈ Developer friendly - TypeScript, well-documented, tested
Try it now:
npx own-term- β
Interactive shell with commands:
about,projects,skills,contact,resume,theme - β
Config file (
termfolio.config.ts) for easy customization - β Beautiful ASCII headers and boxed layouts
- β Color themes with gradient support
- β Installable via npm / runnable via npx
- π Plugin system for custom commands
- π¨ Theme system (colors/fonts/spacing)
- π Component library (Box, Table, Charts)
- π§ͺ Full test coverage
- π CI/CD pipeline
- π Comprehensive documentation
npx own-termnpm install -g own-term
own-term- Create a config file (
termfolio.config.ts):
export default {
name: "Your Name",
title: "Your Title",
asciiLogo: "YOUR-NAME",
about: "A brief description about yourself",
theme: "dark", // dark, light, or hacker
links: {
github: "https://github.com/yourusername",
linkedin: "https://linkedin.com/in/yourusername",
email: "you@example.com"
},
projects: [
{
name: "Awesome Project",
desc: "Description of your project",
repo: "https://github.com/yourusername/project",
tags: ["javascript", "react"],
status: "active"
}
],
skills: {
languages: ["JavaScript", "TypeScript", "Python"],
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 |
View projects |
skills |
See skills and technologies |
contact |
Get contact information |
resume |
Open resume (if configured) |
theme [name] |
Change theme |
clear |
Clear the terminal |
help |
Show available commands |
exit |
Exit the portfolio |
See templates/ for example configurations:
- Default - Standard professional template
- Hacker - Security researcher theme
- Minimal - Bare essentials
Built-in themes:
- dark (default) - Modern dark theme with cyan/purple accents
- light - Clean light theme
- hacker - Matrix-style green terminal
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!");
});
});- 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 lintown-term/
βββ src/
β βββ cli.ts # Entry point
β βββ config.ts # Config loader
β βββ types.ts # TypeScript definitions
β βββ shell/ # Shell engine & router
β βββ render/ # Rendering components
β βββ commands/ # Core commands
β βββ plugins/ # Plugin system
β βββ themes/ # Theme definitions
βββ templates/ # Starter templates
βββ tests/ # Test files
βββ bin/ # Compiled output
We love contributions! Please read our Contributing Guide to get started.
- π Report bugs
- π‘ Suggest features
- π Improve documentation
- π¨ Create new themes
- π Build plugins
- β Write tests
MIT Β© Biki-dev
See LICENSE for details.
Using Own-term for your portfolio? Add it here!
- Your Portfolio - Your Name
Made with β€οΈ by developers, for developers