@amiki/create
v1.0.1
Published
Interactive scaffolding wizard for amiki-framework projects — bun create amiki or amiki init. Supports 3 presets: small/cluster/multi-service
Maintainers
Readme
@amiki/create
Scaffolding wizard for amiki-framework projects (
bun create amiki).
Interactive TUI-based project generator with multiple presets for different project sizes and architectures.
Usage
bun create amiki # Interactive wizard
bun create amiki my-project # Create in ./my-project
create-amiki --preset small my-project # Quick-start without TUIPresets
| Preset | Description | Services | |--------|-------------|----------| | small | Single-process bot | 1 GatewayClient, ping-pong | | cluster | Multi-worker with metrics | ClusterManager, MetricsServer, 4 workers | | multi-service | Full microservice architecture | Gateway proxy + API + Worker + Docker |
small
my-bot/
├── package.json
├── tsconfig.json
├── .env.example
├── README.md
└── src/
└── index.ts # GatewayClient, ping-pong handlercluster
my-bot/
├── package.json
├── tsconfig.json
├── .env.example
├── README.md
└── src/
└── index.ts # ClusterManager, MetricsServer, 4 workersmulti-service
my-bot/
├── package.json
├── tsconfig.json
├── .env.example
├── README.md
├── Dockerfile
├── docker-compose.yml
└── services/
├── gateway/
│ └── index.ts # ProxyClusterWorker
├── api/
│ └── index.ts # REST API consumer
└── worker/
└── index.ts # Background event processorTUI Framework
The TUI is built with zero external dependencies — pure ANSI escape codes and Bun's raw-mode stdin:
textInput— text input with validation, cursor, backspaceselect— single select with arrow keysmultiselect— multi-select with space bar toggleconfirm— Y/n confirmation promptspinner— animated spinner for async operations
Programmatic Use
import { runWizard, generateFiles, type WizardAnswers } from '@amiki/create';
// Or just generate files directly
const answers: WizardAnswers = {
projectName: 'my-bot',
preset: 'cluster',
features: ['docker'],
useDocker: true,
};
const files = generateFiles(answers);
// → Array<{ path: string, content: string }>License
GPL-2.0-only — see LICENSE for details.
