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

@blackycoderx4/devc

v0.10.0

Published

CLI for generating devcontainers

Readme

devc

CLI tool for generating ready-to-use development containers.

Overview

devc is a command-line interface that generates development container configurations for various technologies. It downloads templates from the devcontainers repository and sets them up in your project.

Features

  • 🚀 Instant dev environment setup
  • 📦 Multiple technology templates (including nested categories like android/kotlin-native)
  • 🔄 Auto-updates for templates
  • 💾 Offline support with local cache
  • ⚙️ Git configuration support
  • 🎯 Interactive mode with guided prompts
  • 🎛️ Interactive version selector — customize tool versions (Android API, Kotlin, NDK, Node, etc.) with arrow-key selection
  • 🔗 Smart version suggestions — Build Tools auto-suggests the matching version when you pick an Android API Level

Installation

npm (Recommended — works on all platforms)

npm i @blackycoderx4/devc

Requires Node.js 14+. The package automatically downloads the correct native binary for your platform (Windows, Linux, or macOS).

Quick Install (Linux / macOS)

curl -fsSL https://raw.githubusercontent.com/SamitoX4/devc/main/docs/install.sh | bash

Windows

If you have Node.js installed, use the npm method above.

Alternatively:

  • WSL2: Run the Linux installer inside your WSL2 distribution.
  • Manual: Download the latest .zip for Windows from the Releases page, extract it, and add devc.exe to your PATH.

From Source

git clone https://github.com/SamitoX4/devc.git
cd devc/cli
cargo build --release

On Linux/macOS copy the binary to your PATH:

cp target/release/devc ~/.local/bin/

On Windows the binary will be at target\release\devc.exe.

Usage

Interactive Mode (Recommended)

Just run:

devc gen

The CLI will guide you through:

  1. Select a template (arrow keys) — supports nested templates like android/kotlin-native

  2. Project name (default: current directory)

  3. Git User Name

  4. Git User Email

  5. Customize versions (optional) — if the template supports parameterized versions, you can pick from a curated list:

    KOTLIN_VERSION:
      2.0.0
      2.0.10
    > 2.0.21
      2.1.0
    
    ANDROID_API_LEVEL:
      33
      34
      35
    > 36
    
    BUILD_TOOLS_VERSION:
      33.0.0
      34.0.0
      35.0.0
    > 36.0.0   ← auto-suggested from API Level 36

With Flags

Skip prompts by passing flags:

# Specify template and project name
devc gen --template nodejs --name my-project

# Nested templates (Android stack)
devc gen --template android/kotlin-native --name my-native-app
devc gen --template android/flutter --name my-flutter-app
devc gen --template android/ndk --name my-ndk-project

# With Git configuration
devc gen --template android/react-native --name my-app --git-name "John Doe" --git-email "[email protected]"

# All options
devc gen -t java -n my-java-app --git-name "John Doe" --git-email "[email protected]"

Configure Git

# Interactive (prompts for name and email)
devc config

# With flags
devc config --git-name "Your Name" --git-email "[email protected]"

# Show current configuration
devc config --show

List Available Templates

devc list

Update Templates

devc update

Available Templates

General

| Template | Description | |----------|-------------| | nodejs | Node.js with TypeScript, npm/pnpm | | java | Java 17 + Maven | | laravel | PHP 8.3 + Composer | | rust | Rust (stable) + Cargo | | go | Go 1.22 | | python | Python 3.12 + pip |

Android Stack

| Template | Description | Customizable Versions | |----------|-------------|----------------------| | android/java | Java 17 + Android SDK | API Level, Build Tools, NDK, CMD Line Tools | | android/kotlin-native | Kotlin/Native + Android SDK | Kotlin, API Level, Build Tools, NDK, CMD Line Tools | | android/ndk | Android NDK + CMake | API Level, Build Tools, NDK, CMake, CMD Line Tools | | android/react-native | Node.js + React Native + Android SDK | Node version, API Level, Build Tools, NDK, CMD Line Tools | | android/flutter | Flutter + Android SDK | Flutter branch, API Level, Build Tools, NDK, CMD Line Tools |

Commands

devc gen [options]              Generate a devcontainer (interactive if no options)
devc list [options]             List available templates
devc update [options]           Update templates from repository
devc config [options]          Configure Git user settings

Options:
  -t, --template <name>        Template name (e.g., nodejs, android/kotlin-native)
  -n, --name <name>            Project name
  --git-name <name>            Git user name
  --git-email <email>          Git user email
  --verbose                    Verbose output

How It Works

  1. First Run: Downloads templates to ~/.devc/cache/
  2. Template Discovery: Automatically finds all valid templates, including nested ones like android/kotlin-native
  3. Interactive Mode: Guides you through setup with prompts, including an optional version picker for parameterized templates
  4. Flag Mode: Skip prompts by passing options
  5. Git Configuration: Saved to ~/.devc/config.json for future use
  6. Each Execution: Checks for updates in the background
  7. Offline Mode: Uses cached templates when offline

Project Structure

devc/
├── .github/           # GitHub Actions workflows
│   └── workflows/
│       └── release.yml
├── cli/               # Rust CLI source code
│   ├── src/
│   │   ├── commands/  # CLI commands (gen, list, update, config)
│   │   └── utils/     # Cache, fetcher, copier, merger
│   └── Cargo.toml
├── npm/               # npm wrapper package
│   ├── bin/
│   ├── install.js
│   ├── platform.js
│   └── package.json
├── docs/              # GitHub Pages (landing + install)
│   ├── index.html
│   └── install.sh
└── scripts/          # Build scripts
    └── build-release.sh

Creating a Release

Releases are built automatically with GitHub Actions. Simply push a version tag:

git tag v0.3.0
git push origin v0.3.0

GitHub Actions will compile binaries for Linux, macOS (Intel & Apple Silicon), and Windows, package them with templates, and publish them to the Releases page.

Manual Release (local)

If you prefer to build locally:

cd scripts
chmod +x build-release.sh
./build-release.sh

After the package is created, upload it manually to GitHub Releases.

Configuration

The CLI stores configuration in:

~/.devc/
├── cache/
│   └── templates/     # Downloaded templates
└── config.json       # CLI configuration (Git user, etc.)

config.json Example

{
  "templates_version": "1.0.0",
  "last_check": "2026-03-31",
  "git": {
    "name": "Your Name",
    "email": "[email protected]"
  }
}

License

MIT

Links