VitePressBlog

vitepress-theme-terminal — VitePress Blog Template

By iXORTech

vitepress-theme-terminal is a VitePress blog theme that uses a terminal/TUI session as its visual language, including interface elements such as a toolbar, file explorer, status bar, and floating windows.

Explore the design

Compare the page layouts and mobile experience. Open any screenshot for a closer look.

3 previews
Desktop homepage1 / 3
Desktop captureTop of page

Actual screenshot captured by the server browser.

All pages & views 3

Screenshots show visual appearance; interactive behavior may differ.

Recorded 2026-10-01View source

What stands out

A quick read of the recorded project description.

01

A terminal/TUI-style interface composed of a toolbar, file explorer, scrolling viewport, status bar, and floating windows

02

A single mainColor derives all hover, border, dark, and selected tones, with neutral colors and syntax colors taken from IBM Carbon and Oxocarbon respectively

03

Three color schemes: dark, light, and a reading-oriented paper mode, with the selection persisted

04

Blog features cover dates, tags, categories, archives, series, covers, author attribution, license cards, and Waline comments and view counts

05

Client-side language switching does not produce /<lang>/ URL segments, and interface copy and language-specific body blocks can be localized

Template Details

The theme uses a "modern terminal session" as its overall interface metaphor: a top toolbar with navigation submenus and an overflow drawer, a NeoVim-style file explorer on the left, a real-time status bar at the bottom (status labels, breadcrumbs, reading progress, clock, settings), and floating tool windows. The design language references modal text editors, emphasizing panel order and keyboard operation; the rendered interface contains no third-party brand marks.

For color, only mainColor needs to be set; hover, border, dark, and selected tones are all derived from it. Neutral colors come from IBM Carbon, and syntax colors come from Oxocarbon. Dark (default), light, and a reading-oriented paper mode (also used for printing) are provided, and the selection is persisted.

Blog capabilities include dates, tags, categories, archives, series, cover images, author attribution, license cards, as well as Waline comments and view counts. Markdown supports code block cards and copy, eight callout types, LaTeX (MathML) and Typst math, quote blocks, image lightbox and Swiper galleries, and markdown-it extensions (footnotes, definition lists, abbreviations, superscript/subscript, insert, mark, emoji). The navigation side provides an automatically discovered explorer (which can work with in-source explorer.json metadata), adjustable and persisted browser/directory widths, heading anchor copy links, a find panel (/), and extensionless URLs.

Internationalization uses client-side language switching, with no /<lang>/ segment in the URL; frontmatter titles, category labels, interface copy, and even language-specific body content (::: lang blocks) can be localized, with built-in English and Simplified Chinese. Mobile is treated as a first-class target, with adaptations for every component, including the explorer drawer. Fonts use IBM Plex Sans/Serif/Mono/Math, Font Awesome, and a symbol-only Nerd Font, all loaded via stylesheets without relying on npm font packages.

The theme is distributed as an entire repository: a VitePress site, with the theme in .vitepress/theme/ and a demo site covering all features in src/. The repository requires Node.js 20 LTS or newer, uses pnpm as the package manager, and git is optional (the article "updated date" comes from git). Documentation is in docs/, where the design records in docs/design/ exist only in the repository and are not published to the site.

VitePressBlog

Is it right for your project?

Use Cases

  • Building a blog or personal site with a terminal interface as its visual style
  • A writing site that needs a complete blog structure such as tags, categories, archives, series, and comments
  • A site for Chinese and English readers that wants language switching without changing the URL structure
  • A project that wants to unify the entire interface color scheme with a single primary color and reduce item-by-item color tuning

Suitable For

  • Developers using VitePress who want to replace it with a terminal-style theme
  • Personal site authors who need built-in blog categorization, series, and comment capabilities
  • Site maintainers who need bilingual Chinese-English content and client-side language switching
  • Users who accept starting by cloning the entire repository

Getting started & customization

Use these recorded setup notes alongside the repository instructions for your chosen version.

  1. 1

    The theme is distributed as a repository; use git clone --recurse-submodules to obtain the demo friend links data, then run pnpm install

  2. 2

    The run commands are pnpm dev, pnpm build, and pnpm preview; the development server defaults to http://localhost:5173

  3. 3

    The environment requires Node.js 20 LTS or newer, uses pnpm as the package manager, and git is optional (used for article updated dates)

  4. 4

    Site identity, mainColor, author and license, toolbar navigation, and footer are configured in .vitepress/config.mts

  5. 5

    The article content license (default CC BY-NC-SA 4.0) is an independent themeConfig option and must be set by the site owner

