askii-cli 0.2.12 → 0.3.1

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 +149 -44
  2. package/dist/index.js +362 -288
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ASKII CLI ( •\_•)>⌐■-■ (⌐■_■)
2
2
 
3
- AI code assistant for your terminal. Powered by Ollama, LM Studio, OpenAI, or Anthropic.
3
+ AI code assistant for your terminal. Powered by Ollama, LM Studio, OpenAI, Anthropic, or opencode Go.
4
4
 
5
5
  ## Install
6
6
 
@@ -14,6 +14,78 @@ Or run without installing:
14
14
  npx askii-cli <command>
15
15
  ```
16
16
 
17
+ ## Interactive Mode
18
+
19
+ Run `askii` with no arguments to start an interactive REPL session:
20
+
21
+ ```bash
22
+ askii
23
+ askii --platform anthropic # start with a specific platform
24
+ ```
25
+
26
+ ```
27
+ ASKII ( •_•)>⌐■-■ (⌐■_■) — interactive mode
28
+
29
+ Platform : ollama (gemma4:e4b)
30
+ Workspace: /your/project
31
+ Wiki : off
32
+ Code wiki: off
33
+
34
+ Type a message to chat, /help for commands, /exit to quit.
35
+
36
+ > what does a closure do in JavaScript?
37
+
38
+ ASKII: A closure is a function that retains access to variables
39
+ from its enclosing scope even after that scope has finished...
40
+
41
+ > can you give me an example?
42
+
43
+ ASKII: Sure! Here's a classic counter example...
44
+
45
+ > /platform anthropic
46
+ Platform → anthropic (claude-sonnet-4-6)
47
+
48
+ > /do add a .gitignore for a Node.js project
49
+ [Round 1/5]
50
+ ...
51
+
52
+ > /exit
53
+ Bye! ( •_•)>⌐■-■ (⌐■_■)
54
+ ```
55
+
56
+ Bare text input maintains a **persistent chat history** across turns — follow-up questions remember the full conversation. Use `/clear` to start fresh.
57
+
58
+ ### REPL slash-commands
59
+
60
+ | Command | Description |
61
+ | --- | --- |
62
+ | `/help` | Show all available commands |
63
+ | `/ask <question>` | Explicit ask (same as bare text) |
64
+ | `/do <task> [flags]` | Run the Do agent (`--max-rounds N`, `--yes`) |
65
+ | `/edit --file <path> <instr>` | Edit a file in place |
66
+ | `/explain <text>` | Explain a line of code |
67
+ | `/wiki-reload` | Rebuild the docs wiki index |
68
+ | `/code-wiki-reload` | Rebuild the code wiki index |
69
+ | `/platform <name>` | Switch platform for the session (also updates default model) |
70
+ | `/model <name>` | Switch model for the session |
71
+ | `/config` | Show current session config (keys redacted) |
72
+ | `/clear` | Clear chat history and start a fresh conversation |
73
+ | `/exit`, `/quit` | Exit interactive mode |
74
+
75
+ Tab-complete any `/` command by pressing Tab. Up/down arrows cycle through input history.
76
+
77
+ **Config overrides** — bare `--` flags at the prompt update session config without restarting:
78
+
79
+ ```
80
+ > --platform openai --model gpt-4-turbo
81
+ > --max-rounds 10
82
+ > --mode helpful
83
+ ```
84
+
85
+ Ctrl+C during `/do` or `/control` cancels only that agent and returns to the `>` prompt. Ctrl+C at the idle prompt exits.
86
+
87
+ ---
88
+
17
89
  ## Commands
18
90
 
19
91
  ### `ask` — Ask a question about code
@@ -100,18 +172,18 @@ askii do --dir .\my-project "refactor index.ts"
100
172
 
101
173
  The agent can use the following actions each round:
102
174
 
103
- | Action | Description | Requires confirmation |
104
- | ------------- | ----------------------------------------------------- | --------------------- |
105
- | `list` | List files in a folder (`[file]` / `[folder]` labels) | No |
106
- | `view` | Read a file's contents | No |
107
- | `search` | Grep workspace files for a pattern | No |
108
- | `wiki_search` | BM25 search over indexed `.md` docs (requires `--use-wiki`) | No |
109
- | `code_search` | BM25 search over indexed code files (requires `--use-code-wiki`) | No |
110
- | `create` | Create a new file | Yes |
111
- | `modify` | Replace text in an existing file | Yes |
112
- | `rename` | Rename or move a file | Yes |
113
- | `delete` | Delete a file | Yes |
114
- | `run` | Run a shell command | Yes (always) |
175
+ | Action | Description | Requires confirmation |
176
+ | ------------- | ---------------------------------------------------------------- | --------------------- |
177
+ | `list` | List files in a folder (`[file]` / `[folder]` labels) | No |
178
+ | `view` | Read a file's contents | No |
179
+ | `search` | Grep workspace files for a pattern | No |
180
+ | `wiki_search` | BM25 search over indexed `.md` docs (requires `--use-wiki`) | No |
181
+ | `code_search` | BM25 search over indexed code files (requires `--use-code-wiki`) | No |
182
+ | `create` | Create a new file | Yes |
183
+ | `modify` | Replace text in an existing file | Yes |
184
+ | `rename` | Rename or move a file | Yes |
185
+ | `delete` | Delete a file | Yes |
186
+ | `run` | Run a shell command | Yes (always) |
115
187
 
116
188
  The loop continues after every round — not only after reads — until the AI returns `[]` or the round limit is hit.
117
189
 
@@ -278,29 +350,32 @@ Without `--yes`, each proposed action is shown with its reasoning and requires `
278
350
 
