-
-
Notifications
You must be signed in to change notification settings - Fork 2
cmd generate
github-actions[bot] edited this page Apr 26, 2026
·
2 revisions
Generate type-safe client SDK types from the live Hasura schema.
Introspects the running ɳSelf Hasura GraphQL endpoint and emits typed client code for TypeScript, Dart, Swift, Kotlin, and Python. One command keeps all SDK consumers in sync with the database schema. No hand-maintained type files.
nself generate [flags]
| Flag | Default | Description |
|---|---|---|
--lang |
all |
Comma-separated target languages: typescript, dart, swift, kotlin, python, or all
|
--out |
./generated |
Output directory |
--env |
local |
Target environment: local, staging, or prod
|
--watch |
false | Re-run every 30 seconds on schema change |
--operations |
src/**/*.graphql |
Path to .graphql operation files for query/mutation/subscription types |
--no-hooks |
false | Skip React hooks generation (TypeScript only) |
--pydantic |
true | Emit Pydantic v2 models (Python only) |
generated/
├── typescript/
│ ├── schema.ts # DB types (interfaces)
│ ├── queries.ts # typed query documents and return types
│ └── hooks.ts # React hooks wrapping @nself/client
├── dart/
│ ├── models.dart # freezed-compatible data classes
│ └── queries.dart # typed query variables and result classes
├── swift/
│ └── NselfModels.swift # Codable structs
├── kotlin/
│ └── NselfModels.kt # kotlinx.serialization data classes
└── python/
└── models.py # Pydantic v2 models
- Fetch live Hasura introspection schema via
HASURA_GRAPHQL_ADMIN_SECRET - Parse schema into an internal IR (tables, enums, relationships)
- Merge
.graphqloperation files into the IR - Render per-language output files to
--outdirectory - Print diff summary: N types, M enums, K operations
The ɳSelf stack must be running before generating against --env local:
nself start
nself generateFor staging or production, set the corresponding env vars:
# Staging
export NSELF_HASURA_STAGING_URL=https://api.myproject.com
export NSELF_HASURA_STAGING_ADMIN_SECRET=<secret>
nself generate --env staging
# Production
export NSELF_HASURA_PROD_URL=https://api.myproject.com
export NSELF_HASURA_PROD_ADMIN_SECRET=<secret>
nself generate --env prod# Generate all languages against the local stack
nself generate
# TypeScript and Dart only
nself generate --lang typescript,dart
# TypeScript against staging, custom output dir
nself generate --env staging --lang typescript --out ./src/generated
# Watch mode: regenerate every 30s when schema changes
nself generate --watch
# Skip React hooks (useful for non-React TypeScript projects)
nself generate --lang typescript --no-hooksFetching schema from http://localhost:8080 ...
Parsed 42 types, 8 enums
[typescript] 3 files written (0.3s)
[dart] 2 files written (0.2s)
[swift] 1 files written (0.1s)
[kotlin] 1 files written (0.1s)
[python] 1 files written (0.1s)
Done in 0.9s. Output: ./generated
Use generated types with the ɳSelf SDK packages:
| Language | Package | Import |
|---|---|---|
| TypeScript | @nself/client |
import type { User } from './generated/typescript/schema' |
| Dart | nself_client |
import 'generated/dart/models.dart' |
| Swift | NselfClient |
import NselfClient; // use NselfModels.swift types |
| Kotlin | io.nself:client |
import io.nself.generated.* |
| Python | nself-client |
from generated.python.models import User |
See SDK reference for full usage.
- The command uses the existing
HASURA_GRAPHQL_ADMIN_SECRETfrom your.envcascade for local environments. - Hasura aggregate, input, and Hasura-internal types are automatically excluded from the output.
-
--watchuses time-based polling (30s interval). It does not use filesystem watchers. - TypeScript output requires
@nself/clientas a peer dependency for hooks. - Dart output generates
freezed-compatible annotations; rundart run build_runner buildto finish code generation.
ɳSelf CLI v1.0.9. MIT licensed. Docs CC BY 4.0.
GitHub · Issues · Discussions · nself.org · docs.nself.org
Getting Started
Commands
- Commands, Overview
- Lifecycle: cmd-init · cmd-build · cmd-start · cmd-stop · cmd-restart · cmd-dev
- Monitoring: cmd-status · cmd-logs · cmd-health · cmd-urls · cmd-doctor · cmd-monitor · cmd-alerts · cmd-watchdog · cmd-dogfood
- Data: cmd-db · cmd-backup · cmd-dr · cmd-queue · cmd-webhooks
- Config: cmd-config · cmd-service · cmd-env · cmd-promote
- Networking: cmd-ssl · cmd-trust · cmd-dns-setup
- Security: cmd-security · cmd-secrets · cmd-waf
- Tenancy: cmd-tenant · cmd-billing
- Plugins: cmd-plugin · cmd-license
- AI: cmd-ai · cmd-claw
- Utilities: cmd-exec · cmd-clean · cmd-reset · cmd-update · cmd-upgrade · cmd-version · cmd-admin · cmd-migrate · cmd-completion
Features
- Features, Overview
- Feature-Auth
- Feature-Storage
- Feature-Search
- Feature-Functions
- Feature-Email
- Feature-Monitoring
- Feature-Plugins
- Feature-ɳClaw, AI Assistant
- Feature-ɳChat, Messaging
- Feature-ɳTV, Media Player
- Feature-ɳFamily, Family Social
- Feature-ɳCloud, Managed Hosting
- Feature-Memory-Rooms, Knowledge Organization
- Feature-Agent-Dashboard, Agent Metrics
- Feature-Image-Generation, AI Image Generation
Configuration
- Configuration, Overview
- Config-Env-Vars
- Config-Postgres
- Config-Hasura
- Config-Auth
- Config-Nginx
- Config-Optional-Services
- Config-Custom-Services
- Config-System
Plugins (87 + 10 monitoring)
Free (25)
- plugin-backup
- plugin-content-acquisition
- plugin-content-progress
- plugin-cron
- plugin-donorbox
- plugin-feature-flags
- plugin-github
- plugin-github-runner
- plugin-invitations
- plugin-jobs
- plugin-link-preview
- plugin-mdns
- plugin-mlflow
- plugin-monitoring
- plugin-notifications
- plugin-notify
- plugin-paypal
- plugin-search
- plugin-shopify
- plugin-stripe
- plugin-subtitle-manager
- plugin-tokens
- plugin-torrent-manager
- plugin-vpn
- plugin-webhooks
Pro (62)
- plugin-access-controls
- plugin-activity-feed
- plugin-admin-api
- plugin-ai
- plugin-analytics
- plugin-auth
- plugin-backup-pro
- plugin-bots
- plugin-browser
- plugin-calendar
- plugin-cdn
- plugin-chat
- plugin-claw
- plugin-claw-budget
- plugin-claw-news
- plugin-claw-web
- plugin-cloudflare
- plugin-cms
- plugin-compliance
- plugin-cron-pro
- plugin-ddns
- plugin-devices
- plugin-documents
- plugin-donorbox-pro
- plugin-entitlements
- plugin-epg
- plugin-file-processing
- plugin-game-metadata
- plugin-geocoding
- plugin-geolocation
- plugin-google
- plugin-home
- plugin-idme
- plugin-knowledge-base
- plugin-linkedin
- plugin-livekit
- plugin-media-processing
- plugin-meetings
- plugin-moderation
- plugin-mux
- plugin-notify-pro
- plugin-object-storage
- plugin-observability
- plugin-paypal-pro
- plugin-photos
- plugin-podcast
- plugin-post
- plugin-realtime
- plugin-recording
- plugin-retro-gaming
- plugin-rom-discovery
- plugin-shopify-pro
- plugin-social
- plugin-sports
- plugin-stream-gateway
- plugin-streaming
- plugin-stripe-pro
- plugin-support
- plugin-tmdb
- plugin-voice
- plugin-web3
- plugin-workflows
Planned (26)
plugin-auditplugin-blogplugin-checkoutplugin-commerceplugin-drmplugin-exportplugin-flowplugin-importplugin-ldapplugin-mailgunplugin-mediaplugin-oauth-providersplugin-pagesplugin-postmarkplugin-rate-limitplugin-reportsplugin-samlplugin-schedulerplugin-sendgridplugin-ssoplugin-subscriptionplugin-thumbplugin-transcoderplugin-twilioplugin-wafplugin-watermark
Guides
- Guide-Production-Deployment
- Guide-SSL-Setup
- Guide-Multi-Tenancy
- Guide-Security-Hardening
- Guide-Monitoring-Setup
- Guide-Backup-Restore
- Guide-Custom-Services
- Guide-Migration-from-v1
Architecture
Reference
- API-Reference
- reference-error-codes, Error Codes
Licensing
Security
Brand
Contributing