@harborppm/cli 0.1.1 → 0.2.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 +20 -6
- package/dist/app.mjs +5674 -0
- package/lib/app.mjs +41 -0
- package/lib/auth.mjs +5 -1
- package/lib/cli.mjs +49 -2
- package/package.json +11 -5
package/README.md
CHANGED
|
@@ -1,13 +1,27 @@
|
|
|
1
1
|
# Harbor CLI
|
|
2
2
|
|
|
3
|
-
[Harbor](https://harborppm.com)
|
|
3
|
+
[Harbor](https://harborppm.com) in the terminal: a full-screen app with your whole harbor, and commands for scripts and agents.
|
|
4
4
|
|
|
5
5
|
```sh
|
|
6
|
-
|
|
7
|
-
|
|
6
|
+
npm install -g @harborppm/cli
|
|
7
|
+
harbor # the full-screen app (signs you in the first time)
|
|
8
|
+
harbor mine # or one command at a time
|
|
8
9
|
```
|
|
9
10
|
|
|
10
|
-
|
|
11
|
+
Needs Node 22 or later.
|
|
12
|
+
|
|
13
|
+
## The full-screen app
|
|
14
|
+
|
|
15
|
+
`harbor` on its own takes over the terminal, like `htop` or `lazygit`, and gives it back when you press `q`:
|
|
16
|
+
|
|
17
|
+
- **Today**: what's on you, late first; who's waiting on you; your risks and issues.
|
|
18
|
+
- **Projects**: every portfolio, program and project with its health. Enter opens a project's board (columns side by side) or its list (`v`).
|
|
19
|
+
- **A task**: every field changes in place: title, status, owner, due date (`2026-10-14`, `today`, `+3`), priority, project, notes, checklist steps, comments.
|
|
20
|
+
- **Programs, Risks, People**, and **Harbors** (`6`) to switch between the harbors you belong to.
|
|
21
|
+
|
|
22
|
+
Keys: `↑↓` (or `j k`) and `←→` (or `h l`) move, Enter opens, Esc goes back, `/` finds a task by its key or words, `n` adds a task, `[` `]` move a card a column, `x` marks it done, `d` deletes (it asks first), `u` undoes your last change, `?` lists them all.
|
|
23
|
+
|
|
24
|
+
It runs on the same engine as the website: health, task keys, limits and undo work the same way, changes save as you go (the header says when, and holds them while you're offline), and changes anyone makes on the website or elsewhere show up within a couple of seconds. It needs full access, which `harbor login` asks for by name; an older sign-in is asked again the first time.
|
|
11
25
|
|
|
12
26
|
## Signing in
|
|
13
27
|
|
|
@@ -38,7 +52,7 @@ Every command takes `--harbor NAME` when you're in more than one, and `--json` f
|
|
|
38
52
|
|
|
39
53
|
Harbor holds back what it would hold back in the app: finishing a task that still waits on another, or going past a column's limit. The CLI says so and names the flag that goes ahead (`--confirm`, `--over-limit`).
|
|
40
54
|
|
|
41
|
-
Every change shows in Harbor's History as yours, "via Harbor CLI".
|
|
55
|
+
Every change shows in Harbor's History as yours, "via Harbor CLI". The commands never delete anything; the full-screen app can, as the website can, and asks first.
|
|
42
56
|
|
|
43
57
|
## Another server
|
|
44
58
|
|
|
@@ -46,7 +60,7 @@ Every change shows in Harbor's History as yours, "via Harbor CLI". Nothing the C
|
|
|
46
60
|
|
|
47
61
|
## Developing
|
|
48
62
|
|
|
49
|
-
|
|
63
|
+
The commands are plain Node with no dependencies. The full-screen app is `src/tui` in the repository (React with Ink), bundled into `dist/app.mjs` by `node cli/build.mjs`; Ink and React are its only dependencies. `npm test` runs the CLI's tests against a stand-in Harbor; `e2e/cli.test.mjs` and `e2e/terminal-app.test.mjs` drive it against a real one.
|
|
50
64
|
|
|
51
65
|
## License
|
|
52
66
|
|