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.
- package/README.md +58 -146
- package/dist/cli.js +4877 -2812
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
33
|
+
## Quick Start
|
|
116
34
|
|
|
117
35
|
```
|
|
118
|
-
kitt
|
|
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
|
-
###
|
|
44
|
+
### Auth
|
|
128
45
|
|
|
129
46
|
| Command | Description |
|
|
130
47
|
|---|---|
|
|
131
|
-
| `/login` | Full auth setup — Railway + LLM
|
|
132
|
-
| `/
|
|
133
|
-
| `/
|
|
134
|
-
| `/
|
|
135
|
-
| `/
|
|
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
|
|
142
|
-
| `/
|
|
143
|
-
| `/
|
|
144
|
-
| `/list` | List all
|
|
145
|
-
| `/
|
|
146
|
-
| `/
|
|
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 <
|
|
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:
|
|
156
|
-
| `/
|
|
157
|
-
| `/
|
|
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
|
|
166
|
-
| `/versions
|
|
167
|
-
| `/versions
|
|
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
|
-
|
|
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
|
|
203
|
-
--dry-run Preview changes without applying
|
|
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
|
|
132
|
+
--config <json> Pass command selections as JSON
|
|
206
133
|
--env <name> Target a specific Railway environment
|
|
207
|
-
--no-update-check Skip
|
|
208
|
-
--debug Show LLM timing and token usage
|
|
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
|
-
|
|
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
|