kino-cli 0.1.5 → 0.1.8

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 CHANGED
@@ -5,6 +5,21 @@ answers questions about it, writes and fixes code, and runs the team's documente
5
5
  pull request or working through review comments. It runs on the model you choose, and it asks before anything
6
6
  leaves your machine.
7
7
 
8
+ **The console** (66 s): first start, a question, a fix approved as a diff, the tests run.
9
+
10
+ [![The kino console: choosing a model, asking a question, approving a fix](https://raw.githubusercontent.com/DogukanGun/homebrew-tap/main/media/kino-console.gif)](https://github.com/DogukanGun/homebrew-tap/releases/tag/demo-videos)
11
+
12
+ **Modes** (2 min): Shift+Tab through the modes, a question in research mode, then plan mode: the plan, the
13
+ go-ahead, the fix approved and tested.
14
+
15
+ [![kino's modes: research, then plan, go ahead and fix](https://raw.githubusercontent.com/DogukanGun/homebrew-tap/main/media/kino-modes.gif)](https://github.com/DogukanGun/homebrew-tap/releases/tag/demo-videos)
16
+
17
+ **kino-code on its own** (44 s): `kino code -p` fixes a real bug and the tests pass.
18
+
19
+ [![kino-code fixing a bug from the command line](https://raw.githubusercontent.com/DogukanGun/homebrew-tap/main/media/kino-demo.gif)](https://github.com/DogukanGun/homebrew-tap/releases/tag/demo-videos)
20
+
21
+ All three are unedited recordings on a Claude Code login. The MP4 files are on [the release page](https://github.com/DogukanGun/homebrew-tap/releases/tag/demo-videos).
22
+
8
23
  This guide covers everything, start to finish:
9
24
 
10
25
  1. [Install](#1-install)
@@ -136,6 +151,18 @@ Apply this edit? [y/N/a]
136
151
 
137
152
  It then runs the tests and reports what it changed and how it checked, ending with `✓ done`.
138
153
 
154
+ **Keep typing while kino works.** The input stays open during a run, with `✻ Working… (12s · esc to interrupt)`
155
+ above it. Each line you send while it works is queued under the input (`⎿ queued: …`) and runs after the
156
+ current one, in order. **↑** on an empty input takes the last queued line back to edit. Approvals and
157
+ questions are asked in the same input: the question replaces `❯`, and what you had half-typed comes back
158
+ after you answer. If you interrupt a run (Esc or Ctrl-C), the queued lines come back to the input instead of
159
+ running.
160
+
161
+ **Clicking in the input** moves the cursor there. For that, kino turns on the terminal's mouse reporting, which
162
+ also takes the scroll wheel: while the console is open, scroll back with the terminal's scrollbar, and select
163
+ text with Option (macOS) or Shift held. `/mouse off` gives the wheel back to the terminal (saved for every
164
+ folder); `/mouse on` turns clicking on again.
165
+
139
166
  **It remembers the conversation.** Each new message knows the earlier ones, how they ended and which files they
140
167
  changed, so "now add a test for it" works. `/clear` starts over. `kino -c` reopens the last conversation, and
141
168
  continues a run that was waiting or had failed.
@@ -143,7 +170,20 @@ continues a run that was waiting or had failed.
143
170
  **Attach files** with `@`: `explain @src/api/routes.py` (Tab completes paths). **Several lines:** Alt-Enter,
144
171
  Ctrl-J, or a `\` at the end of a line; pasting several lines also works.
145
172
 
146
- **The bar at the bottom** shows the model, the approval mode, and the tokens and requests used so far.
173
+ **The prompt area:**
174
+
175
+ ```
176
+ ──────────────────────────────────────────────────────────────── shop ───
177
+ ❯ fix the cart total
178
+ ─────────────────────────────────────────────────────────────────────────
179
+ ⏵⏵ auto mode on (shift+tab to cycle) claude-code:claude-sonnet-5-5 · 1.2k in / 340 out · kino 0.1.8
180
+ ```
181
+
182
+ - Above the input, at the right: the label, which is the folder's name unless you set one with `/rename <name>`.
183
+ - Below it, at the left: the mode. **Shift+Tab** cycles through the modes (see [4](#4-approvals-and-modes)).
184
+ - At the right: the model, the tokens used so far, and kino's version. When npm has a newer kino, it says
185
+ `kino 0.1.9 available · npm i -g kino-cli@latest` instead. kino checks for that at most once a day, in the
186
+ background; `KINO_NO_UPDATE_CHECK=1` turns the check off.
147
187
 
148
188
  **Stop and leave:**
149
189
  - Esc or Ctrl-C while kino works stops it. The run is kept, and `/resume` continues it.
@@ -161,13 +201,44 @@ Ctrl-J, or a `\` at the end of a line; pasting several lines also works.
161
201
  `git push`), one API operation, or, for edits, every edit. `/permissions` shows what you allowed, and
162
202
  `/permissions revoke <n|all>` takes it back. Nothing is remembered after you leave.
163
203
 
164
- Modes, changed with `/mode`:
204
+ **Modes.** Shift+Tab cycles `ask → auto-edit → plan → research → auto → ask`; `/mode <name>` sets any of
205
+ them, `read-only` included.
165
206
 
166
- | Mode | File changes | Outward actions |
167
- |---|---|---|
168
- | `ask` (default) | shown and asked | asked |
169
- | `auto-edit` | shown and applied | asked |
170
- | `read-only` | refused | refused |
207
+ | Mode | What kino does | File changes | Outward actions |
208
+ |---|---|---|---|
209
+ | `ask` (default) | the task | shown and asked | asked |
210
+ | `auto-edit` | the task | shown and applied | asked |
211
+ | `plan` | investigates and answers with a plan, then asks whether to go ahead | none | none |
212
+ | `research` | investigates and answers with a report, with `file:line` references | none | none |
213
+ | `auto` | the task, without stopping to ask | shown and applied | shown and allowed |
214
+ | `read-only` | the task, without changing anything | refused | refused |
215
+
216
+ **Plan mode** is for changes you want to agree on first. kino reads the code and answers with a plan: the goal,
217
+ each file to change and how, new tests, the commands that will verify it, risks and open questions. The plan
218
+ is drawn as formatted text in a box titled **Plan** (research reports get a **Report** box). Then it asks:
219
+
220
+ ```
221
+ ╭─ Plan ready ────────────────────────────────╮
222
+ │ Go ahead with this plan? │
223
+ │ 1. Yes, and ask before each edit │
224
+ │ 2. Yes, and apply edits without asking │
225
+ │ 3. Yes, in auto mode (outward actions too)│
226
+ │ 4. No, keep planning │
227
+ ╰─────────────────────────────────────────────╯
228
+ ```
229
+
230
+ With a yes, kino switches to that mode and carries the plan out. With no, you stay in plan mode: say what to
231
+ change in the plan.
232
+
233
+ **Research mode** answers questions about the code without changing anything: the direct answer first, the
234
+ findings with `file:line` references, how the parts connect, what is uncertain, and what it did not check.
235
+
236
+ **Auto mode** runs without stopping for approvals. Every edit and every outward action the policy allows (push,
237
+ pull requests, ticket and API writes) is shown as it happens and goes ahead. Use it when you trust the task and
238
+ the setup. What auto mode does not change:
239
+ - the hard guards still refuse force-push, merges, `reset --hard` and the rest (see [Safety](#12-safety));
240
+ - your config's deny rules still refuse their calls;
241
+ - questions only you can answer are still asked.
171
242
 
172
243
  Some things are never done, whatever you answer: see [Safety](#12-safety).
173
244
 
@@ -177,7 +248,9 @@ Some things are never done, whatever you answer: see [Safety](#12-safety).
177
248
  |---|---|
178
249
  | `/help` | list the commands |
179
250
  | `/model [provider:model]` | open the model picker, or switch to that model |
180
- | `/mode [ask\|auto-edit\|read-only]` | show or set how changes are approved |
251
+ | `/mode [ask\|auto-edit\|plan\|research\|auto\|read-only]` | show or set the mode (Shift+Tab cycles) |
252
+ | `/mouse [on\|off]` | click in the input to move the cursor (on by default; off gives the wheel back to scrolling) |
253
+ | `/rename [name]` | the label above the prompt; with no name, back to the folder's name |
181
254
  | `/permissions [revoke <n\|all>]` | what you allowed this session; take it back |
182
255
  | `/diff` | `git diff` of what changed |
183
256
  | `/cost` | requests, tool calls and tokens used this session |
@@ -194,8 +267,9 @@ Some things are never done, whatever you answer: see [Safety](#12-safety).
194
267
  | Enter | send |
195
268
  | Alt-Enter, Ctrl-J, `\` at line end | new line |
196
269
  | Tab | complete a command, a process name, or a path after `@` |
197
- | ↑ / ↓ | earlier messages |
198
- | Esc | stop the current run |
270
+ | Shift+Tab | the next mode |
271
+ | ↑ / ↓ | earlier messages; ↑ on an empty input while lines are queued takes the last one back to edit |
272
+ | Esc | stop the current run (queued lines come back to the input) |
199
273
  | Ctrl-C | stop the run; clear the line; twice on an empty line to leave |
200
274
  | Ctrl-D | leave |
201
275
 
@@ -385,7 +459,8 @@ API calls stay with kino's own steps, behind its confirmations.
385
459
  ## 12. Safety
386
460
 
387
461
  - **Outward actions are confirmed one call at a time**: push, pull requests, comments, ticket and API writes. With
388
- nobody at the terminal they are refused, or the run waits until someone answers.
462
+ nobody at the terminal they are refused, or the run waits until someone answers. The exception is auto mode,
463
+ which you switch on yourself: there they are shown and go ahead.
389
464
  - **Never done, whatever you answer**: force-push, `git reset --hard`, `git stash`, merging pull requests,
390
465
  admin overrides, co-author trailers.
391
466
  - **Files** can only change inside the folder kino works in.
@@ -426,6 +501,7 @@ knowledge:
426
501
  | `ANTHROPIC_API_KEY`, `OPENAI_API_KEY`, `GEMINI_API_KEY` | provider keys |
427
502
  | `OLLAMA_HOST` | where Ollama runs (default `http://localhost:11434`) |
428
503
  | `KINO_UV`, `KINO_NO_UV_INSTALL` | which uv the npm package uses; don't install uv |
504
+ | `KINO_NO_UPDATE_CHECK` | `1`: never look up newer kino versions |
429
505
 
430
506
  All commands: `kino --help`, and `kino <command> --help` for each one.
431
507
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "kino-cli",
3
- "version": "0.1.5",
3
+ "version": "0.1.8",
4
4
  "description": "kino: an agent that learns your codebase and tools, then works as one of the team's developers. Includes kino-code, a coding agent on any model.",
5
5
  "bin": {
6
6
  "kino": "bin/kino.js"