A CLI tool for creating OpenTUI projects from templates.
# Use with bun (no installation required)
bun create tui my-tui-projectWhen you run create-tui, the CLI performs the following steps:
- Template Validation — Validates the template exists on GitHub
- Project Directory Setup — Creates the project directory (or prompts to delete if it already exists)
- Template Download — Downloads the selected template from GitHub
- Package Configuration — Updates
package.jsonwith your project name - Dependency Installation — Installs all dependencies using your package manager
- Git Initialization — Optionally initializes a git repository
- Update Check — Checks for newer versions and notifies you if an update is available
bun create tuiThis will prompt you for:
- Project name
- Template choice (Core, React, Solid, or Custom)
# Create a React project
bun create tui -t react my-react-app
# Create a Core project
bun create tui -t core my-core-app
# Create a Solid project
bun create tui -t solid my-solid-appThe CLI supports three formats for specifying templates:
Simple names for the official templates:
bun create tui -t core my-project
bun create tui -t react my-project
bun create tui -t solid my-projectUse any GitHub repository with a shorthand syntax:
# Use a repository root as template
bun create tui -t username/my-template my-project
# Use a nested directory within a repository
bun create tui -t username/repo/path/to/template my-projectFor maximum clarity or when you need to specify a branch:
# Repository root
bun create tui -t https://github.com/username/repo my-project
# Specific branch and path
bun create tui -t https://github.com/username/repo/tree/main/templates/starter my-project
# With verbose output to see detailed progress
bun create tui -t https://github.com/username/repo -v my-projectAll templates must have a package.json file at the template root.
| Alias | Description |
|---|---|
core |
OpenTUI project with core functionality |
react |
OpenTUI project with React integration |
solid |
OpenTUI project with Solid.js integration |
Any public GitHub repository can be used as a template. Use either shorthand (owner/repo/path) or full GitHub URLs.
| Argument | Description | Required |
|---|---|---|
project-name |
The folder to bootstrap the project in | No |
| Option | Alias | Description |
|---|---|---|
--template |
-t |
Template: alias (core, react, solid), shorthand (owner/repo), or GitHub URL |
--no-git |
Skip initializing a git repository | |
--no-install |
Skip installing dependencies | |
--verbose |
-v |
Show detailed progress during template validation and download |
--help |
-h |
Show help information |
--version |
Show version number |
The CLI automatically checks for newer versions after each run. If an update is available, you'll see a notification with the command to update:
Update available! 1.0.0 -> 1.1.0
Run bun add -g create-tui@latest to update
This check is non-blocking and times out after 3 seconds to avoid slowing down the CLI.
# Install dependencies
bun install
# Run in development mode
bun run dev
# Build for production
bun run buildMIT