@polterware/polter 0.5.0 → 0.5.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.
Files changed (2) hide show
  1. package/README.md +71 -115
  2. package/package.json +9 -2
package/README.md CHANGED
@@ -6,21 +6,22 @@
6
6
  [![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
7
7
  [![Node.js](https://img.shields.io/badge/Node.js-18%2B-green.svg)](https://nodejs.org/)
8
8
 
9
- An optimized interactive CLI for managing Supabase CLI workflows with more speed, consistency, and discoverability.
9
+ An infrastructure orchestrator CLI for managing dev processes, pipelines, CLI commands (Supabase, GitHub, Vercel, Git), and packages from one unified interface.
10
10
 
11
- Polter is a productivity layer on top of the official `supabase` CLI. Instead of memorizing command trees, you browse one unified board, add extra args interactively, attach global flags, and pin common workflows for one-click reuse.
11
+ Polter replaces the need to juggle multiple CLIs. Browse a tabbed command board, chain steps into reusable pipelines, manage background processes, and apply declarative project configuration all from a single TUI.
12
12
 
13
13
  ## Features
14
14
 
15
- - **Interactive Command Builder**: Guided flow for command + subcommand + extra args
16
- - **Suggested Subcommand Picker**: Select common args (for example `db pull`) from boxed sections before typing custom args
17
- - **Unified Command Board**: Pinned runs, pinned commands, grouped categories, and actions in boxed sections on one screen
18
- - **Global Flags Picker**: Add common global flags in one step
19
- - **Pinned Commands and Runs**: Toggle base command pins with `→` and pin exact runs after success
20
- - **Custom Command Mode**: Run raw Supabase arguments like `-v` or `status -o json`
15
+ - **Multi-Tool Command Board**: Browse and run commands across Supabase, GitHub (`gh`), Vercel, Git, and your package manager from one tabbed interface
16
+ - **Pipelines**: Chain multiple commands into reusable, sequential workflows with progress tracking
17
+ - **Process Management**: Start, monitor, and control background dev servers and scripts
18
+ - **Declarative Configuration**: Define desired project state in `polter.yaml` and apply it with `polter plan` / `polter apply`
19
+ - **Interactive Arg Builder**: Guided flow for command + subcommand + extra args with suggested picks and flag selection
20
+ - **Pinned Commands and Runs**: Toggle base command pins with `→` and pin exact runs after success for one-click reuse
21
+ - **Package Manager Detection**: Auto-detects npm/pnpm/yarn/bun from lockfiles and translates commands between managers
22
+ - **MCP Server**: Expose Polter as an MCP server for AI tool integration (Claude Code, Cursor, etc.)
21
23
  - **Built-in Self-Update**: Update Polter for the current repository or globally through npm
22
- - **Shell Execution**: Resolves `supabase` from the current repository first, then falls back to `PATH`
23
- - **TypeScript-based CLI**: Strongly typed internal implementation
24
+ - **TypeScript-based CLI**: Strongly typed internal implementation with React + Ink TUI
24
25
 
25
26
  ---
26
27
 
@@ -85,32 +86,36 @@ You can also run the same update flow from inside Polter:
85
86
  ## Requirements
86
87
 
87
88
  - **Node.js**: `>= 18`
88
- - **Supabase CLI**: installed globally in `PATH` or locally in the current repository
89
+
90
+ CLI tools are optional. Polter detects which ones are installed and shows their status on the Tool Status screen:
91
+
92
+ - **Supabase CLI** — [Install guide](https://supabase.com/docs/guides/cli)
93
+ - **GitHub CLI (`gh`)** — [Install guide](https://cli.github.com/)
94
+ - **Vercel CLI** — [Install guide](https://vercel.com/docs/cli)
95
+ - **Package manager** — auto-detected from your lock file (npm, pnpm, yarn, or bun)
89
96
 
90
97
  Check your environment:
91
98
 
92
99
  ```bash
93
100
  node -v
94
101
  supabase --version
102
+ gh --version
103
+ vercel --version
95
104
  ```
96
105
 
97
- Install Supabase CLI (official docs):
98
-
99
- - [Supabase CLI Guide](https://supabase.com/docs/guides/cli)
100
-
101
106
  ---
102
107
 
103
108
  ## Quick Reference
104
109
 
105
110
  ### Execution Model
106
111
 
107
- Polter executes workflow commands as:
112
+ Polter resolves the appropriate CLI tool and executes commands as:
108
113
 
109
114
  ```bash
110
- supabase <command> <extra-args> <global-flags>
115
+ <tool> <command> <extra-args> <flags>
111
116
  ```
112
117
 
113
- The self-update action is the only built-in exception and can run one of:
118
+ where `<tool>` is one of `supabase`, `gh`, `vercel`, `git`, or your package manager. The self-update action is the only built-in exception and can run one of:
114
119
 
115
120
  ```bash
116
121
  npm install -g @polterware/polter@latest
@@ -132,72 +137,27 @@ npm install -D @polterware/polter@latest
132
137
 
133
138
  ## Command Categories
134
139
 
135
- ### Quick Start
136
-
137
- - `bootstrap` - Bootstrap a Supabase project from a starter template
138
-
139
- ### Local Development
140
-
141
- - `db` - Manage Postgres databases
142
- - `gen` - Run code generation tools
143
- - `init` - Initialize a local project
144
- - `inspect` - Inspect Supabase project resources
145
- - `link` - Link local project to remote Supabase project
146
- - `login` - Authenticate with Supabase access token
147
- - `logout` - Remove local auth token
148
- - `migration` - Manage migration scripts
149
- - `seed` - Seed project from `supabase/config.toml`
150
- - `services` - Show local service versions
151
- - `start` - Start local Supabase containers
152
- - `status` - Show local container status
153
- - `stop` - Stop local Supabase containers
154
- - `test` - Run tests against local stack
155
- - `unlink` - Unlink local project
156
-
157
- ### Management APIs
158
-
159
- - `backups`
160
- - `branches`
161
- - `config`
162
- - `domains`
163
- - `encryption`
164
- - `functions`
165
- - `network-bans`
166
- - `network-restrictions`
167
- - `orgs`
168
- - `postgres-config`
169
- - `projects`
170
- - `secrets`
171
- - `snippets`
172
- - `ssl-enforcement`
173
- - `sso`
174
- - `storage`
175
- - `vanity-subdomains`
176
-
177
- ### Additional Commands
178
-
179
- - `completion` - Generate shell completion script
180
- - `help` - Show Supabase command help
181
-
182
- ### Custom Command / Check Version
183
-
184
- Use this mode for free-form args like:
185
-
186
- - `-v`
187
- - `status -o json`
188
- - `db pull`
189
- - `projects list`
140
+ Commands are organized into 9 feature groups in the TUI. Each group pulls from one or more CLI tools.
190
141
 
191
- ---
142
+ | Group | Tools | Representative commands |
143
+ | --- | --- | --- |
144
+ | **Database** | Supabase | `supabase db pull`, `supabase migration list`, `supabase seed`, `supabase inspect` |
145
+ | **Functions** | Supabase | `supabase functions serve`, `supabase functions deploy`, `supabase functions delete` |
146
+ | **Deploy** | Vercel, Git, Supabase | `vercel deploy --prod`, `vercel promote`, `vercel rollback`, `git push` |
147
+ | **Repo** | Git, GitHub | `git status`, `git commit`, `gh pr create`, `gh issue list`, `gh release create` |
148
+ | **CI/CD** | GitHub, Vercel | `gh workflow run`, `gh run view`, `vercel env pull`, `vercel env add` |
149
+ | **Auth & Storage** | Supabase | `supabase storage`, `supabase secrets`, `supabase sso` |
150
+ | **Networking** | Supabase, Vercel | `supabase domains`, `supabase ssl-enforcement`, `vercel domains add` |
151
+ | **Packages** | npm/pnpm/yarn/bun | `pkg install`, `pkg add`, `pkg audit`, `pkg publish`, `pkg version patch` |
152
+ | **Setup** | All | `supabase init`, `supabase link`, `vercel login`, `gh auth login` |
153
+
154
+ The board currently exposes **107 commands** across 5 CLI tools. Use the TUI tabs to browse a specific group or search across all of them.
192
155
 
193
- ## Global Flags
156
+ ---
194
157
 
195
- Available global flags in the interactive selector:
158
+ ## Flags
196
159
 
197
- - `--create-ticket` - Create support ticket on error
198
- - `--debug` - Enable debug logs
199
- - `--experimental` - Enable experimental features
200
- - `--yes` - Auto-confirm prompts
160
+ Flags are tool-specific. When you select a command, the interactive flag picker shows the available flags for that tool (e.g. `--debug` for Supabase, `--force` for Vercel, `--web` for GitHub CLI). You can also type custom flags in the extra-args input.
201
161
 
202
162
  ---
203
163
 
@@ -220,80 +180,76 @@ Pins are persisted locally using OS-level app config storage.
220
180
 
221
181
  ## Usage Examples
222
182
 
223
- ### Check Supabase CLI version
224
-
225
- Interactive path:
226
-
227
- 1. `Custom Command / Check Version`
228
- 2. Input: `-v`
229
-
230
- Executed command:
183
+ ### Run a pipeline
231
184
 
232
185
  ```bash
233
- supabase -v
186
+ polter pipeline run deploy-staging
234
187
  ```
235
188
 
236
- ### Start local stack with debug
189
+ Executes each step of the `deploy-staging` pipeline in sequence, showing progress as it goes.
190
+
191
+ ### Deploy to Vercel
237
192
 
238
193
  Interactive path:
239
194
 
240
- 1. `Local Development`
241
- 2. Command: `start`
242
- 3. Extra args: none
243
- 4. Flags: `--debug`
195
+ 1. **Deploy** tab
196
+ 2. Command: `vercel deploy --prod`
197
+ 3. Confirm and execute
244
198
 
245
199
  Executed command:
246
200
 
247
201
  ```bash
248
- supabase start --debug
202
+ vercel deploy --prod
249
203
  ```
250
204
 
251
- ### List projects
205
+ ### Create a GitHub PR
252
206
 
253
207
  Interactive path:
254
208
 
255
- 1. `Management APIs`
256
- 2. Command: `projects`
257
- 3. Extra args: `list`
209
+ 1. **Repo** tab
210
+ 2. Command: `gh pr create`
211
+ 3. Extra args: `--fill`
258
212
 
259
213
  Executed command:
260
214
 
261
215
  ```bash
262
- supabase projects list
216
+ gh pr create --fill
263
217
  ```
264
218
 
265
- ### Run DB pull and auto-confirm prompts
219
+ ### Install a dependency
266
220
 
267
221
  Interactive path:
268
222
 
269
- 1. `Local Development`
270
- 2. Command: `db`
271
- 3. Extra args: `pull`
272
- 4. Flags: `--yes`
223
+ 1. **Packages** tab
224
+ 2. Command: `pkg add`
225
+ 3. Extra args: `zod`
273
226
 
274
- Executed command:
227
+ Executed command (resolved for your package manager):
275
228
 
276
229
  ```bash
277
- supabase db pull --yes
230
+ npm install zod # npm
231
+ pnpm add zod # pnpm
232
+ yarn add zod # yarn
233
+ bun add zod # bun
278
234
  ```
279
235
 
280
236
  ---
281
237
 
282
238
  ## Troubleshooting
283
239
 
284
- ### `supabase: command not found`
240
+ ### CLI tool not found
285
241
 
286
- Supabase CLI is not installed in the current repository and is not available in your `PATH`.
242
+ If a tool (Supabase, `gh`, Vercel) is not installed, its commands will still appear in the board but will fail at execution. Open the **Tool Status** screen to see which tools are detected and linked.
287
243
 
288
244
  Fix:
289
245
 
290
- 1. Install Supabase CLI globally or in the current repository
291
- 2. Restart terminal
292
- 3. Run `supabase --version`
246
+ 1. Install the missing CLI (see [Requirements](#requirements))
247
+ 2. Restart your terminal
248
+ 3. Re-open Polter — the Tool Status screen should show a green check
293
249
 
294
250
  ### Command exits with non-zero code
295
251
 
296
- Polter forwards execution to Supabase CLI. Use `--debug` and re-run to inspect detailed logs.
252
+ Polter forwards execution to the underlying CLI tool. Check the tool's own documentation for the specific error. For Supabase commands, try adding `--debug`; for GitHub CLI, try `--verbose`.
297
253
 
298
254
  ### Pinned commands are missing
299
255
 
@@ -307,8 +263,8 @@ Ensure you are running in a terminal that supports interactive TTY prompts.
307
263
 
308
264
  ## Security Notes
309
265
 
310
- - Polter executes local shell commands through your installed Supabase CLI.
311
- - Keep Supabase tokens out of shared shells and CI logs.
266
+ - Polter executes local shell commands through your installed CLI tools (Supabase, GitHub, Vercel, Git, package manager).
267
+ - Keep tokens and credentials out of shared shells and CI logs.
312
268
  - Prefer short-lived tokens and least-privileged project access.
313
269
 
314
270
  ---
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@polterware/polter",
3
- "version": "0.5.0",
4
- "description": "An interactive CLI for managing Supabase CLI workflows.",
3
+ "version": "0.5.1",
4
+ "description": "Infrastructure orchestrator CLI for managing dev processes, pipelines, CLI commands, and packages.",
5
5
  "type": "module",
6
6
  "bin": {
7
7
  "polter": "./dist/index.js",
@@ -34,6 +34,13 @@
34
34
  "polterware",
35
35
  "polter",
36
36
  "cli",
37
+ "orchestrator",
38
+ "infrastructure",
39
+ "pipelines",
40
+ "supabase",
41
+ "github",
42
+ "vercel",
43
+ "git",
37
44
  "typescript"
38
45
  ],
39
46
  "author": "Polterware",