279
351
  ## Options
280
352
 
281
- | Flag | Short | Description | Default |
282
- | ------------------- | ----- | --------------------------------------------------------- | ------------------------ |
283
- | `--platform` | `-p` | LLM platform: `ollama`, `lmstudio`, `openai`, `anthropic` | `ollama` |
284
- | `--ollama-url` | | Ollama server URL | `http://localhost:11434` |
285
- | `--lmstudio-url` | | LM Studio server URL | `ws://localhost:1234` |
286
- | `--ollama-model` | | Ollama model | `gemma3:270m` |
287
- | `--lmstudio-model` | | LM Studio model | `qwen/qwen3-coder-30b` |
288
- | `--openai-key` | | OpenAI API key (env: `ASKII_OPENAI_KEY`) | |
289
- | `--openai-model` | | OpenAI model | `gpt-4o` |
290
- | `--openai-url` | | OpenAI-compatible base URL (env: `ASKII_OPENAI_URL`) | |
291
- | `--anthropic-key` | | Anthropic API key (env: `ASKII_ANTHROPIC_KEY`) | |
292
- | `--anthropic-model` | | Anthropic model (env: `ASKII_ANTHROPIC_MODEL`) | `claude-opus-4-6` |
293
- | `--mode` | | Response style: `helpful`, `funny` | `funny` |
294
- | `--max-rounds` | | Max agent rounds for `do` / `control` / `browse` | `5` |
295
- | `--dir` | | Working directory for `do` | cwd |
296
- | `--code` | `-c` | Code input (alternative to stdin) | |
297
- | `--yes` | `-y` | Auto-confirm all actions | |
298
- | `--headless` | | Run Puppeteer headlessly for `browse` | `false` (visible) |
299
- | `--chrome-path` | | Path to Chrome/Chromium executable for `browse` | |
300
- | `--wiki-path` | | Path to folder with `.md` docs for wiki RAG (env: `ASKII_WIKI_PATH`) | |
301
- | `--use-wiki` | | Inject wiki context into `ask` / `edit` / `do` (env: `ASKII_USE_WIKI=1`) | |
302
- | `--code-wiki-path` | | Path to codebase root to index / search (env: `ASKII_CODE_WIKI_PATH`) | cwd |
303
- | `--use-code-wiki` | | Inject code wiki context into `ask` / `edit` / `do` (env: `ASKII_USE_CODE_WIKI=1`) | |
353
+ | Flag | Short | Description | Default |
354
+ | ------------------- | ----- | ---------------------------------------------------------------------------------- | ------------------------ |
355
+ | `--platform` | `-p` | LLM platform: `ollama`, `lmstudio`, `openai`, `anthropic`, `opencodego` | `ollama` |
356
+ | `--ollama-url` | | Ollama server URL | `http://localhost:11434` |
357
+ | `--lmstudio-url` | | LM Studio server URL | `ws://localhost:1234` |
358
+ | `--ollama-model` | | Ollama model | `gemma4:e4b` |
359
+ | `--lmstudio-model` | | LM Studio model | `qwen/qwen3-coder-30b` |
360
+ | `--openai-key` | | OpenAI API key (env: `ASKII_OPENAI_KEY`) | |
361
+ | `--openai-model` | | OpenAI model | `gpt-5-mini` |
362
+ | `--openai-url` | | OpenAI-compatible base URL (env: `ASKII_OPENAI_URL`) | |
363
+ | `--anthropic-key` | | Anthropic API key (env: `ASKII_ANTHROPIC_KEY`) | |
364
+ | `--anthropic-model` | | Anthropic model (env: `ASKII_ANTHROPIC_MODEL`) | `claude-sonnet-4-6` |
365
+ | `--opencodego-key` | | opencode Go API key (env: `ASKII_OPENCODEGO_KEY`) | |
366
+ | `--opencodego-model`| | opencode Go model (env: `ASKII_OPENCODEGO_MODEL`) | `glm-5.2` |
367
+ | `--opencodego-url` | | opencode Go base URL (env: `ASKII_OPENCODEGO_URL`) | `https://opencode.ai/zen/go/v1` |
368
+ | `--mode` | | Response style: `helpful`, `funny` | `funny` |
369
+ | `--max-rounds` | | Max agent rounds for `do` / `control` / `browse` | `5` |
370
+ | `--dir` | | Working directory for `do` | cwd |
371
+ | `--code` | `-c` | Code input (alternative to stdin) | |
372
+ | `--yes` | `-y` | Auto-confirm all actions | |
373
+ | `--headless` | | Run Puppeteer headlessly for `browse` | `false` (visible) |
374
+ | `--chrome-path` | | Path to Chrome/Chromium executable for `browse` | |
375
+ | `--wiki-path` | | Path to folder with `.md` docs for wiki RAG (env: `ASKII_WIKI_PATH`) | |
376
+ | `--use-wiki` | | Inject wiki context into `ask` / `edit` / `do` (env: `ASKII_USE_WIKI=1`) | |
377
+ | `--code-wiki-path` | | Path to codebase root to index / search (env: `ASKII_CODE_WIKI_PATH`) | cwd |
378
+ | `--use-code-wiki` | | Inject code wiki context into `ask` / `edit` / `do` (env: `ASKII_USE_CODE_WIKI=1`) | |
304
379
 
