Skip to content

nor0x/burner

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

54 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Burner πŸ”₯

Burner Logo

Spark ideas. Burn πŸ”₯ when done. It's the home 🏑 for burner projects.

CI Publish NuGet NuGet NuGet Downloads Deploy Website

A CLI tool to create and manage temporary dev projects for quick experiments.

Burner Screenshot

Requirements

For Users

For Development

Dependencies

Test Framework

Installation

dotnet tool install -g Burner-CLI

Features

  • Quick Scaffolding – Spin up projects instantly using predefined templates
  • Import Existing Projects – Move or copy existing folders into burner home for tracking
  • Organized Storage – All projects live in a unified burner directory
  • Auto-Naming – Projects are prefixed with YYMMDD-NAME format for easy identification
  • Easy Cleanup – Remove projects when done, with auto-cleaning of old experiments
  • Extensible – Add your own custom templates

Commands

burner new <template> [name]

Create a new project from a template. Name is auto-generated if not provided.

burner new dotnet                    # Auto-name: dotnet-HHMMSS
burner new dotnet my-experiment      # Create .NET console app
burner new web quick-test            # Create HTML/JS/CSS project
burner new react my-app -d ~/code    # Use custom directory
burner new svelte my-app -i          # Interactive mode for prompts

Interactive Mode: Some templates (like Vite-based ones) require user input during creation. Use -i or --interactive to enable interactive mode, or add # BURNER_INTERACTIVE to your template script for auto-detection.

burner list

List all burner projects.

burner list        # List projects
burner ls          # Alias
burner list -a     # Show full paths

burner burn

Delete projects (cleanup).

burner burn my-experiment     # Delete specific project
burner burn --days 30         # Delete projects older than 30 days
burner burn -f --days 7       # Force delete without confirmation
burner burn -i                # Interactive mode: select from list
burner burn --all             # Delete ALL projects
burner burn --all -f          # Delete ALL projects without confirmation

burner open [name]

Open a project directory. Interactive mode if no name provided.

burner open                     # Interactive: select project and action
burner open -i                  # Interactive mode (explicit)
burner open my-experiment       # Print project path
burner open my-experiment -c    # Open in editor (uses configured editor)
burner open my-experiment -e    # Open in file explorer

burner import

Import the current folder as a burner project. By default, the folder is moved to the burner home directory with a YYMMDD- prefix added to track its age.

burner import                   # Move current folder to burner home
burner import -n my-project     # Move with custom name
burner import --copy            # Copy instead of moving
burner import -n my-project -f  # Move without confirmation

Note: When moving (default behavior), you'll be prompted for confirmation. The original folder will no longer exist at its current location. Use --copy if you want to keep the original folder.

Imported projects are marked with the custom template, as they weren't created from a burner template.

burner config

View and update configuration.

burner config                      # Show current config
burner config --home ~/projects    # Set burner home directory
burner config --templates ~/tpl    # Set templates directory
burner config --auto-clean-days 60 # Set cleanup threshold
burner config --editor cursor      # Set default editor (code, cursor, rider, etc.)
burner config --open-home          # Open burner home in explorer
burner config --open-templates     # Open templates dir in explorer

burner templates

List available templates (built-in and custom).

burner templates

burner stats

Show project statistics with charts.

burner stats    # Overview, projects by template, age distribution

Built-in Templates

Template Description
dotnet .NET Console Application
web HTML + JS + CSS Web App

Custom Templates

Extend Burner with your own templates by adding executable scripts to the templates directory.

Template Requirements

  • Scripts can be written in any language (bash, PowerShell, Python, etc.)
  • Must be executable from the command line
  • Script filename becomes the template alias (e.g., react.ps1 β†’ react)
  • Add # BURNER_INTERACTIVE comment in the first 10 lines for templates requiring user input

Environment Variables

Burner sets these environment variables before running your template script:

Variable Description Example
BURNER_NAME User-provided project name my-experiment
BURNER_PATH Full path to project directory /home/user/.burner/projects/260107-my-experiment
BURNER_DATED_NAME Dated folder name 260107-my-experiment

The working directory is automatically set to BURNER_PATH, so you can create files directly without changing directories.

Example Templates

PowerShell (react.ps1):

#!/usr/bin/env pwsh
# react.ps1 - Creates a React app using Vite
Set-Location $env:BURNER_PATH
echo "y" | npm create vite@latest $env:BURNER_DATED_NAME -y -- --template react --no-rolldown
Set-Location $env:BURNER_DATED_NAME
npm install

PowerShell - Interactive (svelte.ps1):

#!/usr/bin/env pwsh
# BURNER_INTERACTIVE
# svelte.ps1 - Creates a Svelte app (auto-enables interactive mode)
Set-Location $env:BURNER_PATH
npm create vite@latest . -- --template svelte-ts
npm install
npm pkg set name=$env:BURNER_NAME

Bash (react.sh):

#!/bin/bash
# Creates a React app using Vite
set -e
npm create vite@latest . -- --template react
npm install

Python (python.py):

#!/usr/bin/env python3
import os
name = os.environ['BURNER_NAME']
with open('main.py', 'w') as f:
    f.write(f'# {name}\nprint("Hello from {name}!")\n')
with open('requirements.txt', 'w') as f:
    f.write('')

Configuration

Burner can be configured via a config file located at ~/.burner/config.json:

{
  "burnerHome": "~/.burner/projects",
  "burnerTemplates": "~/.burner/templates",
  "autoCleanDays": 30,
  "editor": "code"
}
Option Description Default
burnerHome Where new projects are created ~/.burner/projects
burnerTemplates Where custom template scripts are stored ~/.burner/templates
autoCleanDays Auto-remove projects older than this (0 to disable) 30
editor Default editor command for opening projects code

Development

For local development and testing, use the dev.ps1 script:

# Full test: uninstall, pack, install, and run test commands
./dev.ps1

# Just uninstall the tool
./dev.ps1 -Uninstall

# Run without reinstalling
./dev.ps1 -Run

# Skip install, just run verification
./dev.ps1 -SkipInstall

About

the home for your burner projects πŸ”₯

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors 3

  •  
  •  
  •