@iinm/plain-agent 1.9.1 → 1.9.2
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 +58 -22
- package/config/config.predefined.json +24 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -1,32 +1,71 @@
|
|
|
1
|
-
<p align="center">
|
|
2
|
-
<img src="https://pub-0bb49aa929f242d49c89ed8c297932b5.r2.dev/plain-agent/plain-agent-logo.png" alt="plain-agent logo" width="320">
|
|
3
|
-
</p>
|
|
4
|
-
|
|
5
1
|
# Plain Agent
|
|
6
2
|
|
|
7
|
-
A lightweight
|
|
3
|
+
A lightweight, capable coding agent for the terminal.
|
|
8
4
|
|
|
9
5
|
- **Multi-provider** — Use Claude, GPT, Gemini, or any OpenAI-compatible model.
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
-
|
|
17
|
-
|
|
18
|
-
(
|
|
19
|
-
-
|
|
20
|
-
|
|
6
|
+
<details>
|
|
7
|
+
<summary>Predefined models</summary>
|
|
8
|
+
|
|
9
|
+
```
|
|
10
|
+
# Model+Variant (Platform+Variant)
|
|
11
|
+
claude-haiku-4-5+thinking-16k (platform: anthropic+default)
|
|
12
|
+
claude-haiku-4-5+thinking-32k (platform: anthropic+default)
|
|
13
|
+
claude-sonnet-4-6+thinking-high (platform: anthropic+default)
|
|
14
|
+
claude-sonnet-4-6+thinking-max (platform: anthropic+default)
|
|
15
|
+
claude-opus-4-7+thinking-high (platform: anthropic+default)
|
|
16
|
+
claude-opus-4-7+thinking-max (platform: anthropic+default)
|
|
17
|
+
claude-haiku-4-5+thinking-16k-bedrock (platform: bedrock+default)
|
|
18
|
+
claude-haiku-4-5+thinking-32k-bedrock (platform: bedrock+default)
|
|
19
|
+
claude-sonnet-4-6+thinking-high-bedrock (platform: bedrock+default)
|
|
20
|
+
claude-sonnet-4-6+thinking-max-bedrock (platform: bedrock+default)
|
|
21
|
+
claude-opus-4-7+thinking-high-bedrock (platform: bedrock+default)
|
|
22
|
+
claude-opus-4-7+thinking-max-bedrock (platform: bedrock+default)
|
|
23
|
+
gemini-3-flash-preview+thinking-medium (platform: gemini+default)
|
|
24
|
+
gemini-3-flash-preview+thinking-high (platform: gemini+default)
|
|
25
|
+
gemini-3.1-pro-preview+thinking-medium (platform: gemini+default)
|
|
26
|
+
gemini-3.1-pro-preview+thinking-high (platform: gemini+default)
|
|
27
|
+
gemini-3-flash-preview+thinking-medium-vertex-ai (platform: vertex-ai+default)
|
|
28
|
+
gemini-3-flash-preview+thinking-high-vertex-ai (platform: vertex-ai+default)
|
|
29
|
+
gemini-3.1-pro-preview+thinking-medium-vertex-ai (platform: vertex-ai+default)
|
|
30
|
+
gemini-3.1-pro-preview+thinking-high-vertex-ai (platform: vertex-ai+default)
|
|
31
|
+
gpt-5.4-mini+thinking-medium (platform: openai+default)
|
|
32
|
+
gpt-5.4-mini+thinking-high (platform: openai+default)
|
|
33
|
+
gpt-5.4-mini+thinking-xhigh (platform: openai+default)
|
|
34
|
+
gpt-5.5+thinking-medium (platform: openai+default)
|
|
35
|
+
gpt-5.5+thinking-high (platform: openai+default)
|
|
36
|
+
gpt-5.5+thinking-xhigh (platform: openai+default)
|
|
37
|
+
gpt-5.2-chat+thinking-medium-azure (platform: azure+openai)
|
|
38
|
+
gpt-oss-120b+fireworks (platform: openai-compatible+fireworks)
|
|
39
|
+
glm-5+vertex-ai (platform: vertex-ai+default)
|
|
40
|
+
glm-5.1+fireworks (platform: openai-compatible+fireworks)
|
|
41
|
+
glm-5.1+novita (platform: openai-compatible+novita)
|
|
42
|
+
kimi-k2.6+fireworks (platform: openai-compatible+fireworks)
|
|
43
|
+
kimi-k2.6+novita (platform: openai-compatible+novita)
|
|
44
|
+
deepseek-v4-pro+novita (platform: openai-compatible+novita)
|
|
45
|
+
deepseek-v4-pro+fireworks (platform: openai-compatible+fireworks)
|
|
46
|
+
minimax-m2.7+fireworks (platform: openai-compatible+fireworks)
|
|
47
|
+
minimax-m2.7+novita (platform: openai-compatible+novita)
|
|
48
|
+
qwen3.6-plus+fireworks (platform: openai-compatible+fireworks)
|
|
49
|
+
qwen3.6-27b+novita (platform: openai-compatible+novita)
|
|
50
|
+
nova-2-lite+bedrock (platform: bedrock+default)
|
|
51
|
+
claude-haiku-4-5+thinking-16k-bedrock-converse (platform: bedrock+default)
|
|
52
|
+
```
|
|
53
|
+
</details>
|
|
54
|
+
|
|
55
|
+
|
|
56
|
+
- **Approval rules & path validation** — Auto-approve tool uses by name and arguments using regex patterns ([config.predefined.json#autoApproval](https://github.com/iinm/plain-agent/blob/main/config/config.predefined.json)); restrict file access to the working directory — git-ignored and untracked files require explicit approval ([src/toolInputValidator.mjs](https://github.com/iinm/plain-agent/blob/main/src/toolInputValidator.mjs)).
|
|
57
|
+
- **Sandboxed execution** — Run agent commands in a Docker container with a read-only project root and no network; writable mode and allowlisted network destinations can be enabled as needed.
|
|
58
|
+
- **Plain-text memory** — Task state is saved as Markdown files under `.plain-agent/memory/` for easy review.
|
|
21
59
|
- **Extensible** — Define prompts and subagents in Markdown. Connect MCP servers.
|
|
22
60
|
Supports Claude Code plugins and `.claude/` commands, subagents, and skills.
|
|
23
61
|
|
|
24
62
|
## Limitations
|
|
25
63
|
|
|
64
|
+
- **Path validation only covers tool arguments** — Path validation restricts only paths explicitly passed as tool-use arguments; it cannot control file access inside arbitrary scripts. Always use sandboxed execution when allowing arbitrary script execution.
|
|
65
|
+
- **No session persistence** — Sessions are not persisted. Start a fresh session and use memory files (`.plain-agent/memory/`) instead.
|
|
26
66
|
- **Sequential subagent execution** — Subagents run one at a time rather than
|
|
27
67
|
in parallel. The trade-off is full visibility: every step is streamed to
|
|
28
68
|
your terminal so you can follow exactly what each subagent is doing.
|
|
29
|
-
- **No session persistence** — Sessions are not persisted. Start a fresh session and use memory files (`.plain-agent/memory/`) instead.
|
|
30
69
|
|
|
31
70
|
## Requirements
|
|
32
71
|
|
|
@@ -157,7 +196,7 @@ Create the configuration.
|
|
|
157
196
|
```
|
|
158
197
|
|
|
159
198
|
```js
|
|
160
|
-
//
|
|
199
|
+
// Ollama example with a custom model
|
|
161
200
|
{
|
|
162
201
|
"platforms": [
|
|
163
202
|
{
|
|
@@ -184,7 +223,6 @@ Create the configuration.
|
|
|
184
223
|
}
|
|
185
224
|
]
|
|
186
225
|
}
|
|
187
|
-
|
|
188
226
|
```
|
|
189
227
|
</details>
|
|
190
228
|
|
|
@@ -327,9 +365,7 @@ Files are loaded in the following order. Settings in later files override earlie
|
|
|
327
365
|
├── (4) config.local.json # Project-specific local configuration (including secrets)
|
|
328
366
|
├── prompts/ # Project-specific prompts
|
|
329
367
|
├── agents/ # Project-specific agent roles
|
|
330
|
-
|
|
331
|
-
├── sandbox/ # Sandbox runner scripts
|
|
332
|
-
└── tmp/ # Agent scratch space
|
|
368
|
+
└── sandbox/ # Sandbox runner scripts
|
|
333
369
|
```
|
|
334
370
|
|
|
335
371
|
### Example
|
|
@@ -914,6 +914,30 @@
|
|
|
914
914
|
}
|
|
915
915
|
},
|
|
916
916
|
|
|
917
|
+
{
|
|
918
|
+
"name": "gpt-oss-120b",
|
|
919
|
+
"variant": "fireworks",
|
|
920
|
+
"platform": {
|
|
921
|
+
"name": "openai-compatible",
|
|
922
|
+
"variant": "fireworks"
|
|
923
|
+
},
|
|
924
|
+
"model": {
|
|
925
|
+
"format": "openai-messages",
|
|
926
|
+
"config": {
|
|
927
|
+
"model": "accounts/fireworks/models/gpt-oss-120b"
|
|
928
|
+
}
|
|
929
|
+
},
|
|
930
|
+
"cost": {
|
|
931
|
+
"currency": "USD",
|
|
932
|
+
"unit": "1M",
|
|
933
|
+
"costs": {
|
|
934
|
+
"prompt_tokens": 0.15,
|
|
935
|
+
"prompt_tokens_details.cached_tokens": -0.14,
|
|
936
|
+
"completion_tokens": 0.6
|
|
937
|
+
}
|
|
938
|
+
}
|
|
939
|
+
},
|
|
940
|
+
|
|
917
941
|
{
|
|
918
942
|
"name": "glm-5",
|
|
919
943
|
"variant": "vertex-ai",
|