305
380
  ## Environment Variables
306
381
 
@@ -311,7 +386,7 @@ export ASKII_PLATFORM=ollama
311
386
 
312
387
  # Ollama
313
388
  export ASKII_OLLAMA_URL=http://localhost:11434
314
- export ASKII_OLLAMA_MODEL=gemma3:270m
389
+ export ASKII_OLLAMA_MODEL=gemma4:e4b
315
390
 
316
391
  # LM Studio
317
392
  export ASKII_LMSTUDIO_URL=ws://localhost:1234
@@ -319,12 +394,17 @@ export ASKII_LMSTUDIO_MODEL=qwen/qwen3-coder-30b
319
394
 
320
395
  # OpenAI
321
396
  export ASKII_OPENAI_KEY=sk-...
322
- export ASKII_OPENAI_MODEL=gpt-4o
397
+ export ASKII_OPENAI_MODEL=gpt-5-mini
323
398
  export ASKII_OPENAI_URL= # leave empty for api.openai.com
324
399
 
325
400
  # Anthropic
326
401
  export ASKII_ANTHROPIC_KEY=sk-ant-...
327
- export ASKII_ANTHROPIC_MODEL=claude-opus-4-6
402
+ export ASKII_ANTHROPIC_MODEL=claude-sonnet-4-6
403
+
404
+ # opencode Go
405
+ export ASKII_OPENCODEGO_KEY=...
406
+ export ASKII_OPENCODEGO_MODEL=glm-5.2
407
+ export ASKII_OPENCODEGO_URL=https://opencode.ai/zen/go/v1
328
408
 
