@betagors/yama-cli
v0.1.0-alpha.0
Published
Yama CLI — global CLI tool for Yama framework
Downloads
78
Maintainers
Readme
@betagors/yama-cli
Global CLI tool for Yama - API framework toolkit.
Installation
npm install -g @betagors/yama-cliCommands
Setup & Initialization
yama init
Initialize a new Yama project. Creates yama.yaml, src/handlers/ directory, and updates package.json with scripts.
yama init
yama init --name my-api --version 1.0.0yama setup
Setup Yama in an existing project. Adds scripts to package.json and checks for dependencies.
yama setup
yama setup --skip-scriptsDevelopment
yama dev
Start development server with watch mode.
yama dev
yama dev --port 3000
yama dev --no-watch
yama dev --config custom.yamlGeneration
yama generate
Generate SDK and TypeScript types from yama.yaml.
yama generate
yama generate --watch
yama generate --output src/lib/api.ts
yama generate --types-only
yama generate --sdk-only
yama generate --framework nextjsyama types
Generate TypeScript types only.
yama types
yama types --output src/types.tsyama sdk
Generate SDK only.
yama sdk
yama sdk --output src/lib/api.ts
yama sdk --framework reactValidation & Inspection
yama validate
Validate yama.yaml configuration.
yama validate
yama validate --strict
yama validate --config custom.yamlyama config
Show current configuration.
yama configyama endpoints
List all endpoints defined in yama.yaml.
yama endpointsyama schemas
List all schemas defined in yama.yaml.
yama schemasFeatures
- Smart Project Detection: Automatically detects Next.js, React, Vite, or Node.js projects
- Watch Mode: Auto-regenerate SDK/types when
yama.yamlchanges - Framework Helpers: Generates framework-specific hooks and helpers (Next.js, React)
- Zero Configuration: Works out of the box with smart defaults
Workflow
First-time Setup
# 1. Install globally (one time)
npm install -g @betagors/yama-cli
# 2. Create new project
mkdir my-api
cd my-api
npm init -y
# 3. Initialize Yama
yama init
# 4. Install runtime
npm install @betagors/yama-runtime-node
# 5. Start developing
yama devDaily Development
# Edit yama.yaml
vim yama.yaml
# SDK auto-regenerates (watch mode)
# Server auto-restarts
# Everything stays in syncGenerate SDK for Frontend
# In backend project
yama generate --output ../frontend/src/lib/api.ts
# Or with framework helpers
yama generate --framework nextjsProject Structure
After running yama init, your project will look like:
my-api/
├── yama.yaml # Yama configuration
├── package.json # Has @betagors/yama-* dependencies
├── src/
│ ├── handlers/ # Your handlers
│ └── generated/ # Auto-generated by Yama
│ ├── types.ts
│ └── sdk.ts
└── node_modules/
└── @betagors/ # Published packagesFramework Support
Next.js
yama generate --framework nextjsGenerates:
lib/generated/types.tslib/generated/sdk.tslib/hooks/useApi.ts(React Query hooks)
React/Vite
yama generate --framework reactGenerates:
src/lib/generated/types.tssrc/lib/generated/sdk.tssrc/hooks/useApi.ts(React hooks)
Node.js
yama generateGenerates:
lib/generated/types.tslib/generated/sdk.ts
License
MIT
