openkitt 0.3.14 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/README.md +58 -146
  2. package/dist/cli.js +4877 -2812
  3. package/package.json +5 -3
package/README.md CHANGED
@@ -2,182 +2,111 @@
2
2
 
3
3
  **AI-powered monorepo CLI for Railway deployments.**
4
4
 
5
- KITT is an interactive terminal interface that scaffolds full-stack monorepos, adds apps with integrations pre-wired, and manages deployment to [Railway](https://railway.app) — all from a persistent REPL shell.
6
-
7
5
  ```
8
6
  ______ _______________________
9
7
  ___ //_/___ /__ __/__ __/
10
8
  __ ,< __ / __ / __ /
11
9
  _ /| | __/ / _ / _ /
12
10
  /_/ |_| /___/ /_/ /_/
13
-
14
- KITT v0.1.0 — AI-Powered App Scaffolding CLI
15
11
  ```
16
12
 
17
- ---
18
-
19
- ## Why KITT?
20
-
21
- Modern app development means stitching together a monorepo, a cloud platform, an ORM, auth, payments, a job queue, and more — before writing a single line of product code. The setup tax is real and repetitive.
22
-
23
- KITT eliminates that tax. It scaffolds a production-ready monorepo in one command, adds new apps with integrations already wired, and handles Railway deployments through a conversational REPL — no context-switching, no config hunting.
24
-
25
- ---
26
-
27
- ## Who it's for
28
-
29
- - **Indie developers and small teams** shipping full-stack TypeScript apps to Railway
30
- - **Developers who want opinions** — KITT makes a stack choice (TanStack Start, Next.js, Hono, Express) and sets it up correctly
31
- - **Teams who iterate fast** — add apps, provision databases, rotate envs, tail logs, all without leaving the terminal
13
+ KITT scaffolds full-stack monorepos, adds apps with integrations pre-wired, and manages deployment to [Railway](https://railway.app) — all from a persistent REPL shell.
32
14
 
33
- ---
34
-
35
- ## Features
36
-
37
- - **Interactive REPL** with tab-completion and ghost text suggestions
38
- - **AI scaffolding** — uses your LLM key (Anthropic, OpenAI, or Gemini) to generate app code, wire integrations, and provision Railway infrastructure
39
- - **Monorepo workspace** with `apps/` and `packages/` following convention
40
- - **Framework support**: TanStack Start, Next.js, Hono, Express
41
- - **Integration catalog**: databases, auth, payments, email, queues, caching, UI, analytics, testing
42
- - **Version management** — pin integration versions, check for updates, apply selectively
43
- - **Secret scan** — blocks deploys if `.env` files containing secrets would be committed
44
- - **Non-interactive mode** — scriptable via `--run` flag for CI pipelines
45
- - **Auto update check** — notifies on new releases at startup
46
-
47
- ---
48
-
49
- ## Requirements
50
-
51
- - Node.js ≥ 20
52
- - [Railway CLI](https://docs.railway.app/develop/cli) installed and authenticated
53
- - API key for one of: Anthropic, OpenAI, or Gemini
54
-
55
- ---
56
-
57
- ## Quick Start
15
+ ## Install
58
16
 
59
17
  ```bash
60
- # Install globally
61
18
  npm install -g openkitt
62
-
63
- # Or run without installing
64
- npx openkitt
65
- ```
66
-
67
- ### 1. Authenticate
68
-
69
- ```
70
- kitt > /login
71
19
  ```
72
20
 
73
- This walks you through Railway authentication (browser OAuth) and LLM provider setup (provider, model, API key). You only do this once — credentials are stored locally.
74
-
75
- ### 2. Initialize a workspace
76
-
77
- Create a new directory and initialize it as a KITT monorepo:
21
+ Or run without installing:
78
22
 
79
23
  ```bash
80
- mkdir my-project && cd my-project
81
24
  npx openkitt
82
25
  ```
83
26
 
84
- ```
85
- kitt > /init
86
- ```
87
-
88
- KITT will:
89
- - Prompt for a workspace name
90
- - Create the `apps/` and `packages/` directory structure
91
- - Write a workspace manifest (`.kitt/manifest.json`)
92
- - Create a Railway project and link it to the workspace
93
- - Generate `versions.md` with pinned integration versions
94
-
95
- ### 3. Add an app
96
-
97
- ```
98
- kitt [my-project] > /create
99
- ```
100
-
101
- KITT prompts you to select:
102
- - **Framework** — TanStack Start, Next.js, Hono, or Express
103
- - **Integrations** — pick from databases, auth, payments, email, queues, UI libraries, testing, and more
104
-
105
- Then it scaffolds the app, installs packages, wires integrations, and stages everything for review before writing to disk.
106
-
107
- ### 4. Run locally
108
-
109
- ```
110
- kitt [my-project] > /run
111
- ```
27
+ ## Requirements
112
28
 
113
- Starts the dev server for a selected app. Auto-detects the dev script (`dev`, `start`, `serve`, `preview`) and opens the browser when the URL is detected.
29
+ - Node.js 20
30
+ - [Railway CLI](https://docs.railway.com/guides/cli) installed and authenticated
31
+ - An LLM provider: **Anthropic**, **OpenAI**, **Gemini**, or **GitHub Copilot**
114
32
 
115
- ### 5. Deploy to Railway
33
+ ## Quick Start
116
34
 
117
35
  ```
118
- kitt [my-project] > /deploy
36
+ kitt > /auth:login # Authenticate Railway + LLM
37
+ kitt > /kitt:init # Create a new workspace
38
+ kitt [my-project] > /app:create # Add an app (framework + integrations)
39
+ kitt [my-project] > /deploy:app # Deploy to Railway
119
40
  ```
120
41
 
121
- Selects the app, generates `railway.toml` if needed, scans for exposed secrets, and triggers a Railway deployment via the MCP server.
122
-
123
- ---
124
-
125
42
  ## Commands
126
43
 
127
- ### Setup
44
+ ### Auth
128
45
 
129
46
  | Command | Description |
130
47
  |---|---|
131
- | `/login` | Full auth setup — Railway + LLM in one flow |
132
- | `/login railway` | Authenticate with Railway only |
133
- | `/login llm` | Configure LLM provider, model, and API key |
134
- | `/login model` | Switch model without re-entering your key |
135
- | `/logout` | Remove all stored credentials |
48
+ | `/auth:login` | Full auth setup — Railway + LLM |
49
+ | `/auth:railway` | Authenticate with Railway |
50
+ | `/auth:llm` | Configure LLM provider and API key |
51
+ | `/auth:model` | Switch active model |
52
+ | `/auth:status` | Show current auth status |
53
+ | `/auth:logout` | Remove all stored credentials |
136
54
 
137
55
  ### Workspace
138
56
 
139
57
  | Command | Description |
140
58
  |---|---|
141
- | `/init` | Scaffold a new KITT monorepo workspace |
142
- | `/create` | Add a new app to the current workspace |
143
- | `/delete [appName]` | Remove an app and its files |
144
- | `/list` | List all apps, packages, and Railway services |
145
- | `/run [appName]` | Start an app's dev server |
146
- | `/settings` | View or update workspace settings |
59
+ | `/kitt:init` | Scaffold a new KITT workspace |
60
+ | `/kitt:delete [name]` | Delete a workspace and all its files |
61
+ | `/kitt:switch [name]` | Switch active workspace |
62
+ | `/kitt:list` | List all reachable workspaces |
63
+ | `/kitt:status` | Workspace overview and Railway links |
64
+ | `/kitt:link [projectId]` | Link a Railway project to this workspace |
65
+
66
+ ### Apps
67
+
68
+ | Command | Description |
69
+ |---|---|
70
+ | `/app:create` | Add a new app (framework + integrations) |
71
+ | `/app:delete [appName]` | Remove an app and its files |
72
+ | `/app:list` | List all apps, packages, and services |
73
+ | `/app:run [appName]` | Start an app's dev server |
74
+ | `/app:settings` | View or update workspace settings |
147
75
 
148
76
  ### Deploy & Infrastructure
149
77
 
150
78
  | Command | Description |
151
79
  |---|---|
152
- | `/deploy [appName]` | Deploy an app to Railway |
153
- | `/deploy:template <name>` | Provision infrastructure `PostgreSQL`, `MySQL`, `Redis`, `MinIO` |
80
+ | `/deploy:app [appName]` | Deploy an app to Railway |
81
+ | `/deploy:template <query>` | Search and provision a Railway template |
82
+ | `/deploy:delete [service]` | Delete a Railway service |
83
+ | `/deploy:destroy` | Delete entire Railway project (irreversible) |
84
+ | `/deploy:domain [appName]` | Generate or show Railway domain |
85
+ | `/deploy:logs [appName]` | Tail deployment logs |
86
+ | `/deploy:status` | App status and Railway deployment health |
87
+ | `/deploy:health [appName]` | HTTP health check on deployed services |
154
88
  | `/env:create <name>` | Create a new Railway environment |
155
- | `/env:vars [service]` | List environment variables for a service |
156
- | `/domain [appName]` | Generate or show the Railway domain for an app |
157
- | `/logs [appName]` | Tail deployment logs |
158
- | `/status` | Show workspace status and Railway deployment health |
89
+ | `/env:delete <name>` | Delete a Railway environment |
90
+ | `/env:vars [service]` | List environment variables |
91
+ | `/env:vars set [svc] <k> <v>` | Set an environment variable |
159
92
 
160
93
  ### Version Management
161
94
 
162
95
  | Command | Description |
163
96
  |---|---|
164
- | `/versions` | View all pinned integration versions |
165
- | `/versions check` | Check npm registry for newer versions |
166
- | `/versions update` | Interactive update wizard — pick which to bump |
167
- | `/versions set <integration> <version>` | Pin a specific version manually |
97
+ | `/versions:list` | View all pinned integration versions |
98
+ | `/versions:check` | Check for newer available versions |
99
+ | `/versions:update` | Interactive version update wizard |
100
+ | `/versions:set <name> <ver>` | Pin a specific version |
168
101
 
169
- ---
170
-
171
- ## Frameworks & Integrations
172
-
173
- **Frameworks**
102
+ ## Frameworks
174
103
 
175
104
  | Type | Options |
176
105
  |---|---|
177
106
  | Full-stack | `tanstack-start`, `nextjs` |
178
107
  | Backend | `hono`, `expressjs` |
179
108
 
180
- **Integrations**
109
+ ## Integrations
181
110
 
182
111
  | Category | Options |
183
112
  |---|---|
@@ -192,45 +121,28 @@ Selects the app, generates `railway.toml` if needed, scans for exposed secrets,
192
121
  | Analytics | `posthog`, `sentry` |
193
122
  | Testing | `vitest`, `playwright`, `storybook` |
194
123
 
195
- ---
196
-
197
124
  ## CLI Flags
198
125
 
199
126
  ```
200
127
  --verbose Enable verbose logging
201
128
  -q, --quiet Suppress non-essential output
202
- --run <command> Execute a single command and exit (non-interactive)
203
- --dry-run Preview changes without applying them
129
+ --run <command> Execute a single command and exit
130
+ --dry-run Preview changes without applying
204
131
  -y, --yes Auto-confirm all prompts
205
- --config <json> Pass command selections as inline JSON
132
+ --config <json> Pass command selections as JSON
206
133
  --env <name> Target a specific Railway environment
207
- --no-update-check Skip the version check on startup
208
- --debug Show LLM timing and token usage after scaffolding
134
+ --no-update-check Skip version check on startup
135
+ --debug Show LLM timing and token usage
209
136
  -v, --version Print CLI version
210
137
  -h, --help Print help
211
138
  ```
212
139
 
213
140
  ### Non-interactive mode
214
141
 
215
- KITT supports scriptable execution via `--run`:
216
-
217
142
  ```bash
218
- # Deploy from CI without prompts
219
- npx openkitt --run "deploy my-app" --yes --env production
143
+ npx openkitt --run "deploy:app my-app" --yes --env production
220
144
  ```
221
145
 
222
- State-changing commands (`init`, `create`, `delete`, `deploy`, `env:create`, `env:vars`, `domain`) require `--yes` in non-interactive mode.
223
-
224
- ---
225
-
226
- ## How it works
227
-
228
- KITT uses an LLM (via your API key) together with Railway's [MCP server](https://github.com/railwayapp/mcp-server) to perform Railway operations — creating projects, provisioning services, setting environment variables, and deploying. The LLM orchestrates MCP tool calls; KITT acts as the secure intermediary, enforcing a project-scoped guard so operations are confined to your linked Railway project.
229
-
230
- For `hono` and `expressjs` apps, scaffolding is fully static — the LLM generates code at creation time only. For `tanstack-start` and `nextjs`, full server and client capabilities are available.
231
-
232
- ---
233
-
234
146
  ## License
235
147
 
236
148
  MIT