329
409
  # Shared
330
410
  export ASKII_MODE=funny
@@ -347,7 +427,7 @@ $env:ASKII_PLATFORM = "ollama"
347
427
 
348
428
  # Ollama
349
429
  $env:ASKII_OLLAMA_URL = "http://localhost:11434"
350
- $env:ASKII_OLLAMA_MODEL = "gemma3:270m"
430
+ $env:ASKII_OLLAMA_MODEL = "gemma4:e4b"
351
431
 
352
432
  # LM Studio
353
433
  $env:ASKII_LMSTUDIO_URL = "ws://localhost:1234"
@@ -355,12 +435,17 @@ $env:ASKII_LMSTUDIO_MODEL = "qwen/qwen3-coder-30b"
355
435
 
356
436
  # OpenAI
357
437
  $env:ASKII_OPENAI_KEY = "sk-..."
358
- $env:ASKII_OPENAI_MODEL = "gpt-4o"
438
+ $env:ASKII_OPENAI_MODEL = "gpt-5-mini"
359
439
  $env:ASKII_OPENAI_URL = "" # leave empty for api.openai.com
360
440
 
361
441
  # Anthropic
362
442
  $env:ASKII_ANTHROPIC_KEY = "sk-ant-..."
363
- $env:ASKII_ANTHROPIC_MODEL = "claude-opus-4-6"
443
+ $env:ASKII_ANTHROPIC_MODEL = "claude-sonnet-4-6"
444
+
445
+ # opencode Go
446
+ $env:ASKII_OPENCODEGO_KEY = "..."
447
+ $env:ASKII_OPENCODEGO_MODEL = "glm-5.2"
448
+ $env:ASKII_OPENCODEGO_URL = "https://opencode.ai/zen/go/v1"
364
449
 
365
450
  # Shared
366
451
  $env:ASKII_MODE = "funny"
@@ -383,14 +468,14 @@ $env:ASKII_USE_CODE_WIKI = "1"
383
468
  **bash**
384
469
 
385
470
  ```bash
386
- ollama pull gemma3:270m
471
+ ollama pull gemma4:e4b
387
472
  askii ask "what is a closure?"
388
473
  ```
389
474
 
390
475
  **PowerShell**
391
476
 
392
477
  ```powershell
393
- ollama pull gemma3:270m
478
+ ollama pull gemma4:e4b
394
479
  askii ask "what is a closure?"
395
480
  ```
396
481
 
@@ -449,3 +534,23 @@ askii -p anthropic --anthropic-key sk-ant-... ask "what does this do?"
449
534
  askii -p anthropic --anthropic-key sk-ant-... --anthropic-model claude-sonnet-4-6 do "add error handling"
450
535
  askii -p anthropic --anthropic-key sk-ant-... --anthropic-model claude-haiku-4-5 explain "arr.reduce((a, b) => a + b, 0)"
451
536
  ```
537
+
538
+ ### opencode Go
539
+
540
+ A hosted, multi-model coding subscription ([opencode.ai/go](https://opencode.ai/go)). Most models use an OpenAI-compatible endpoint; Qwen and MiniMax models use an Anthropic-compatible one — ASKII routes automatically based on the model id. See the full model list at [opencode.ai/zen/go/v1/models](https://opencode.ai/zen/go/v1/models).
541
+
542
+ **bash**
543
+
544
+ ```bash
545
+ askii -p opencodego --opencodego-key ... ask "what does this do?"
546
+ askii -p opencodego --opencodego-key ... --opencodego-model kimi-k2.7-code do "add error handling"
547
+ askii -p opencodego --opencodego-key ... --opencodego-model qwen3.7-max explain "arr.reduce((a, b) => a + b, 0)"
548
+ ```
549
+
550
+ **PowerShell**
551
+
552
+ ```powershell
553
+ askii -p opencodego --opencodego-key ... ask "what does this do?"
554
+ askii -p opencodego --opencodego-key ... --opencodego-model kimi-k2.7-code do "add error handling"
555
+ askii -p opencodego --opencodego-key ... --opencodego-model qwen3.7-max explain "arr.reduce((a, b) => a + b, 0)"
556
+ ```