npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

@ashiba-dev/ashiba

v0.1.4

Published

Blazing fast file scaffolding with Bun

Downloads

28

Readme

🏗️ Ashiba

Ashiba (足場) means “scaffolding” in Japanese — a blazing-fast file scaffolding CLI built with Bun.
Define reusable project templates using TOML, and generate files in miliseconds from the command line.


✨ Features

  • Instant startup — built on Bun, optimized for speed
  • 🧩 Template-based generation — define scaffolds in .ashiba/
  • 🗄️ TOML-powered config — readable, minimal, and flexible
  • 🧠 Interactive prompts — guided input with select/dropdown support
  • 🪶 Lightweight architecture — clean separation of CLI, config, and file logic
  • 🔌 Extensible commands — powered by commander for structured CLI parsing

📦 Installation

Once published, install globally with Bun:

bun install -g @ashiba-dev/ashiba

For local development:

bun link

Then you can run ashiba anywhere on your system.


🧱 Quick Start

Create a .ashiba directory in your project root:

.ashiba/
├─ blog-post.toml
├─ blog-post/
│  └─ {title}.md

Define your scaffold config in blog-post.toml:

description = "A basic blog post template"
order = ["title", "author"]

[title]
description = "The title of the post"

[author]
description = "Who wrote the blog post"
select = ["Nick", "Alice", "Jean"]

Then generate your scaffold:

ashiba new blog-post -o path/to/where/you/want/the/generated/files

You’ll be prompted for each field:

? The title of the post: Hello World
? Who wrote the blog post: Alice

Ashiba will interpolate variables into filenames and contents:

./
└── Hello World.md

📋 Input Types

Ashiba supports four input types in your TOML config:

Text — Standard text input

[name]
description = "The name of the file"

Number — Numeric input with optional min/max validation

[reading_goal]
description = "How many books do you want to read?"
type = "number"
default = 5
min = 1
max = 100

Select — Choose from predefined options

[author]
description = "Who is writing the thing?"
select = ["Larry", "Curly", "Moe"]

Confirm — Boolean yes/no prompt

[publish]
confirm = "Should this be published now?"

🔧 Project Architecture

ashiba/
├─ src/
│  ├─ cli/
│  │  ├─ index.ts        # CLI entry point & program setup
│  │  └─ commands/
│  │     ├─ index.ts     # Command exports
│  │     ├─ new.ts       # Scaffold new template command
│  │     └─ list.ts      # List templates command
│  ├─ core/
│  │  ├─ config.ts       # Loads and validates TOML configs
│  │  ├─ scaffold.ts     # Core file generation & interpolation
│  │  ├─ prompt.ts       # Interactive CLI prompts
│  │  └─ templates.ts    # Template discovery & metadata
│  └─ utils/
│     └─ fs.ts           # File system utilities
├─ .ashiba/              # User template definitions
├─ dist/                 # Compiled binary output
├─ package.json
├─ tsconfig.json
├─ bunfig.toml
└─ README.md

Core commands

| Command | Description | | ----------------------- | ------------------------------------------------- | | ashiba new <template> | Create a new file scaffold using a named template | | ashiba list | List all available templates | | ashiba help | Show command help and options |

Ashiba uses commander for command handling, smol-toml for parsing TOML, arktype for validation, and @inquirer/prompts for interactive input.


💡 Example Use Cases

  • Generate blog posts and changelogs
  • Bootstrap feature modules or components
  • Create new microservices or handler scaffolds

🧰 Development

Run locally:

bun run dev new blog-post

Build for distribution:

bun run build

New commands are built in src/cli/commands/ using commander


⚖️ License

MIT — feel free to hack, modify, and scaffold your heart out.