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

tamim-cli

v1.1.20

Published

A CLI tool for generating module boilerplate code including routes, controllers, services, and more

Readme

Tamim CLI

A powerful CLI tool for generating TypeScript-based module boilerplate code with MongoDB and Express.js integration. Created by Ashiqur Rahman Tamim.

Features

  • 🚀 Instantly generate complete module structure
  • 📁 Creates all necessary files (routes, controllers, services, models, etc.)
  • 🔄 Automatic Postman collection generation
  • 📝 TypeScript support out of the box
  • 🗃️ MongoDB model generation
  • 🛣️ Express.js route setup
  • ✨ Built-in validation templates
  • 📦 File upload handling support

Installation

npm install -g tamim-cli

Usage

Create a New Project

tamim create-new-app

It will ask about the name of the app and the package manager you want to use once you answer those it will create a folder structure like this

├── node_modules
├── src
│   ├── app
│   │   ├── middlewares
│   │   │   ├── auth.ts
│   │   │   ├── fileUploadHandler.ts
│   │   │   ├── globalErrorHandler.ts
│   │   │   └── validateRequest.ts
│   │   └── modules
│   │       ├── auth
│   │       ├── resetToken
│   │       └── user
│   ├── app.ts
│   ├── config
│   │   └── index.ts
│   ├── enums
│   │   └── user.ts
│   ├── errors
│   │   ├── ApiError.ts
│   │   ├── handleValidationError.ts
│   │   └── handleZodError.ts
│   ├── helpers
│   │   ├── emailHelper.ts
│   │   ├── jwtHelper.ts
│   │   ├── paginationHelper.ts
│   │   └── socketHelper.ts
│   ├── routes
│   │   └── index.ts
│   ├── seed
│   │   └── seedAdmin.ts
│   ├── server.ts
│   ├── shared
│   │   ├── catchAsync.ts
│   │   ├── constrant.ts
│   │   ├── emailTemplate.ts
│   │   ├── logger.ts
│   │   ├── morgen.ts
│   │   ├── pick.ts
│   │   ├── sendResponse.ts
│   │   └── unlinkFile.ts
│   ├── types
│   │   ├── auth.ts
│   │   ├── emailTamplate.ts
│   │   ├── email.ts
│   │   ├── errors.types.ts
│   │   ├── index.d.ts
│   │   └── pagination.ts
│   └── util
│       ├── cryptoToken.ts
│       └── generateOTP.ts
├── tsconfig.json
├── package.json
├── README.md
└── yarn.lock

Create a New Module

tamim create <module-name> <fields...>

Fields should be specified in the format: fieldName:type

Supported field types:

  • string
  • number
  • date
  • boolean
  • array=>string
  • array=>number
  • array=>date
  • array=>boolean
  • ref=>ModelName (for MongoDB references)
  • array=>ref=>ModelName (for array of references)

Example:

tamim create user name:string email:string age:number profileImage:string isActive:boolean

This will create:

  • user.route.ts
  • user.controller.ts
  • user.service.ts
  • user.validation.ts
  • user.interface.ts
  • user.model.ts

Supported file types:

  • route
  • controller
  • service
  • validation
  • interface
  • model

If you add --skip or -s and give the file types you want to skip then it will not create that file

Example:

tamim create user name:string email:string age:number profileImage:string isActive:boolean --skip route validation

This will skip route and validation and just create:

  • user.controller.ts
  • user.service.ts
  • user.interface.ts
  • user.model.ts

And there is also a twist if you use --skip filter or -s filter it will skip the filter and pagination part in the getall function

Add Files to Existing Module

tamim add <moduleFiles...>
tamim add user:route

This will create:

  • user.route.ts

in the user folder

tamim add user/auth:route

This will create:

  • auth.route.ts

in the auth folder in the user folder

Configuration (Optional)

Create a tamim.config.cjs file in your project root if you want to add api requests automatically in your postman collection:

module.exports = {
  config: {
    postman_api_key: "your-postman-api-key",
    postman_workspace_id: "your-workspace-id",
    postman_collection_name: "your-collection-name",
    postman_folder_name: "optional-folder-name", // defaults to module name
  },
};

Generated Structure

For each module, the following structure is created under src/app/modules/<module-name>/:

📁 <module-name>/
 ├── <module-name>.route.ts      # Express routes
 ├── <module-name>.controller.ts  # Request handlers
 ├── <module-name>.service.ts     # Business logic
 ├── <module-name>.validation.ts  # Request validation
 ├── <module-name>.interface.ts   # TypeScript interfaces
 └── <module-name>.model.ts       # MongoDB model

Postman Integration

If configured, automatically generates Postman collection with:

  • Create endpoint (POST)
  • Get One endpoint (GET)
  • Get All endpoint (GET)
  • Update endpoint (PATCH)
  • Delete endpoint (DELETE)

Requirements

  • Node.js >= 18.0.0
  • TypeScript project setup
  • MongoDB for database operations

Author

Ashiqur Rahman Tamim
Email: [email protected]
Repo: https://github.com/Tamim-369/tamim-cli

License

MIT