Read repository instructions

License & source material

Usage conditions & limitations

Free to use · keep license notice

This entry covers the free version under the MIT license in the public repository; the free scope is the code of that version and does not mean that external services or third-party assets are free.

Must comply with when using

  • The code of this version may be used, modified, used commercially, and distributed free of charge.
  • When distributing copies or substantial portions of the code, retain the original author's copyright notice and the complete MIT license notice.
  • The code is provided as is; warranties and limitations of liability are governed by the original license and applicable law.

Additional costs & items to verify

  • The comment and view count features depend on the Waline comment service; you must deploy or connect to a Waline server yourself and configure the corresponding address, which is an external service dependency.
  • By default, the theme applies the CC BY-NC-SA 4.0 license to article content, which prohibits commercial use; the site owner must set or replace the content license themselves.
  • The demo friend links data is obtained via a git submodule and requires cloning with --recurse-submodules; otherwise the friend links page only shows manually written entries.
  • The article "updated date" depends on git repository information; without git, that date is unavailable.
  • Demo images, fonts, icons, and other third-party assets must be checked against their respective licenses and cannot be judged solely by the code's MIT license.
  • External services such as domains, hosting, databases, payments, or AI may incur additional charges.
View Original Text Basis

Permission is hereby granted, free of charge

Original License Text

Waline comments & view counts

Original README

The *content* license the theme applies to articles — CC BY-NC-SA 4.0 by default

Original README

`--recurse-submodules` pulls the demo friend-links data

Original README

git | any | Optional — the "Updated" date on articles comes from git

Original README
https://github.com/iXORTech/vitepress-theme-terminal/blob/main/LICENSEhttps://github.com/iXORTech/vitepress-theme-terminal/blob/main/README.md

Compiled by DeepSeek based on repository license and README ·2026-10-01. Results only cover the materials read; dependencies, images, fonts, and subsequent term changes are subject to their respective original texts.

Project checks & description sources

Template Information

Source platforms
GitHub
Documentation and maintenance reference score
More documented · 80 / 100
Technologies
VitePress
Website type
Blog
How this score is calculated

Our heuristic uses license records (up to 30), a demo link (12), a preview (10), stars (15), recorded maintenance (15), description completeness (8), feature records (5) and classification data (5). It is not a code, security or performance test, or a Google score. A link does not establish tested functionality.

What to verify for this project

Repository update recorded
2026-08-07
Screenshot last checked
2026-10-01

A demo link is listed. Check it with your own content and viewport sizes; its presence does not confirm that forms, authentication or payments work.

The catalog identifies VitePress as the primary stack. Check the actual dependency manifest and lockfile for versions and hosting requirements. These notes use recorded metadata, not a code audit or a deployment test.

Use a selection guide →

How this description was prepared

AI-assisted description based on catalog records and repository material. Repository authors are not automatically the reviewers of this description.

Automatically checked against source and license rules; no manual editorial review.

Inspect the recorded source material

SHA-256: 6724cfe123c5c75510d784f83c88deca6922d2c7f8c28dfcb17c20c4f54996c4

2026-10-01T03:58:30.965Z

Source file / repository
# VitePress Theme Terminal

**English** · [简体中文](README_zh-Hans.md)

