You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: README.md
+3-2Lines changed: 3 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -125,8 +125,9 @@ Click **Agent** in the chat toolbar and pick a folder — that becomes the model
125
125
|`run_command`| Execute a shell command in the workspace (or a subfolder), with a 60s timeout |
126
126
127
127
**Safety model:**
128
-
- Every tool call is confined to the chosen workspace folder — path-traversal attempts (`../../etc`, absolute paths elsewhere on disk) are rejected before anything runs.
129
-
- Every call shows an **Allow / Deny** card before it executes — nothing runs without an explicit click. Read-only tools (`read_file`, `list_dir`, `search_files`) can be marked "always allow this session" to cut down on repetitive approvals; `write_file` and `run_command` always require a fresh click, since they have real, potentially irreversible effects.
128
+
-`read_file`, `write_file`, `list_dir`, and `search_files` are genuinely confined to the chosen workspace folder — path-traversal attempts (`../../etc`, absolute paths elsewhere on disk) are rejected before anything runs.
129
+
-`run_command` is different: a shell command is opaque text that can reference any path on the system regardless of its working directory, so it isn't sandboxed the way the file tools are. As a safety net, commands matching destructive or system-level patterns — deleting outside the workspace, formatting a drive, shutting down the machine, registry deletion, `sudo`/`runas`, piping a remote script into a shell — are **rejected outright**, even if already approved. This blocklist catches the common catastrophic cases, not everything a shell can do — only approve a command you actually understand.
130
+
- Every call (including ones the blocklist doesn't catch) shows an **Allow / Deny** card before it executes — nothing runs without an explicit click. Read-only tools (`read_file`, `list_dir`, `search_files`) can be marked "always allow this session" to cut down on repetitive approvals; `write_file` and `run_command` always require a fresh click, since they have real, potentially irreversible effects.
130
131
- A per-turn step limit (25 tool-result → model-continuation round trips) stops a model from looping indefinitely without producing a final answer.
131
132
- The trust list for "always allow" is in-memory only — closing and reopening a chat resets it.
"Execute a shell command in the workspace (or a subdirectory of it) and return its stdout/stderr/exit code. Use for builds, tests, git, npm, etc.",
59
+
"Execute a shell command in the workspace (or a subdirectory of it) and return its stdout/stderr/exit code. Use for builds, tests, git, npm, etc. Commands that could affect the system outside the workspace (deleting elsewhere, shutting down the machine, privilege escalation, etc.) are rejected.",
? "This command was blocked because it matches a pattern that could affect your whole system rather than just the workspace folder (e.g. deleting outside it, a system shutdown, or a privilege-escalation attempt)."
pullFromHuggingFace: "Pull this GGUF model directly from Hugging Face.",
127
127
pullExactTag: "Not in the catalog — pull this exact model tag from Ollama's library.",
128
128
agentMode: "Agent",
129
-
agentModeTooltip: "Agent mode: gives the model file tools (read/write/list/search) and shell command execution, scoped to a folder you choose. Every tool call needs your approval.",
129
+
agentModeTooltip: "Agent mode: gives the model file tools (read/write/list/search) and shell command execution, scoped to a folder you choose. Every tool call needs your approval, and destructive/system-level commands (deleting outside the workspace, shutdown, privilege escalation) are blocked outright — but this is a safety net, not a full OS sandbox. Only approve commands you understand.",
pullFromHuggingFace: "Bu GGUF modelini doğrudan Hugging Face'ten indir.",
243
243
pullExactTag: "Katalogda yok — bu tam model etiketini Ollama kütüphanesinden indirin.",
244
244
agentMode: "Ajan",
245
-
agentModeTooltip: "Ajan modu: modele seçtiğiniz bir klasörle sınırlı dosya araçları (okuma/yazma/listeleme/arama) ve kabuk komutu çalıştırma verir. Her araç çağrısı onayınızı gerektirir.",
245
+
agentModeTooltip: "Ajan modu: modele seçtiğiniz bir klasörle sınırlı dosya araçları (okuma/yazma/listeleme/arama) ve kabuk komutu çalıştırma verir. Her araç çağrısı onayınızı gerektirir ve yıkıcı/sistem düzeyindeki komutlar (çalışma alanı dışında silme, kapatma, yetki yükseltme) tamamen engellenir — ancak bu bir güvenlik ağıdır, tam bir işletim sistemi korumalı alanı değildir. Yalnızca anladığınız komutlara izin verin.",
0 commit comments