@happyvertical/smrt-cli
Developer CLI for introspection, code generation, database management, and auto-generated CRUD commands for SMRT objects.
v0.20.44CLIDeveloper Tools
Overview
smrt-cli provides a developer CLI with lazy-loaded commands, manifest
discovery, and class introspection. It auto-generates CRUD commands for all SMRT objects
decorated with @smrt({ cli: true }), plus exposes custom methods as CLI commands.
Installation
bash
pnpm add -D @happyvertical/smrt-cliCommands
Introspection
bash
smrt introspect # Discover SMRT objects in project
smrt introspect --verbose # Include detailed field information
smrt objects # List all registered SMRT objects
smrt schema <object> # Show detailed schema for an object
smrt status # Show system status (database, AI, registry)Database
bash
smrt db:status # Show pending schema changes
smrt db:migrate # Apply pending migrations
smrt db:diff --generate # Generate migration from schema changes
smrt db:rollback # Rollback last migration
smrt db:history # Show migration historyCode Generation
bash
smrt generate:mcp # Generate MCP server from registered objects
smrt generate:types # Generate TypeScript declarations from manifestDocumentation
bash
smrt docs:claude # Generate .claude/smrt-framework.md for consumer projectsConfiguration and Export
bash
smrt config:export # Export agent config for SSG
smrt export # Export data in various formats
smrt init # Initialize a new SMRT projectDispatch Management
bash
smrt dispatch:list # List dispatch messages
smrt dispatch:process # Process pending dispatches
smrt dispatch:retry # Retry failed dispatches
smrt dispatch:cleanup # Clean up old dispatch recordsGit Integration
bash
smrt git:init # Configure JSON-aware merge driver
smrt merge-json <base> <ours> <theirs> # Manual JSON mergeScaffolding
bash
smrt gnode create <name> # Create new gnode from template
smrt gnode list-templates # Show available templatesAuto-Generated Object Commands
For each registered SMRT object with cli: true, the CLI generates CRUD commands
plus any custom methods:
bash
# Pattern: <object>:<operation>
smrt agent:list # List agents with filtering
smrt agent:get <id> # Get agent by ID or slug
smrt agent:create # Create new agent (interactive)
smrt agent:update <id> # Update existing agent
smrt agent:delete <id> # Delete agent
# Custom methods (auto-discovered from manifests)
smrt agent:research abc123 --query "AI safety"Configuration
typescript
// Enable CLI in decorator
@smrt({
cli: true, // Enable all operations
// OR specify operations:
cli: {
include: ['list', 'get', 'create', 'incorporateFeedback', 'rollback']
}
})
class Issue extends SmrtObject {
// ...
}CLI Configuration (smrt.config.js)
javascript
export default {
packages: {
cli: {
entryPoint: './dist/index.js', // default: auto-detect from package.json
database: {
type: 'sqlite', // 'sqlite' | 'postgres'
url: './data.db' // default: ':memory:'
},
format: 'table', // 'table' | 'json' | 'yaml' | 'plain'
}
}
};Entry Point Discovery
- Explicit
entryPointin config package.jsonexports['.'].importor['.']package.jsonmainfield- Fallback:
./dist/index.js