letthemquibble 1.1.0 → 2.0.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 +64 -14
- package/dist/quibble.js +1229 -307
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -10,7 +10,24 @@ This package is the `quibble` CLI. It is published as `letthemquibble` because
|
|
|
10
10
|
|
|
11
11
|
## Install
|
|
12
12
|
|
|
13
|
-
|
|
13
|
+
On macOS or Linux:
|
|
14
|
+
|
|
15
|
+
```sh
|
|
16
|
+
curl -fsSL https://letthemquibble.com/install.sh | sh
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
On Windows, in PowerShell:
|
|
20
|
+
|
|
21
|
+
```powershell
|
|
22
|
+
irm https://letthemquibble.com/install.ps1 | iex
|
|
23
|
+
```
|
|
24
|
+
|
|
25
|
+
This installs a standalone binary that needs no Node. Run it again to update.
|
|
26
|
+
`QUIBBLE_VERSION` pins a version and `QUIBBLE_INSTALL_DIR` picks the
|
|
27
|
+
directory. On Alpine and other musl systems, run `apk add libstdc++ libgcc`
|
|
28
|
+
first.
|
|
29
|
+
|
|
30
|
+
With Node 22 or later you can install from npm instead:
|
|
14
31
|
|
|
15
32
|
```sh
|
|
16
33
|
npm install -g letthemquibble
|
|
@@ -18,45 +35,77 @@ npm install -g letthemquibble
|
|
|
18
35
|
|
|
19
36
|
## Quick start
|
|
20
37
|
|
|
21
|
-
|
|
22
|
-
|
|
38
|
+
Quibble talks to the hosted service at `https://api.letthemquibble.com` unless
|
|
39
|
+
you name another endpoint. Create an account and an organization at
|
|
40
|
+
<https://letthemquibble.com>, and have an admin create the project there.
|
|
41
|
+
Then, in the repository:
|
|
23
42
|
|
|
24
43
|
```sh
|
|
25
44
|
cd ~/code/myproject
|
|
26
|
-
quibble
|
|
45
|
+
quibble login
|
|
46
|
+
quibble init --org acme
|
|
47
|
+
quibble snippet --append CLAUDE.md --hook
|
|
27
48
|
quibble complain "the build takes 4 minutes" -s high -t build
|
|
28
49
|
quibble list
|
|
29
50
|
quibble summary
|
|
30
51
|
```
|
|
31
52
|
|
|
32
|
-
`quibble
|
|
33
|
-
|
|
34
|
-
|
|
53
|
+
`quibble login` opens the browser, where you check the code and approve the
|
|
54
|
+
login. It needs no terminal, so a coding agent can start it too. Over SSH or
|
|
55
|
+
in WSL, open the printed URL on any device where you are signed in, or pass
|
|
56
|
+
`--no-browser` to print it alone. `quibble login --password` asks for the
|
|
57
|
+
email, the password and, when two-factor sign-in is on, a code in the
|
|
58
|
+
terminal instead.
|
|
59
|
+
|
|
60
|
+
`quibble init` writes a `.quibblerc` and prints a short section for your
|
|
61
|
+
`CLAUDE.md` or `AGENTS.md`. It tells the agent when to complain and how, for
|
|
62
|
+
example:
|
|
35
63
|
|
|
36
64
|
```
|
|
37
65
|
quibble complain "what went wrong, and what you expected" -s medium -t build --agent claude
|
|
38
66
|
```
|
|
39
67
|
|
|
40
|
-
`quibble snippet --append CLAUDE.md` appends
|
|
68
|
+
`quibble snippet --append CLAUDE.md` appends that section to a file
|
|
41
69
|
(`AGENTS.md` names the agent `codex`), `quibble snippet --skill` writes it as a
|
|
42
70
|
Claude Code skill, and `--agent <name>` names any other agent.
|
|
43
71
|
|
|
72
|
+
When the allowed tags change, `quibble sync` rewrites that section in place
|
|
73
|
+
in `CLAUDE.md`, `AGENTS.md` and the skill file, and leaves the rest of each
|
|
74
|
+
file alone. `--hook` on `init`, `snippet` or `sync` adds a Claude Code
|
|
75
|
+
`SessionStart` hook that runs `quibble sync --quiet` at the start of every
|
|
76
|
+
new session, so the list stays current by itself.
|
|
77
|
+
|
|
44
78
|
Complaints that share a headline fold into one row of `quibble list`.
|
|
45
79
|
`quibble show <id>` prints one in full, and any unique prefix of at least 6
|
|
46
|
-
characters stands for an id.
|
|
80
|
+
characters stands for an id. Project names ignore case: `DBT` and `dbt` are
|
|
81
|
+
the same project.
|
|
47
82
|
|
|
48
|
-
##
|
|
83
|
+
## Local mode
|
|
49
84
|
|
|
50
|
-
|
|
51
|
-
|
|
85
|
+
Local mode keeps complaints on your machine, in
|
|
86
|
+
`~/.quibble/complaints.jsonl`, with no server and no account. It is opt-in:
|
|
87
|
+
pass `--local`, or set the endpoint to `local`.
|
|
52
88
|
|
|
53
89
|
```sh
|
|
54
|
-
quibble init --
|
|
55
|
-
quibble
|
|
90
|
+
quibble init --endpoint local -t build -t tests -t docs
|
|
91
|
+
quibble complain "the build takes 4 minutes" -s high -t build
|
|
56
92
|
```
|
|
57
93
|
|
|
94
|
+
`--endpoint local` writes `"endpoint": "local"` into `.quibblerc`, so every
|
|
95
|
+
command in the project stays local. Each local filing says on stderr that
|
|
96
|
+
nothing was sent.
|
|
97
|
+
|
|
98
|
+
## Other servers and CI
|
|
99
|
+
|
|
100
|
+
`--endpoint`, `QUIBBLE_ENDPOINT`, `.quibblerc` and `~/.quibble/config.json`
|
|
101
|
+
take the API URL, the web URL or a bare host, such as
|
|
102
|
+
`staging.example.com`. `quibble login --endpoint <url>` saves the endpoint
|
|
103
|
+
in `~/.quibble/config.json` when that file names none yet, so you pass it
|
|
104
|
+
once.
|
|
105
|
+
|
|
58
106
|
For CI, a maintainer runs `quibble token create ci`, and the job sets the two
|
|
59
107
|
lines it prints, `QUIBBLE_ENDPOINT` and `QUIBBLE_TOKEN`, instead of logging in.
|
|
108
|
+
A plain `quibble login` refuses to run when `CI` is set.
|
|
60
109
|
A complaint that cannot reach the API waits in `~/.quibble/unsent.jsonl` and
|
|
61
110
|
goes out with the next remote command, or with `quibble retry`.
|
|
62
111
|
|
|
@@ -64,5 +113,6 @@ Run `quibble --help` for every command.
|
|
|
64
113
|
|
|
65
114
|
## More
|
|
66
115
|
|
|
116
|
+
- <https://letthemquibble.com/help>: install, update, setup and login
|
|
67
117
|
- <https://github.com/repineap/quibble>
|
|
68
118
|
- <https://letthemquibble.com>
|