Skip to content

Biki-dev/Own-term

Own-term πŸš€

Own-term Banner

Create a beautiful, interactive terminal portfolio β€” installable via npx or npm i -g

npm version CI License: MIT PRs Welcome

Demo β€’ Features β€’ Quick Start β€’ Documentation β€’ Contributing


🎯 What is Own-term?

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.

Why Own-term?

  • 🎨 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 npx or install globally
  • πŸ› οΈ Developer friendly - TypeScript, well-documented, tested

πŸ“Ί Demo

Demo GIF

Try it now:

npx own-term

✨ Features

Core Features (MVP)

  • βœ… 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

Advanced Features

  • πŸ”Œ Plugin system for custom commands
  • 🎨 Theme system (colors/fonts/spacing)
  • πŸ“Š Component library (Box, Table, Charts)
  • πŸ§ͺ Full test coverage
  • πŸš€ CI/CD pipeline
  • πŸ“š Comprehensive documentation

πŸš€ Quick Start

Try it instantly

npx own-term

Install globally

npm install -g own-term
own-term

Create your own portfolio

  1. 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"
};
  1. Run your portfolio:
npx own-term --config=./termfolio.config.ts

πŸ“– Documentation

Available Commands

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

Configuration

See templates/ for example configurations:

  • Default - Standard professional template
  • Hacker - Security researcher theme
  • Minimal - Bare essentials

Themes

Built-in themes:

  • dark (default) - Modern dark theme with cyan/purple accents
  • light - Clean light theme
  • hacker - Matrix-style green terminal

Plugin Development

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!");
  });
});

πŸ› οΈ Development

Prerequisites

  • Node.js 18+
  • npm or yarn

Setup

# 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

Project Structure

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

🀝 Contributing

We love contributions! Please read our Contributing Guide to get started.

Ways to Contribute

  • πŸ› Report bugs
  • πŸ’‘ Suggest features
  • πŸ“ Improve documentation
  • 🎨 Create new themes
  • πŸ”Œ Build plugins
  • βœ… Write tests

πŸ“„ License

MIT Β© Biki-dev

See LICENSE for details.


🌟 Showcase

Using Own-term for your portfolio? Add it here!


Made with ❀️ by developers, for developers

⬆ Back to top

About

No description, website, or topics provided.

Resources

License

Code of conduct

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published