@boopkit/cli 0.1.16 → 0.3.1
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 +145 -43
- package/dist/capability-catalog.json +6 -2
- package/dist/capability-versions.json +16 -16
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# boop
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Boop is a bootstrap platform for AI-first builders — founders, small teams, and anyone chasing product-market fit without sliding into a vibe-coded swamp. One command gives you a running project with the capabilities you pick: web server, APIs, database, and the design and coding skills your agents need to keep the code clean as it grows. Code plus expertise, already in the box.
|
|
4
4
|
|
|
5
5
|
## Install
|
|
6
6
|
|
|
@@ -8,78 +8,180 @@ CLI tool to scaffold new projects from reusable profiles and capabilities. Get a
|
|
|
8
8
|
npm install -g @boopkit/cli@beta
|
|
9
9
|
```
|
|
10
10
|
|
|
11
|
-
Or
|
|
11
|
+
Or run directly with `npx`:
|
|
12
12
|
|
|
13
13
|
```bash
|
|
14
|
-
npx @boopkit/cli@beta init
|
|
14
|
+
npx @boopkit/cli@beta init my-app
|
|
15
15
|
```
|
|
16
16
|
|
|
17
17
|
## Quick Start
|
|
18
18
|
|
|
19
|
-
|
|
20
|
-
# go to your projects directory
|
|
21
|
-
cd ~/projects
|
|
22
|
-
|
|
23
|
-
# install the boop CLI globally
|
|
24
|
-
npm install -g @boopkit/cli@beta
|
|
19
|
+
Six commands from nothing to a running local app with agent-ready skills already in place.
|
|
25
20
|
|
|
26
|
-
|
|
21
|
+
```bash
|
|
22
|
+
# Scaffold a new project from the default profile (web-app)
|
|
27
23
|
boop init my-app
|
|
28
24
|
cd my-app
|
|
29
|
-
|
|
25
|
+
```
|
|
30
26
|
|
|
31
|
-
|
|
32
|
-
npm run dev
|
|
27
|
+
`boop init` creates the project directory, applies the `web-app` profile, installs capability packages from npm, and scaffolds files into your project — including a `.boop.json` manifest that records what profile and capabilities are installed.
|
|
33
28
|
|
|
34
|
-
|
|
29
|
+
```bash
|
|
30
|
+
# See what was installed, what's configured, and what to do next
|
|
31
|
+
boop status
|
|
32
|
+
```
|
|
35
33
|
|
|
36
|
-
|
|
37
|
-
npm caps
|
|
34
|
+
`boop status` prints post-install instructions from every capability — environment variables to set, services to start, migrations to run. Hand it to your AI agent as a checklist.
|
|
38
35
|
|
|
39
|
-
|
|
40
|
-
#
|
|
41
|
-
|
|
36
|
+
```bash
|
|
37
|
+
# Start the dev server
|
|
38
|
+
npm run dev
|
|
39
|
+
```
|
|
42
40
|
|
|
41
|
+
You now have an Express + Handlebars + Tailwind app running on port 3000, backed by PostgreSQL via Prisma.
|
|
42
|
+
|
|
43
|
+
```bash
|
|
44
|
+
# Browse available capabilities and add one
|
|
45
|
+
boop caps
|
|
46
|
+
boop add users-and-accounts
|
|
43
47
|
```
|
|
44
48
|
|
|
49
|
+
`boop add` resolves transitive dependencies, installs packages, merges scaffold files, wires middleware hooks into your server, and installs agent skills — all declaratively driven by each capability's `capability.json`.
|
|
50
|
+
|
|
51
|
+
## The Capability Model
|
|
52
|
+
|
|
53
|
+
Start simple, grow deliberately. That's the shape of a boop project: a strong starting point you can extend without collecting scaffolding debt.
|
|
54
|
+
|
|
55
|
+
A **profile** is a named starting point. It defines the kernel (TypeScript config, `package.json`, `src/server.ts`, deployment setup) and a set of default capabilities.
|
|
56
|
+
|
|
57
|
+
A **capability** is a composable feature bundle. Each capability package ships:
|
|
58
|
+
|
|
59
|
+
- **Scaffold files** — code, configs, templates copied into your project
|
|
60
|
+
- **npm dependencies** — merged into your `package.json`
|
|
61
|
+
- **Middleware hooks** — lines wired into `src/server.ts` at the right phase (imports, pre-routes, routes, error-handling)
|
|
62
|
+
- **Scripts** — added to `package.json` (e.g. `db:migrate`, `tailwind:build`)
|
|
63
|
+
- **Post-install steps** — human/agent-readable instructions printed by `boop status`
|
|
64
|
+
- **Agent skills** — `.skill.md` files that teach AI agents the conventions this capability uses
|
|
65
|
+
|
|
66
|
+
Capabilities can declare `requires` relationships (e.g. `users-and-accounts` requires `database`, `services`, and `web`). `boop add` resolves the dependency graph and installs everything needed.
|
|
67
|
+
|
|
68
|
+
## Profiles
|
|
69
|
+
|
|
70
|
+
A profile is where a project starts. Today there's one; more will follow as the common shapes of AI-first products become clearer.
|
|
71
|
+
|
|
72
|
+
### `web-app`
|
|
73
|
+
|
|
74
|
+
Full-stack web application — Express + Handlebars + Tailwind CSS + PostgreSQL via Prisma, deployable to Heroku.
|
|
75
|
+
|
|
76
|
+
Ships with application capabilities (`web`, `api`, `services`, `database`), development skills (`coding`, `testing`, `project-mgmt`, `product-design`, `skills`), and the `hello` demo capability.
|
|
77
|
+
|
|
78
|
+
List profiles with `boop list profiles`.
|
|
79
|
+
|
|
80
|
+
## Available Capabilities
|
|
81
|
+
|
|
82
|
+
Pick what the product needs. `boop add <name>` handles the wiring — npm dependencies, scaffold files, middleware hooks, and the agent skills that go with the feature.
|
|
83
|
+
|
|
84
|
+
### Application
|
|
85
|
+
|
|
86
|
+
| Name | What it adds | Requires |
|
|
87
|
+
|------|--------------|----------|
|
|
88
|
+
| `web` | Handlebars view engine, Tailwind CSS, static asset serving, request logging | — |
|
|
89
|
+
| `api` | Express API middleware — error handling, request ID, 404 handler, health checks | — |
|
|
90
|
+
| `services` | Service-layer pattern — controllers, auto-discovered `*.service.ts` files, factory-based data access | — |
|
|
91
|
+
| `database` | PostgreSQL via Prisma — schema, migrations, transaction helper, health check | — |
|
|
92
|
+
| `users-and-accounts` | User accounts, identities, properties, and session-based authentication | `database`, `services`, `web` |
|
|
93
|
+
| `email` | Transactional email via SendGrid with Handlebars templates | `services` |
|
|
94
|
+
| `background-jobs` | Background job processing with RabbitMQ (CloudAMQP) | `services` |
|
|
95
|
+
| `cloud-storage` | File and asset storage via AWS S3 | `services` |
|
|
96
|
+
| `noticeboard` | Reference demo feature showing the full service-layer pattern end-to-end | — |
|
|
97
|
+
|
|
98
|
+
### Development (skills-only — no runtime code)
|
|
99
|
+
|
|
100
|
+
| Name | What it adds |
|
|
101
|
+
|------|--------------|
|
|
102
|
+
| `coding` | Development conventions and coding skills for AI agents |
|
|
103
|
+
| `testing` | Jest setup and testing skills (TDD workflow, Express testing patterns) |
|
|
104
|
+
| `project-mgmt` | Beads issue-tracking and planning skills |
|
|
105
|
+
| `product-design` | Feature-requirements and product-design skills |
|
|
106
|
+
| `skills` | Skill-authoring guidance for extending the skill library |
|
|
107
|
+
|
|
108
|
+
### Demo
|
|
109
|
+
|
|
110
|
+
| Name | What it adds |
|
|
111
|
+
|------|--------------|
|
|
112
|
+
| `hello` | Minimal capability used to validate the install pipeline |
|
|
113
|
+
|
|
45
114
|
## Commands
|
|
46
115
|
|
|
116
|
+
Most days you'll use `init`, `add`, and `status`. The rest are there when you need them.
|
|
117
|
+
|
|
47
118
|
| Command | Description |
|
|
48
119
|
|---------|-------------|
|
|
120
|
+
| `boop init <name>` | Create a new project from a profile (default: `web-app`) |
|
|
49
121
|
| `boop list profiles` | List available profiles |
|
|
50
|
-
| `boop
|
|
51
|
-
| `boop
|
|
52
|
-
| `boop
|
|
53
|
-
| `boop add <capability>` |
|
|
122
|
+
| `boop list capabilities` | List available capabilities |
|
|
123
|
+
| `boop caps` | Shortcut for `list capabilities` |
|
|
124
|
+
| `boop status` | Show installed capabilities and pending post-install steps |
|
|
125
|
+
| `boop add <capability>` | Install a capability into an existing project |
|
|
126
|
+
| `boop update [capability]` | Re-scaffold files from installed capability packages |
|
|
127
|
+
| `boop adopt <capability>` | Copy a capability's source into your project for full ownership |
|
|
128
|
+
| `boop loop` | (Advanced) A hands-off spec-to-code workflow. Continuously process ready beads issues through Claude Code sessions. |
|
|
54
129
|
|
|
55
|
-
|
|
130
|
+
Flags:
|
|
56
131
|
|
|
57
|
-
`boop init`
|
|
132
|
+
- `boop init --no-install` / `boop add --no-install` — skip `npm install`
|
|
133
|
+
- `boop add --dry-run` — preview changes without writing
|
|
134
|
+
- `boop update --force` — overwrite locally modified scaffold files (creates `.bak` backups)
|
|
135
|
+
- `boop update --prune` — remove scaffold files no longer shipped by the capability
|
|
58
136
|
|
|
59
|
-
|
|
60
|
-
- **REST API** with controllers, routes, and middleware
|
|
61
|
-
- **TypeScript** with strict mode and path aliases
|
|
62
|
-
- **Jest** testing setup with TDD workflow
|
|
63
|
-
- **Multi-process architecture** (web, worker, scheduler)
|
|
64
|
-
- **Heroku deployment** via Procfile
|
|
65
|
-
- **AI agent skills** for development, testing, design, and project management
|
|
137
|
+
## Working with AI Agents
|
|
66
138
|
|
|
67
|
-
|
|
139
|
+
Boop is built for agent-assisted work — the skills and conventions ship with the code so your agent has real guidance, not just a blank repo. Every scaffolded project includes:
|
|
68
140
|
|
|
69
|
-
|
|
70
|
-
boop add
|
|
71
|
-
boop
|
|
72
|
-
|
|
141
|
+
- **Skills** — every capability installs `.skill.md` files into `skills/`. These are focused, task-specific instructions (e.g. `design.rest-api-design.skill.md`, `test.tdd-light.skill.md`) that tell an agent the conventions this project uses.
|
|
142
|
+
- **`boop status`** — after `boop init` or `boop add`, run `boop status`. It prints every capability's post-install steps. Hand this to your agent and say "finish setup."
|
|
143
|
+
- **`boop loop`** — Uses Claude for 'unattended work', building working code and UI from your specifications.
|
|
144
|
+
- `prefix` mode: Plan work as a tree of issues, then `boop loop --prefix <id>` processes them one at a time, each in its own Claude Code session. Dry-run by default; budget-capped; resumes unfinished work. See [docs/loop.md](docs/loop.md).
|
|
145
|
+
- `workflow` mode: Provide your spec and the bundled `feature-dev-workflow` skill to `boop loop --work <spec> --flow <skill>`. It processes the spec requirements into a technical design, a set of linked tasks and then continuously processes issues until the work is complete. See [docs/loop.md](docs/loop.md#workflow-mode).
|
|
146
|
+
|
|
147
|
+
The workflow is designed so a human sets direction, an agent does the implementation, and boop provides the rails.
|
|
148
|
+
|
|
149
|
+
## Post-Init: What to Do Next
|
|
150
|
+
|
|
151
|
+
After `boop init`, `boop status` will list the specific steps for the capabilities you installed. Typical setup for a `web-app` project:
|
|
152
|
+
|
|
153
|
+
1. **Set environment variables** — `.env` values for `DATABASE_URL`, and anything capabilities you added need (`SENDGRID_API_KEY`, `CLOUDAMQP_URL`, `AWS_ACCESS_KEY_ID`, etc.)
|
|
154
|
+
2. **Start Postgres** — e.g. `brew services start postgresql` or a Docker container
|
|
155
|
+
3. **Run migrations** — `npm run db:migrate`
|
|
156
|
+
4. **Build CSS** — `npm run tailwind:build`
|
|
157
|
+
5. **Start the dev server** — `npm run dev`
|
|
73
158
|
|
|
74
|
-
|
|
159
|
+
Add more capabilities as you need them:
|
|
75
160
|
|
|
76
161
|
```bash
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
npm run dev -- init test-project # Run from source
|
|
162
|
+
boop add email # transactional email
|
|
163
|
+
boop add background-jobs # async job processing
|
|
164
|
+
boop add cloud-storage # S3 file uploads
|
|
81
165
|
```
|
|
82
166
|
|
|
167
|
+
## Requirements
|
|
168
|
+
|
|
169
|
+
Boop itself is light — Node and npm. The other requirements come from whichever capabilities you install, so you're not signing up for them until you opt in.
|
|
170
|
+
|
|
171
|
+
- **Node.js 24+** (the `web-app` profile enforces this)
|
|
172
|
+
- **npm** (or any package manager that respects workspaces)
|
|
173
|
+
- **PostgreSQL** — if the `database` capability is installed
|
|
174
|
+
- **RabbitMQ / CloudAMQP account** — if `background-jobs` is installed
|
|
175
|
+
- **SendGrid account** — if `email` is installed
|
|
176
|
+
- **AWS S3 bucket** — if `cloud-storage` is installed
|
|
177
|
+
|
|
178
|
+
## Links
|
|
179
|
+
|
|
180
|
+
- **[docs/init.md](docs/init.md)** — detailed `boop init` walkthrough
|
|
181
|
+
- **[docs/loop.md](docs/loop.md)** — automated agent workflow
|
|
182
|
+
- **[GitHub repo](https://github.com/boop-labs/boop)** — source and issues
|
|
183
|
+
- **[Contributing](https://github.com/boop-labs/boop/blob/main/CONTRIBUTING.md)** — dev setup, architecture, how to add a capability
|
|
184
|
+
|
|
83
185
|
## License
|
|
84
186
|
|
|
85
|
-
|
|
187
|
+
ISC
|
|
@@ -4,7 +4,9 @@
|
|
|
4
4
|
"description": "REST API with Express",
|
|
5
5
|
"type": "application",
|
|
6
6
|
"package": "@boopkit/cap-api",
|
|
7
|
-
"requires": [
|
|
7
|
+
"requires": [
|
|
8
|
+
"web"
|
|
9
|
+
]
|
|
8
10
|
},
|
|
9
11
|
{
|
|
10
12
|
"name": "background-jobs",
|
|
@@ -59,7 +61,9 @@
|
|
|
59
61
|
"description": "Notice board demo — data service, business service, handler set, and router factory",
|
|
60
62
|
"type": "demo",
|
|
61
63
|
"package": "@boopkit/cap-noticeboard",
|
|
62
|
-
"requires": [
|
|
64
|
+
"requires": [
|
|
65
|
+
"web"
|
|
66
|
+
]
|
|
63
67
|
},
|
|
64
68
|
{
|
|
65
69
|
"name": "product-design",
|
|
@@ -1,18 +1,18 @@
|
|
|
1
1
|
{
|
|
2
|
-
"@boopkit/cap-api": "0.
|
|
3
|
-
"@boopkit/cap-background-jobs": "0.
|
|
4
|
-
"@boopkit/cap-cloud-storage": "0.
|
|
5
|
-
"@boopkit/cap-coding": "0.
|
|
6
|
-
"@boopkit/cap-database": "0.
|
|
7
|
-
"@boopkit/cap-email": "0.
|
|
8
|
-
"@boopkit/cap-hello": "0.
|
|
9
|
-
"@boopkit/cap-noticeboard": "0.
|
|
10
|
-
"@boopkit/cap-product-design": "0.
|
|
11
|
-
"@boopkit/cap-project-mgmt": "0.
|
|
12
|
-
"@boopkit/cap-services": "0.
|
|
13
|
-
"@boopkit/cap-skills": "0.
|
|
14
|
-
"@boopkit/cap-testing": "0.
|
|
15
|
-
"@boopkit/cap-users": "0.
|
|
16
|
-
"@boopkit/cap-web": "0.
|
|
17
|
-
"@boopkit/logger": "0.
|
|
2
|
+
"@boopkit/cap-api": "0.3.0",
|
|
3
|
+
"@boopkit/cap-background-jobs": "0.3.0",
|
|
4
|
+
"@boopkit/cap-cloud-storage": "0.3.0",
|
|
5
|
+
"@boopkit/cap-coding": "0.3.0",
|
|
6
|
+
"@boopkit/cap-database": "0.3.0",
|
|
7
|
+
"@boopkit/cap-email": "0.3.0",
|
|
8
|
+
"@boopkit/cap-hello": "0.3.0",
|
|
9
|
+
"@boopkit/cap-noticeboard": "0.3.0",
|
|
10
|
+
"@boopkit/cap-product-design": "0.3.0",
|
|
11
|
+
"@boopkit/cap-project-mgmt": "0.3.0",
|
|
12
|
+
"@boopkit/cap-services": "0.3.0",
|
|
13
|
+
"@boopkit/cap-skills": "0.3.0",
|
|
14
|
+
"@boopkit/cap-testing": "0.3.0",
|
|
15
|
+
"@boopkit/cap-users": "0.3.0",
|
|
16
|
+
"@boopkit/cap-web": "0.3.0",
|
|
17
|
+
"@boopkit/logger": "0.3.0"
|
|
18
18
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@boopkit/cli",
|
|
3
|
-
"version": "0.1
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "boop: the opinionated bootstrap for founder friendly, AI-first web apps - code plus agent skills, composable from day one.",
|
|
5
5
|
"main": "dist/cli.js",
|
|
6
6
|
"workspaces": [
|
|
7
7
|
"packages/*"
|
|
@@ -21,6 +21,7 @@
|
|
|
21
21
|
"build": "tsc && node tools/generate-version-manifest.js",
|
|
22
22
|
"build:caps": "./tools/build-caps.sh",
|
|
23
23
|
"publish" : "./tools/publish-caps.sh",
|
|
24
|
+
"release" : "./tools/publish-caps.sh --release",
|
|
24
25
|
"dev": "tsx src/cli.ts",
|
|
25
26
|
"start": "node dist/cli.js",
|
|
26
27
|
"test": "jest"
|