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.
- package/README.md +149 -44
- package/dist/index.js +362 -288
- 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
|
|
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
|
|
104
|
-
| ------------- |
|
|
105
|
-
| `list` | List files in a folder (`[file]` / `[folder]` labels)
|
|
106
|
-
| `view` | Read a file's contents
|
|
107
|
-
| `search` | Grep workspace files for a pattern
|
|
108
|
-
| `wiki_search` | BM25 search over indexed `.md` docs (requires `--use-wiki`)
|
|
109
|
-
| `code_search` | BM25 search over indexed code files (requires `--use-code-wiki`) | No
|
|
110
|
-
| `create` | Create a new file
|
|
111
|
-
| `modify` | Replace text in an existing file
|
|
112
|
-
| `rename` | Rename or move a file
|
|
113
|
-
| `delete` | Delete a file
|
|
114
|
-
| `run` | Run a shell command
|
|
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
|
|
282
|
-
| ------------------- | ----- |
|
|
283
|
-
| `--platform` | `-p` | LLM platform: `ollama`, `lmstudio`, `openai`, `anthropic`
|
|
284
|
-
| `--ollama-url` | | Ollama server URL
|
|
285
|
-
| `--lmstudio-url` | | LM Studio server URL
|
|
286
|
-
| `--ollama-model` | | Ollama model
|
|
287
|
-
| `--lmstudio-model` | | LM Studio model
|
|
288
|
-
| `--openai-key` | | OpenAI API key (env: `ASKII_OPENAI_KEY`)
|
|
289
|
-
| `--openai-model` | | OpenAI model
|
|
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`)
|
|
293
|
-
| `--
|
|
294
|
-
| `--
|
|
295
|
-
| `--
|
|
296
|
-
| `--
|
|
297
|
-
| `--
|
|
298
|
-
| `--
|
|
299
|
-
| `--
|
|
300
|
-
| `--
|
|
301
|
-
| `--
|
|
302
|
-
| `--
|
|
303
|
-
| `--
|
|
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=
|
|
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-
|
|
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-
|
|
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 = "
|
|
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-
|
|
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-
|
|
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
|
|
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
|
|
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
|
+
```
|