![The theme's demo site in dark mode: tool bar, file explorer, a shell-prompt card in the viewport, footer, and status bar](.github/assets/cover.png)

A custom [VitePress](https://vitepress.dev) theme for blogs and personal sites
that presents itself as a modern terminal/TUI session: a tool bar, a file
explorer, a scrolling viewport, a status bar, and floating utility windows.
The design language is inspired by modal text editors — panel discipline,
keyboard-centric utilities, and editor chrome — with no third-party branding in
the rendered UI.

## Features

- **TUI shell** — tool bar with nav submenus and an overflow drawer, a
  NeoVim-style file explorer, a live status bar (state chip, breadcrumb, reading
  progress, clock, settings), and floating windows.
- **One color configures everything** — set `mainColor`; every hover, border,
  dim, and selection tone is *derived* from it. IBM Carbon supplies the neutral
  palette, Oxocarbon the syntax colors.
- **Three color modes** — dark (default), light, and a reader-optimized paper
  mode that is also used for printing. The choice is persisted.
- **Blogging** — posts with dates, tags, categories, archives, series, cover
  images, author byline, license card, and Waline comments & view counts.
- **Rich Markdown** — code-block cards with copy, eight callout types, LaTeX
  (MathML) and Typst math, pull quotes, image lightbox and Swiper galleries,
  plus the markdown-it extension suite (footnotes, deflists, abbr, sub/sup,
  ins, mark, emoji).
- **Navigation** — auto-discovered explorer with source-local `explorer.json`
  metadata, resizable and persisted explorer/TOC, heading anchors with
  copy-link, a find palette (`/`), and clean, suffix-free URLs.
- **Internationalization** — client-side language switching with **no
  `/<lang>/` URL segment**: localized frontmatter titles, taxonomy labels, UI
  strings, and even per-language page bodies (`::: lang` blocks). English and
  Simplified Chinese ship built in.
- **Mobile is first-class** — every component adapts, including an explorer
  drawer.
- **Typography** — IBM Plex Sans/Serif/Mono/Math, Font Awesome, and a
  symbols-only Nerd Font, all loaded via stylesheets (no npm font packages).

## Requirements

| Tool | Version | Notes |
| --- | --- | --- |
| Node.js | 20 LTS or newer | What VitePress 2 expects |
| pnpm | any current release | The package manager this repo uses |
| git | any | Optional — the "Updated" date on articles comes from git |

## Quick start

The theme ships **as this repository**: a VitePress site whose theme lives in
`.vitepress/theme/`, with a demo site in `src/` that exercises every feature.

```sh
git clone --recurse-submodules https://github.com/iXORTech/vitepress-theme-terminal.git my-site
cd my-site
pnpm install

pnpm dev       # dev server with hot reload, http://localhost:5173
pnpm build     # production build into .vitepress/dist
pnpm preview   # serve the built site locally
```

`--recurse-submodules` pulls the demo friend-links data; without it the friends
page simply shows its hand-authored entries.

Then make it yours in `.vitepress/config.mts` — site identity, `mainColor`,
author & license, tool-bar nav, and footer. The step-by-step version, including
how to clear out the demo content, is in
[`docs/guide/getting-started.md`](docs/guide/getting-started.md).

## Repository layout

```
.vitepress/config.mts     site + theme configuration — the file you edit most
.vitepress/theme/         the theme implementation (components, styles, composables)
src/                      site content (VitePress `srcDir`) — the demo site
docs/                     documentation home (the only place a document is edited)
src/docs/                 generated copy of the published docs (git-ignored)
AGENTS.md                 instructions for AI coding agents
.agent/                   task board and per-file context cache
```

## Documentation

Everything lives in [`docs/`](docs/index.md). The user-facing part is also
published on the built site at `/docs/`.

| Document | Contents |
| --- | --- |
| [Getting Started](docs/guide/getting-started.md) | Requirements, install, running the site, the five edits that make it yours |
| [Writing Content](docs/guide/writing-content.md) | Page types, frontmatter, code blocks, callouts, math, images, Vue in Markdown |
| [Blogging](docs/guide/blogging.md) | Posts, tags & categories, listing pages, series, covers, end-of-article cards |
| [Navigation](docs/guide/navigation.md) | Tool bar, explorer, TOC, find palette, status bar, keyboard shortcuts |
| [Internationalization](docs/guide/internationalization.md) | Language switching, localizable text, `::: lang` bodies, adding a language |
| [Customization](docs/guide/customization.md) | Colors and modes, fonts and icons, styling rules, custom views and slots |
| [Deployment](docs/guide/deployment.md) | Build & preview, hosting, subpath deploys, CI checkout, pre-launch checklist |
| [`themeConfig` reference](docs/configuration/theme-config.md) · [Frontmatter reference](docs/configuration/frontmatter.md) | Every option, with type, default, and example |

The binding design records under [`docs/design/`](docs/design/) are
repository-only — they are decision records for contributors and coding agents,
and are deliberately not published on the site.

## Contributing

Read [`AGENTS.md`](AGENTS.md) first: it is the single source of the workflow
rules, engineering conventions, and session protocol for this repository — for
humans and AI agents alike. In short: every requirement becomes a task in
[`.agent/plan.md`](.agent/plan.md) before implementation, design decisions are
changed in `docs/design/` before code, styling is SCSS-only, UI strings go
through the locale system, and mobile is not optional.

## License

[MIT](LICENSE) © 2026 iXOR Technology.

That covers the theme itself. The *content* license the theme applies to
articles — CC BY-NC-SA 4.0 by default — is a separate `themeConfig` option for
site owners to set for their own writing.
Report a correction

Explore similar templates

Compare previews and descriptions within the same stack and category.