MCPcopy
hub / github.com/vercel/kirimase

github.com/vercel/kirimase @v0.0.58 sqlite

repository ↗ · DeepWiki ↗ · release v0.0.58 ↗
301 symbols 1,218 edges 57 files 0 documented · 0%
README

Logo for Kirimase

Kirimase

npm_version

Kirimase is a command-line tool for building full-stack Next.js apps faster. It supercharges your development workflow, allowing you to quickly integrate packages and scaffold resources for your application with best practices in mind.

<img src="https://github.com/nicoalbanese/gifs_for_demos/blob/main/Screenshot%202023-10-15%20at%2010.36.02.png?raw=true" alt="Kirimase Demo" width="420" />

Watch the most recent demo here

Check out the official tutorial here

Features

  1. Initialization and Configuration: quickly add and set up essential packages to jump-start your Next.js project.
  2. Code Generation: scaffold models, views, and controllers directly from the CLI.

Quick Start

Install Kirimase CLI globally:

npm install -g kirimase

If you don't already have a Nextjs app, run create-next-app with your preferred package manager.

Then run the following command within the directory of your project:

kirimase init

Note: Kirimase is not compatible with the the pages directory.

Commands

Run these commands within the directory of your Nextjs app:

1. kirimase add

Initializes and configures the following packages for your Next.js project, categorized into:

ORM

Drizzle-ORM

  • Based on your chosen database type (PostgreSQL, MySQL, SQLite), Kirimase sets up the required files for Drizzle-ORM, drizzle-zod for validations and and drizzle-kit to manage migrations.
  • Scripts are auto-added to package.json for immediate use of drizzle-kit.

Prisma


Authentication

Auth.js

  • Generates files for Auth.js (Next-Auth), including the latest Drizzle adapter. (For PlanetScale, references are excluded as it doesn't support foreign keys).
  • Generates a generic sign-in component for immediate use within your Next.js project.
  • Wraps the root layout with the auth provider and generates utilities for auth checks and redirects in your Next.js routes.

Clerk

  • Generates files for Clerk including all necessary config.
  • Wraps the root layout with the auth provider and generates utilities for auth checks and redirects in your Next.js routes.

Lucia

  • Generates files for Lucia including all necessary config.
  • Generates UI and API routes for sign-in and sign-up

Kinde

  • Generates files for Kinde including all necessary config.
  • Generates sign in component and route handler

Other

tRPC

  • Generates files to configure tRPC with the app router.
  • Provides client-side tRPC and scaffolds server-side configuration using the experimental server-invoker pattern.
  • Wraps the root layout in the tRPC provider.

Shadcn-UI

  • Installs and configures Shadcn-UI including button and toast components.
  • Inserts the toast-provider (<Toaster />) to the root layout for instant toast notifications in your Next.js app.

Stripe

  • Installs and configures Stripe within your Next.js project so you can start accepting subscription payments.

Resend

  • Installs and configures Resend

Kirimase also adds relevant keys to your .env which you'll need to provide values for.

2. kirimase generate

Akin to rails scaffold but for Next.js:

Kirimase generates:

a) Model:

  • Generates a drizzle schema with column types based on your SQL flavor and database provider.
  • Uses drizzle-zod to generate Zod schemas for frontend and backend validation.
  • Generates queries and mutations for CRUD operations, fully typed and optimized for consumption via a Next.js front-end.

b) Controller:

  • Gives you an option to scaffold tRPC, Server Actions and/or API routes.
  • Uses Zod schemas from models for request validation.
  • Includes built-in error handling for API routes and auto-adding of tRPC routes to the root router.

c) Views:

  • Scaffolds views using Shadcn-UI to enable immediate CRUD operations (including select fields for adding relations and datepickers for dates).
  • Option to use either React Hook Form with tRPC or plain React (useOptimistic and useValidated Form hooks)

Run in non-interactive mode

As of v0.0.23, you can run kirimase init and kirimase add entirely via the command line as follows:

kirimase init -sf yes -pm bun --orm prisma -db pg -a next-auth -ap github discord -mp trpc stripe resend -cl shadcn-ui -ie yes
Command Short Flag Long Option Description Argument
init - - initialise and configure kirimase -
- -sf --src-folder use a src folder yes or no
- -pm --package-manager package manager <pm>
- -cl --component-lib component library <component-lib>
- -o --orm orm <orm>
- -db --db database ("pg", "mysql", "sqlite") <db>
- -dbp --db-provider database provider - important if using drizzle <dbp>
- -a --auth auth <auth>
- -ap --auth-providers auth providers (if using next-auth) <providers>
- -mp --misc-packages packages ("trpc", "shadcn-ui", "resend") <packages>
- -ie --include-example include example yes or no

Contributing

Keen on enhancing Kirimase? Contributions, bug reports, and feature requests are always welcome. Feel free to open an issue or submit a pull request.

To run locally:

pnpm i
pnpm run dev

npm install -g . (in a second terminal - this will then make kirimase available across your machine using "kirimase *command*")

License

MIT

Core symbols most depended-on inside this repo

formatFilePath
called by 328
src/commands/filePaths/index.ts
createFile
called by 113
src/utils.ts
readConfigFile
called by 98
src/utils.ts
getFilePaths
called by 97
src/commands/filePaths/index.ts
formatTableName
called by 69
src/commands/generate/utils.ts
toCamelCase
called by 53
src/commands/generate/utils.ts
replaceFile
called by 38
src/utils.ts
getDbIndexPath
called by 21
src/commands/filePaths/index.ts

Shape

Function 301

Languages

TypeScript100%

Modules by API surface

src/commands/generate/index.ts18 symbols
src/commands/generate/generators/views-with-server-actions.ts18 symbols
src/commands/generate/utils.ts17 symbols
src/utils.ts16 symbols
src/commands/add/misc/stripe/generators.ts14 symbols
src/commands/generate/generators/model/schema/index.ts13 symbols
src/commands/add/utils.ts13 symbols
src/commands/add/orm/drizzle/generators.ts13 symbols
src/commands/add/auth/next-auth/generators.ts13 symbols
src/commands/add/misc/trpc/generators.ts11 symbols
src/commands/add/prompts.ts9 symbols
src/commands/add/auth/lucia/generators.ts9 symbols

Dependencies from manifests, versioned

@inquirer/prompts3.0.1 · 1×
@types/node20.4.5 · 1×
@typescript-eslint/eslint-plugin6.6.0 · 1×
@typescript-eslint/parser6.6.0 · 1×
chalk5.3.0 · 1×
commander11.0.0 · 1×
consola3.2.3 · 1×
eslint8.48.0 · 1×
execa8.0.1 · 1×
figlet1.7.0 · 1×
ora8.0.1 · 1×
pluralize8.0.0 · 1×

Datastores touched

(mysql)Database · 1 repos

For agents

$ claude mcp add kirimase \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact