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.
Files changed (3) hide show
  1. package/README.md +64 -14
  2. package/dist/quibble.js +1229 -307
  3. 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
- You need Node 22 or later.
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
- With no endpoint configured, Quibble runs in local mode and appends complaints
22
- to `~/.quibble/complaints.jsonl`. No server or account is needed.
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 init -t build -t tests -t docs
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 init` writes a `.quibblerc` and prints a short section for you to
33
- paste into your `CLAUDE.md` or `AGENTS.md`. It tells the agent when to
34
- complain and how, for example:
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 the same section to a file
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
- ## Remote mode
83
+ ## Local mode
49
84
 
50
- To share complaints with a team, point the CLI at a hosted API. Create an
51
- account in its web app first, then:
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 --org acme --endpoint https://api.example.com -t build
55
- quibble login
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>