tspl-cli 0.1.1 → 0.1.2
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 +426 -66
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,128 +1,488 @@
|
|
|
1
1
|
# tspl
|
|
2
2
|
|
|
3
|
-
`tspl` is the command-line tool for the TSPL AI feature-development tool. It
|
|
3
|
+
`tspl` is the command-line tool for the TSPL AI feature-development tool. It takes a task, finds the code it touches, plans the change with you, has people approve the plan, then lets an AI tool build it, runs the tests, gets a separate AI review and opens the pull request.
|
|
4
|
+
|
|
5
|
+
- **Your code stays on your machine.** tspl reads your repositories locally, with no AI and no tokens. The server keeps only tasks, plans, approvals, reports and AI usage, never code.
|
|
6
|
+
- **People stay in control.** Nothing is built until the developer, and then the PM, approve the plan. While a build runs, git hooks refuse commits and pushes that touch files outside the approved plan.
|
|
7
|
+
- **Done means tested.** A task is ready only when every required check passed on the exact commits of the pull request, and the server decides that, not the AI.
|
|
4
8
|
|
|
5
9
|
```text
|
|
6
10
|
npm i -g tspl-cli → tspl setup → tspl init → tspl task new "…" → tspl t-xxxx → tspl plan approve t-xxxx → tspl task run t-xxxx
|
|
7
11
|
```
|
|
8
12
|
|
|
13
|
+
## Contents
|
|
14
|
+
|
|
15
|
+
1. [Requirements](#requirements)
|
|
16
|
+
2. [Install](#1-install)
|
|
17
|
+
3. [Configure your computer](#2-configure-your-computer)
|
|
18
|
+
4. [Accounts and organizations](#3-accounts-and-organizations)
|
|
19
|
+
5. [Set up a project](#4-set-up-a-project)
|
|
20
|
+
6. [Work on a task, step by step](#5-work-on-a-task-step-by-step)
|
|
21
|
+
7. [Use tspl from your AI tool](#6-use-tspl-from-your-ai-tool)
|
|
22
|
+
8. [Team, roles and projects](#7-team-roles-and-projects)
|
|
23
|
+
9. [AI engines](#8-ai-engines)
|
|
24
|
+
10. [Command reference](#9-command-reference)
|
|
25
|
+
11. [Files and settings](#10-files-and-settings)
|
|
26
|
+
12. [Troubleshooting](#11-troubleshooting)
|
|
27
|
+
13. [Update and uninstall](#12-update-and-uninstall)
|
|
28
|
+
|
|
9
29
|
## Requirements
|
|
10
30
|
|
|
11
|
-
- Node 22 or newer
|
|
12
|
-
- git
|
|
13
|
-
- A TSPL account
|
|
14
|
-
- An AI tool
|
|
31
|
+
- **Node 22 or newer** (`node --version`)
|
|
32
|
+
- **git**
|
|
33
|
+
- **A TSPL account.** Ask your organization's owner or admin to add you. You get a temporary password and choose your own at the first login.
|
|
34
|
+
- **An AI tool** you are signed in to with your own subscription: Claude Code, Codex CLI, Gemini CLI, Antigravity, Cursor or VS Code Copilot
|
|
35
|
+
- **GitHub CLI** (`gh`), for automatic draft pull requests on GitHub. Optional.
|
|
36
|
+
|
|
37
|
+
The TSPL API address is:
|
|
15
38
|
|
|
16
|
-
|
|
39
|
+
```text
|
|
40
|
+
https://aitool-api.techivies.com
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
## 1. Install
|
|
44
|
+
|
|
45
|
+
Do this once per computer.
|
|
17
46
|
|
|
18
47
|
```bash
|
|
19
48
|
npm install -g tspl-cli
|
|
20
49
|
tspl --version
|
|
21
50
|
```
|
|
22
51
|
|
|
23
|
-
|
|
52
|
+
This installs the `tspl` command for your whole computer.
|
|
53
|
+
|
|
54
|
+
## 2. Configure your computer
|
|
55
|
+
|
|
56
|
+
Do this once per computer. You can rerun it at any time, and nothing is lost.
|
|
57
|
+
|
|
58
|
+
```bash
|
|
59
|
+
tspl setup --api https://aitool-api.techivies.com --connect claude
|
|
60
|
+
```
|
|
61
|
+
|
|
62
|
+
`tspl setup` goes through these steps and ends with a list of what is ready and what still needs you:
|
|
63
|
+
|
|
64
|
+
1. **Checks Node and git.**
|
|
65
|
+
2. **Logs you in** to the TSPL API with your email and password. The API address is remembered, so you never type it again.
|
|
66
|
+
3. **Chooses your AI engines,** the AI tool tspl uses for each step (see [AI engines](#8-ai-engines)). It finds Claude, Codex, Gemini and Ollama if they are installed.
|
|
67
|
+
4. **Tests the engines** (optional). It sends one tiny prompt to check that each engine is signed in.
|
|
68
|
+
5. **Connects your AI tool,** so you can type `/tspl` inside it. Use `--connect` with one or more of: `claude`, `codex`, `gemini`, `antigravity`, `cursor`, `vscode`.
|
|
69
|
+
|
|
70
|
+
`tspl setup` options:
|
|
71
|
+
|
|
72
|
+
| Option | What it does |
|
|
73
|
+
| --- | --- |
|
|
74
|
+
| `--api <url>` | TSPL API address |
|
|
75
|
+
| `--email <email>` | your email, so you are not asked |
|
|
76
|
+
| `--org <slug>` | the organization, if you belong to several |
|
|
77
|
+
| `--connect <tools...>` | the AI tools to connect |
|
|
78
|
+
| `-y, --yes` | keep existing choices and ask nothing |
|
|
79
|
+
|
|
80
|
+
**Restart your AI tool after setup** so it loads tspl.
|
|
24
81
|
|
|
25
|
-
|
|
82
|
+
**For GitHub pull requests,** sign the GitHub CLI in once:
|
|
26
83
|
|
|
27
84
|
```bash
|
|
28
|
-
|
|
29
|
-
|
|
85
|
+
gh auth login
|
|
86
|
+
gh auth status
|
|
30
87
|
```
|
|
31
88
|
|
|
32
|
-
|
|
89
|
+
**Check that everything works:**
|
|
33
90
|
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
91
|
+
```bash
|
|
92
|
+
tspl whoami # you, your organization, your role and the API address
|
|
93
|
+
tspl engines test # each AI engine answers
|
|
94
|
+
```
|
|
37
95
|
|
|
38
|
-
|
|
96
|
+
## 3. Accounts and organizations
|
|
39
97
|
|
|
40
|
-
|
|
98
|
+
```bash
|
|
99
|
+
tspl login # log in (uses the saved API address)
|
|
100
|
+
tspl login --api https://aitool-api.techivies.com --email you@company.com
|
|
101
|
+
tspl login --org <slug> # log in to a specific organization
|
|
102
|
+
tspl whoami # who is logged in, which organization and API
|
|
103
|
+
tspl password # change your password
|
|
104
|
+
tspl forgot-password --email you@company.com # get a temporary password (no email is sent)
|
|
105
|
+
tspl logout # log out the account in use
|
|
106
|
+
tspl logout --all # log out every account on this computer
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
One person can belong to several organizations, or have several accounts:
|
|
41
110
|
|
|
42
111
|
```bash
|
|
43
|
-
tspl
|
|
44
|
-
tspl org use <slug>
|
|
112
|
+
tspl org list # organizations you are logged in to; * is the one in use
|
|
113
|
+
tspl org use <slug> # switch organization
|
|
114
|
+
tspl account # menu: switch, add another login, or log out
|
|
115
|
+
tspl account list # saved logins
|
|
116
|
+
tspl account use <email-or-organization>
|
|
45
117
|
```
|
|
46
118
|
|
|
47
|
-
##
|
|
119
|
+
## 4. Set up a project
|
|
48
120
|
|
|
49
|
-
Run inside the project folder
|
|
121
|
+
Do this once per project folder. Run it inside the folder of your project: one repository, or a folder that contains several repositories.
|
|
50
122
|
|
|
51
123
|
```bash
|
|
52
124
|
cd path/to/your/project
|
|
125
|
+
git status --short # commit or stash your work first
|
|
53
126
|
tspl init
|
|
54
127
|
```
|
|
55
128
|
|
|
56
|
-
|
|
129
|
+
`tspl init` does the following:
|
|
130
|
+
|
|
131
|
+
1. **Links the folder to a TSPL project.** It recognizes your repositories by their git history, so folder names and git hosts don't matter. If the project doesn't exist yet, it offers to create it (owner, admin or PM only). If it finds new repositories, it offers to add them.
|
|
132
|
+
2. **Finds your checks.** It reads your package scripts, without running them, and asks you to confirm which ones are the real **test**, **lint**, **typecheck** and **build** commands, and which are required.
|
|
133
|
+
3. **Asks about pull requests:** the GitHub repository, the target branch and the CI policy.
|
|
134
|
+
4. **Offers browser tests.** For web apps without browser tests, it offers to set up Playwright. Skip this with `--no-e2e`.
|
|
135
|
+
5. **Saves the shared project files** in `.tspl/`.
|
|
136
|
+
6. **Tells you** whether a tested pull request is possible for this project.
|
|
137
|
+
|
|
138
|
+
Then commit the shared files, so everyone on the team uses the same rules:
|
|
139
|
+
|
|
140
|
+
```bash
|
|
141
|
+
git add .tspl
|
|
142
|
+
git commit -m "Configure TSPL workflow"
|
|
143
|
+
```
|
|
144
|
+
|
|
145
|
+
`tspl init` options:
|
|
146
|
+
|
|
147
|
+
| Option | What it does |
|
|
148
|
+
| --- | --- |
|
|
149
|
+
| `[folder]` | the project folder, if not the current folder |
|
|
150
|
+
| `--org <slug>` | the organization, if you are logged in to several |
|
|
151
|
+
| `--project <slug>` | add this folder to an existing project |
|
|
152
|
+
| `--name <name>` | the project name, if a new project is created |
|
|
153
|
+
| `--manifest-home <repo>` | for a folder of several repos: the repo that holds `.tspl/` |
|
|
154
|
+
| `--no-e2e` | don't set up browser tests |
|
|
155
|
+
| `-y, --yes` | accept supported suggestions without asking |
|
|
156
|
+
|
|
157
|
+
Running `tspl` with no arguments in a project folder sets the folder up if needed, or lists its open tasks with the next command for each.
|
|
158
|
+
|
|
159
|
+
**Teammates** don't run `tspl init` again. They install tspl, run `tspl setup`, open the same folder and run `tspl`. The project and the `.tspl/` files are already there.
|
|
160
|
+
|
|
161
|
+
## 5. Work on a task, step by step
|
|
162
|
+
|
|
163
|
+
A task goes through these statuses:
|
|
164
|
+
|
|
165
|
+
```text
|
|
166
|
+
draft → plan-review → pm-review → approved → building → done
|
|
167
|
+
↘ changes-requested (from either review) ↙
|
|
168
|
+
```
|
|
169
|
+
|
|
170
|
+
Replace `t-xxxx` below with your task id.
|
|
171
|
+
|
|
172
|
+
### Step 1: Create the task (developer or PM)
|
|
173
|
+
|
|
174
|
+
```bash
|
|
175
|
+
tspl task new "Add a forgot password link to the login page"
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
Other ways to create one:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
tspl task new --ticket TEST-1 "Add About page" # with a ticket id
|
|
182
|
+
tspl task new TEST-1 --file ticket.md # ticket text from a file
|
|
183
|
+
tspl task new "..." --yes # save without the review menu (scripts)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
What happens:
|
|
187
|
+
|
|
188
|
+
1. tspl guesses the **type** (feature, change or bug) and asks only for what is missing: what should change, who it's for, where it is, and for bugs, the steps and the expected result. The answer options come from your code.
|
|
189
|
+
2. You write the **done-when checks**, the acceptance criteria. Each becomes a test case (`TC1`, `TC2`, …) that has to pass later.
|
|
190
|
+
3. tspl **finds the code** the task touches across all repositories, using no AI, and shows the files and how sure it is.
|
|
191
|
+
4. A menu lets you **save**, **edit a field**, **add words and search again**, or **ask the AI once** for better keywords and checks.
|
|
192
|
+
5. It saves the task and prints its **id**, for example `t-mfx2a1-9c3e`.
|
|
193
|
+
|
|
194
|
+
Manage tasks:
|
|
195
|
+
|
|
196
|
+
```bash
|
|
197
|
+
tspl task list # tasks on this computer
|
|
198
|
+
tspl task show t-xxxx # brief: card, done-when checks, files found
|
|
199
|
+
tspl task edit t-xxxx # change the task and save it again
|
|
200
|
+
tspl find "forgot password" # just search the code, without making a task (no AI)
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
### Step 2: Confirm the scope (PM)
|
|
204
|
+
|
|
205
|
+
If your project uses scope confirmation, a PM, admin or owner checks that the task is clear and in scope:
|
|
206
|
+
|
|
207
|
+
```bash
|
|
208
|
+
tspl task scope t-xxxx # confirm
|
|
209
|
+
tspl task scope t-xxxx --back --note "Missing the mobile view" # send it back
|
|
210
|
+
```
|
|
211
|
+
|
|
212
|
+
This can also be done in the web console.
|
|
213
|
+
|
|
214
|
+
### Step 3: Plan (developer and AI)
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
tspl t-xxxx
|
|
218
|
+
```
|
|
219
|
+
|
|
220
|
+
You can also type `/tspl t-xxxx` in your AI tool. The plan is made in three parts:
|
|
221
|
+
|
|
222
|
+
1. **The AI reads the brief and compares 2–3 approaches,** with one recommendation.
|
|
223
|
+
2. **You choose an approach.** The AI never chooses for you. To pick one from a terminal:
|
|
224
|
+
```bash
|
|
225
|
+
tspl task choose t-xxxx <option-id> --version <n>
|
|
226
|
+
```
|
|
227
|
+
3. **The AI writes the plan:** the files to edit, create and remove in each repo, and a test for every done-when check, with the command that runs it. tspl checks the plan against the code: the files exist, new files sit with files of the same kind, names follow the project's style, and every done-when check has a test.
|
|
228
|
+
|
|
229
|
+
Look at the plan:
|
|
230
|
+
|
|
231
|
+
```bash
|
|
232
|
+
tspl plan show t-xxxx # in the terminal
|
|
233
|
+
tspl plan show t-xxxx --page # as a page in your browser
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
### Step 4: Approve the plan (developer, then PM)
|
|
237
|
+
|
|
238
|
+
```bash
|
|
239
|
+
tspl plan approve t-xxxx # approve
|
|
240
|
+
tspl plan approve t-xxxx --note "Looks good"
|
|
241
|
+
tspl plan reject t-xxxx --note "Also update the reset page" # send it back
|
|
242
|
+
tspl plan list # plans waiting for your decision
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
The approval rules:
|
|
246
|
+
|
|
247
|
+
- **The developer approves first, then the PM.** The PM must be a different person from the developer who approved. An owner or admin may approve their own plan, and it is recorded as self-approved.
|
|
248
|
+
- **Approvals are made by people,** in a terminal or the web console. `tspl plan approve` refuses to run inside an AI tool.
|
|
249
|
+
- **An approval counts only for that plan version.** If the plan changes, it has to be approved again.
|
|
250
|
+
- A project can turn off PM approval: `tspl project set-approval <project> off`.
|
|
251
|
+
|
|
252
|
+
While a plan waits for approval, Claude Code is not allowed to edit files in the project's repositories.
|
|
253
|
+
|
|
254
|
+
### Step 5: Build, test, review and open the pull request
|
|
255
|
+
|
|
256
|
+
```bash
|
|
257
|
+
tspl task run t-xxxx
|
|
258
|
+
```
|
|
259
|
+
|
|
260
|
+
Before writing any code, tspl asks:
|
|
261
|
+
|
|
262
|
+
1. **Which branch each repository starts from.** Pick it from the list, or type to filter.
|
|
263
|
+
2. **The name of the new branch,** for example `feature/forgot-password`.
|
|
264
|
+
|
|
265
|
+
Skip the questions with:
|
|
266
|
+
|
|
267
|
+
```bash
|
|
268
|
+
tspl task run t-xxxx --base main --branch feature/forgot-password
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
Then it goes through these stages by itself:
|
|
272
|
+
|
|
273
|
+
| Stage | What happens |
|
|
274
|
+
| --- | --- |
|
|
275
|
+
| `implementing` | The AI writes the code, touching only the files in the approved plan |
|
|
276
|
+
| `testing` | tspl runs the project's required checks and the plan's tests |
|
|
277
|
+
| `repairing` | If something fails, the AI fixes it. There are at most 2 repair rounds in total |
|
|
278
|
+
| `reviewing` | A separate, fresh AI session reviews the changes |
|
|
279
|
+
| `awaiting-delivery` | tspl asks you to confirm the push: repository, branch, target and title |
|
|
280
|
+
| `creating-pr` | Pushes the branch and opens a draft pull request |
|
|
281
|
+
| `awaiting-ci` | Waits for the required CI checks on GitHub |
|
|
282
|
+
| `ready` | Everything passed on the same commits, and the server marks the task done |
|
|
283
|
+
|
|
284
|
+
Options for `tspl task run`:
|
|
285
|
+
|
|
286
|
+
| Option | What it does |
|
|
287
|
+
| --- | --- |
|
|
288
|
+
| `--base <branch>` | branch every repo starts from |
|
|
289
|
+
| `--branch <name>` | name of the new branch |
|
|
290
|
+
| `--confirm-delivery` | confirm the push and pull request in advance, without being asked |
|
|
291
|
+
| `-w, --wait` | when it stops for an approval, a manual check or CI, wait and continue by itself |
|
|
292
|
+
| `--stage <stage>` | retry one stage: `implementing`, `testing`, `reviewing`, `awaiting-delivery`, `creating-pr` or `awaiting-ci` |
|
|
293
|
+
|
|
294
|
+
If it stops, run the same command again. It continues where it stopped and does not ask for the branch again.
|
|
295
|
+
|
|
296
|
+
```bash
|
|
297
|
+
tspl task run t-xxxx # resume
|
|
298
|
+
tspl task watch t-xxxx # same as run --wait
|
|
299
|
+
tspl task status t-xxxx # stage, checks, review, pull requests and the next command
|
|
300
|
+
tspl task run t-xxxx --stage testing # rerun the checks, then continue
|
|
301
|
+
tspl task run t-xxxx --stage reviewing # rerun the review, then continue
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
### Step 6: Check by hand what no test can prove
|
|
305
|
+
|
|
306
|
+
Some done-when checks can't be proven by an automatic test. Check them yourself on the tested commits, then record it with proof:
|
|
307
|
+
|
|
308
|
+
```bash
|
|
309
|
+
tspl task verify t-xxxx --check 2 --note "Checked on Safari" --file screenshot.png
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
`--file` accepts png, jpg, webp, webm and mp4 files.
|
|
313
|
+
|
|
314
|
+
### Step 7: Review and merge
|
|
315
|
+
|
|
316
|
+
The pull request stays a **draft** until the required CI passes, and then it is marked ready. Review it and merge it on GitHub as usual. tspl never merges, deploys or changes branch protection.
|
|
57
317
|
|
|
58
|
-
|
|
318
|
+
For a git host other than GitHub, tspl gives you a compare link instead:
|
|
59
319
|
|
|
60
|
-
|
|
320
|
+
```bash
|
|
321
|
+
tspl build push t-xxxx # push the branch of every repo on the plan
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
### Stop, change or delete a task
|
|
61
325
|
|
|
62
326
|
```bash
|
|
63
|
-
tspl
|
|
64
|
-
tspl t-xxxx
|
|
65
|
-
tspl
|
|
66
|
-
tspl plan approve t-xxxx # developer approves, then the PM approves
|
|
67
|
-
tspl task run t-xxxx # code, run checks, repair, review, draft pull requests, CI
|
|
327
|
+
tspl build stop t-xxxx # stop and lift the edit lock (branches are kept)
|
|
328
|
+
tspl plan amend t-xxxx # cancel the stopped run so a new plan version can be made
|
|
329
|
+
tspl task delete t-xxxx --reason "duplicate"
|
|
68
330
|
```
|
|
69
331
|
|
|
70
|
-
|
|
332
|
+
Use `stop` and `amend` only when the plan really has to change, not for every failure. A new plan version needs new approvals.
|
|
333
|
+
|
|
334
|
+
### Build by hand instead of `task run`
|
|
71
335
|
|
|
72
336
|
```bash
|
|
73
|
-
tspl
|
|
74
|
-
tspl
|
|
337
|
+
tspl build start t-xxxx --branch feature/x # create the branch in every repo on the plan
|
|
338
|
+
tspl build start t-xxxx --open # same, then open a fresh AI session with only the build brief
|
|
339
|
+
tspl build check t-xxxx # compare the commits with the approved plan (also for CI)
|
|
340
|
+
tspl build status # builds in progress on this computer
|
|
75
341
|
```
|
|
76
342
|
|
|
77
|
-
`
|
|
343
|
+
`build start` first stops if any repository has uncommitted changes. Add `--from-current` to start from the branch each repo has checked out instead of the base branch.
|
|
344
|
+
|
|
345
|
+
## 6. Use tspl from your AI tool
|
|
346
|
+
|
|
347
|
+
After `tspl connect <tool>` and a restart of the tool, open it in your project folder and type:
|
|
348
|
+
|
|
349
|
+
```text
|
|
350
|
+
/tspl Add a forgot password link to the login page
|
|
351
|
+
/tspl t-xxxx
|
|
352
|
+
```
|
|
353
|
+
|
|
354
|
+
The AI uses tspl's tools to read the brief, compare approaches, submit the plan and build. It cannot approve plans; you do that in a terminal or the web console, then tell the AI "approved".
|
|
78
355
|
|
|
79
356
|
```bash
|
|
80
|
-
tspl
|
|
357
|
+
tspl connect claude # Claude Code: /tspl, edit lock and AI usage tracking
|
|
358
|
+
tspl connect codex # Codex CLI
|
|
359
|
+
tspl connect gemini # Gemini CLI
|
|
360
|
+
tspl connect antigravity # Antigravity CLI
|
|
361
|
+
tspl connect cursor # Cursor
|
|
362
|
+
tspl connect vscode # VS Code Copilot agent
|
|
363
|
+
tspl connect claude --remove # take tspl out again
|
|
81
364
|
```
|
|
82
365
|
|
|
83
|
-
|
|
366
|
+
The edit lock and the AI usage record work only in Claude Code. The git hooks that enforce the plan work with every tool.
|
|
84
367
|
|
|
85
|
-
|
|
368
|
+
## 7. Team, roles and projects
|
|
86
369
|
|
|
87
|
-
|
|
370
|
+
**Roles:**
|
|
88
371
|
|
|
89
|
-
|
|
|
372
|
+
| Role | Can do |
|
|
90
373
|
| --- | --- |
|
|
91
|
-
|
|
|
92
|
-
|
|
|
93
|
-
|
|
|
94
|
-
|
|
|
95
|
-
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
tspl
|
|
112
|
-
tspl
|
|
113
|
-
tspl project add-member <project> <email>
|
|
374
|
+
| `owner` | everything; add owners and admins; delete projects |
|
|
375
|
+
| `admin` | see all projects, manage the team, delete projects |
|
|
376
|
+
| `pm` | in their projects: confirm scope, give the PM approval, add project members |
|
|
377
|
+
| `developer` | in their projects: create tasks, plan, approve as developer, build |
|
|
378
|
+
| `viewer` | read only |
|
|
379
|
+
|
|
380
|
+
**People** (owner or admin):
|
|
381
|
+
|
|
382
|
+
```bash
|
|
383
|
+
tspl member list
|
|
384
|
+
tspl member add dev@company.com --name "Dev Name" --role developer # gets a temporary password
|
|
385
|
+
tspl member role dev@company.com pm
|
|
386
|
+
tspl member remove dev@company.com
|
|
387
|
+
```
|
|
388
|
+
|
|
389
|
+
New accounts get a temporary password. Pass it on privately; the person chooses their own at the first login.
|
|
390
|
+
|
|
391
|
+
**Projects:**
|
|
392
|
+
|
|
393
|
+
```bash
|
|
394
|
+
tspl project list # projects you can see
|
|
395
|
+
tspl project show <project> # repos and where they are on this computer
|
|
396
|
+
tspl project add-member <project> <email> # owner, admin or PM
|
|
114
397
|
tspl project remove-member <project> <email>
|
|
398
|
+
tspl project set-branch <project> <repo> <branch> # which branch is read and built on
|
|
399
|
+
tspl project set-approval <project> on|off # whether plans need PM approval (default on)
|
|
400
|
+
tspl project remove-repo <project> <repo> # archived, not deleted
|
|
401
|
+
tspl project rm <project> # delete for everyone (owner or admin)
|
|
402
|
+
tspl unlink [project] # forget repo locations on this computer only
|
|
115
403
|
```
|
|
116
404
|
|
|
117
|
-
##
|
|
405
|
+
## 8. AI engines
|
|
406
|
+
|
|
407
|
+
tspl uses your own AI subscription. Choose which engine does each step:
|
|
408
|
+
|
|
409
|
+
```bash
|
|
410
|
+
tspl engines # see the current choice
|
|
411
|
+
tspl engines set plan claude # engine for planning help
|
|
412
|
+
tspl engines set build claude --model opus # engine for building, with a model
|
|
413
|
+
tspl engines test # check every engine is signed in
|
|
414
|
+
```
|
|
118
415
|
|
|
119
|
-
|
|
120
|
-
- `.tspl/project.json` in your project: the project's checks and settings, meant to be committed.
|
|
121
|
-
- The TSPL server stores tasks, plans, approvals, reports and AI usage, never your code.
|
|
416
|
+
The steps are `plan`, `build`, `verify` and `bulk`. The engines are `claude`, `codex`, `gemini` and `ollama`.
|
|
122
417
|
|
|
123
|
-
##
|
|
418
|
+
## 9. Command reference
|
|
419
|
+
|
|
420
|
+
| Command | What it does |
|
|
421
|
+
| --- | --- |
|
|
422
|
+
| `tspl` | set up this folder, or list its open tasks |
|
|
423
|
+
| `tspl t-xxxx` | continue a task from wherever it is |
|
|
424
|
+
| `tspl setup` | configure this computer |
|
|
425
|
+
| `tspl init` | set up a project folder |
|
|
426
|
+
| `tspl login` / `logout` / `whoami` | log in, log out, show who is logged in |
|
|
427
|
+
| `tspl account` / `org` | switch accounts or organizations |
|
|
428
|
+
| `tspl password` / `forgot-password` | change or reset your password |
|
|
429
|
+
| `tspl connect <tool>` | add tspl to an AI tool |
|
|
430
|
+
| `tspl engines` | choose and test AI engines |
|
|
431
|
+
| `tspl find "<text>"` | find the code a task is about (no AI) |
|
|
432
|
+
| `tspl analyze` | re-read the code of this project (no AI; usually automatic) |
|
|
433
|
+
| `tspl task new` / `list` / `show` / `edit` / `delete` | manage tasks |
|
|
434
|
+
| `tspl task scope` | PM confirms or sends back the scope |
|
|
435
|
+
| `tspl task choose` | choose an approach before planning |
|
|
436
|
+
| `tspl task run` / `watch` / `status` | build a task, follow it, see where it is |
|
|
437
|
+
| `tspl task verify` | record a check you did by hand |
|
|
438
|
+
| `tspl plan list` / `show` / `approve` / `reject` / `amend` | review and decide on plans |
|
|
439
|
+
| `tspl build start` / `status` / `check` / `push` / `stop` | manual build commands |
|
|
440
|
+
| `tspl member ...` | people and roles |
|
|
441
|
+
| `tspl project ...` | projects, repos, branches and members |
|
|
442
|
+
| `tspl unlink` | forget repo locations on this computer |
|
|
443
|
+
|
|
444
|
+
Every command has its own help:
|
|
124
445
|
|
|
125
446
|
```bash
|
|
126
447
|
tspl --help
|
|
127
|
-
tspl
|
|
448
|
+
tspl task run --help
|
|
128
449
|
```
|
|
450
|
+
|
|
451
|
+
## 10. Files and settings
|
|
452
|
+
|
|
453
|
+
| Where | What | Shared? |
|
|
454
|
+
| --- | --- | --- |
|
|
455
|
+
| `~/.tspl/` | your login, settings, engine choice, where your repos are, and the local code map | No, this computer only |
|
|
456
|
+
| `.tspl/project.json` | the project's repos, checks (test, lint, typecheck, build), repair limits and pull request settings | Yes, commit it |
|
|
457
|
+
| `.tspl/instructions.md` | the project's rules for the AI; existing `CLAUDE.md` or `AGENTS.md` files are referenced, never rewritten | Yes, commit it |
|
|
458
|
+
| TSPL server | tasks, plans, approvals, reports, evidence and AI usage, never code | Your organization |
|
|
459
|
+
|
|
460
|
+
- To keep tspl's settings somewhere else, set `TSPL_HOME=/path`.
|
|
461
|
+
- The code map is built from git on your computer and refreshed in the background, reading only changed files. It is never uploaded.
|
|
462
|
+
- `.tspl/project.json` contains no tokens and no paths from your computer.
|
|
463
|
+
|
|
464
|
+
## 11. Troubleshooting
|
|
465
|
+
|
|
466
|
+
| Problem | Fix |
|
|
467
|
+
| --- | --- |
|
|
468
|
+
| `Cannot reach the TSPL API` | check your internet connection, then `tspl whoami`; the address should be `https://aitool-api.techivies.com` |
|
|
469
|
+
| `You are logged in to …, not …` | run `tspl login --api https://aitool-api.techivies.com` |
|
|
470
|
+
| Login expired | run `tspl login` |
|
|
471
|
+
| Forgot your password | run `tspl forgot-password --email you@company.com` |
|
|
472
|
+
| `tspl needs Node 22 or newer` | install Node 22+ from https://nodejs.org, then reinstall tspl |
|
|
473
|
+
| `/tspl` doesn't show in your AI tool | run `tspl connect <tool>` and restart the tool |
|
|
474
|
+
| `plan approve` refuses to run | run it in a normal terminal, not inside an AI tool |
|
|
475
|
+
| Build won't start: uncommitted changes | commit or stash your work, then run again |
|
|
476
|
+
| Commit or push refused by a tspl hook | the file isn't in the approved plan; change the plan with `tspl plan amend`, or stop with `tspl build stop` |
|
|
477
|
+
| No pull request is opened | run `gh auth login`; for other git hosts use the compare link |
|
|
478
|
+
| The task stopped | run `tspl task status t-xxxx`; it prints the exact next command |
|
|
479
|
+
| An engine doesn't answer | run `tspl engines test`, then sign in to that AI tool |
|
|
480
|
+
|
|
481
|
+
## 12. Update and uninstall
|
|
482
|
+
|
|
483
|
+
```bash
|
|
484
|
+
npm install -g tspl-cli@latest # update
|
|
485
|
+
npm uninstall -g tspl-cli # uninstall
|
|
486
|
+
```
|
|
487
|
+
|
|
488
|
+
Uninstalling keeps `~/.tspl` (your login and settings). Delete that folder to remove everything.
|