Summary
zeroclaw whilst daemon is active fails to file write. Fails with zeroclaw agent.
Affected component
runtime/daemon
Severity
S1- Workflow blocked.
Current behavior
Whilst messaged in discord, Zeroclaw states it is unable to file write, edit or delete files despite these present in allowed commands (autonomy is full). Fails in zeroclaw agent and specifies it is unable to undertake this process.
Expected behavior
Should be able to file edit, write, and delete.
Steps to reproduce
Using the following config
default_provider = "ollama"
default_model = "qwen3.5:9b"
default_temperature = 0.7
model_routes = []
embedding_routes = []
[model_providers]
[observability]
backend = "none"
runtime_trace_mode = "none"
runtime_trace_path = "state/runtime-trace.jsonl"
runtime_trace_max_entries = 200
[autonomy]
level = "full"
workspace_only = true
# Added PowerShell file manipulation commands
allowed_commands = [
"powershell",
"pwsh",
"cmd",
"python",
"python3",
"pip",
"git",
"dir",
"type",
"findstr",
"echo",
"cd",
"mkdir",
"copy",
"move",
"New-Item",
"Set-Content",
"Add-Content",
"Get-Content",
"Out-File",
"Write-Output",
"Select-String",
"Test-Path",
"Copy-Item",
"Move-Item",
"Rename-Item",
"Join-Path",
"Resolve-Path",
]
forbidden_paths = [
"C:\\Windows",
"C:\\Program Files",
"C:\\Program Files (x86)",
"C:\\Users\\Default",
"C:\\Users\\Public",
]
max_actions_per_hour = 20
max_cost_per_day_cents = 500
require_approval_for_medium_risk = true
block_high_risk_commands = true
shell_env_passthrough = []
auto_approve = [
"file_read",
"memory_recall",
"file_write",
"file_edit",
"shell",
"browser",
"http_request",
"web_search",
"web_fetch",
]
always_ask = ["file_delete", "file_remove", "Remove-Item", "del", "rm", "rmdir"]
allowed_roots = []
non_cli_excluded_tools = []
[security.sandbox]
backend = "auto"
firejail_args = []
[security.resources]
max_memory_mb = 512
max_cpu_time_seconds = 60
max_subprocesses = 10
memory_monitoring = true
[security.audit]
enabled = true
log_path = "audit.log"
max_size_mb = 100
sign_events = false
[security.otp]
enabled = false
method = "totp"
token_ttl_secs = 30
cache_valid_secs = 300
gated_actions = [
"shell",
"file_write",
"browser_open",
"browser",
"memory_forget",
]
gated_domains = []
gated_domain_categories = []
[security.estop]
enabled = false
state_file = "~/.zeroclaw/estop-state.json"
require_otp_to_resume = true
[runtime]
kind = "native"
[runtime.docker]
image = "alpine:3.20"
network = "none"
memory_limit_mb = 512
cpu_limit = 1.0
read_only_rootfs = true
mount_workspace = true
allowed_workspace_roots = []
[reliability]
provider_retries = 2
provider_backoff_ms = 500
fallback_providers = []
api_keys = []
channel_initial_backoff_secs = 2
channel_max_backoff_secs = 60
scheduler_poll_secs = 15
scheduler_retries = 2
[reliability.model_fallbacks]
[scheduler]
enabled = true
max_tasks = 64
max_concurrent = 4
[agent]
compact_context = false
max_tool_iterations = 10
max_history_messages = 50
parallel_tools = false
tool_dispatcher = "native"
[skills]
open_skills_enabled = true
prompt_injection_mode = "full"
[query_classification]
enabled = false
rules = []
[heartbeat]
enabled = false
interval_minutes = 30
[cron]
enabled = true
max_run_history = 50
[channels_config]
cli = true
message_timeout_secs = 300
[channels_config.discord]
bot_token = "x"
allowed_users = ["x"]
listen_to_bots = false
mention_only = false
[memory]
backend = "sqlite"
auto_save = true
hygiene_enabled = true
archive_after_days = 7
purge_after_days = 30
conversation_retention_days = 30
embedding_provider = "none"
embedding_model = "text-embedding-3-small"
embedding_dimensions = 1536
vector_weight = 0.7
keyword_weight = 0.3
min_relevance_score = 0.4
embedding_cache_size = 10000
chunk_max_tokens = 512
response_cache_enabled = false
response_cache_ttl_minutes = 60
response_cache_max_entries = 5000
snapshot_enabled = false
snapshot_on_hygiene = false
auto_hydrate = true
[memory.qdrant]
collection = "zeroclaw_memories"
[storage.provider.config]
provider = ""
schema = "public"
table = "memories"
[tunnel]
provider = "none"
[gateway]
port = 42617
host = "127.0.0.1"
require_pairing = true
allow_public_bind = false
paired_tokens = []
pair_rate_limit_per_minute = 10
webhook_rate_limit_per_minute = 60
trust_forwarded_headers = false
rate_limit_max_keys = 10000
idempotency_ttl_secs = 300
idempotency_max_keys = 10000
[composio]
enabled = false
entity_id = "default"
[secrets]
encrypt = false
[browser]
enabled = true
allowed_domains = ["*"]
backend = "agent_browser"
native_headless = true
native_webdriver_url = "http://127.0.0.1:9515 "
[browser.computer_use]
endpoint = "http://127.0.0.1:8787/v1/actions "
timeout_ms = 15000
allow_remote_endpoint = false
window_allowlist = []
[http_request]
enabled = true
allowed_domains = ["*"]
max_response_size = 1000000
timeout_secs = 30
[multimodal]
max_images = 4
max_image_size_mb = 5
allow_remote_fetch = false
[web_fetch]
enabled = true
allowed_domains = ["*"]
blocked_domains = []
max_response_size = 500000
timeout_secs = 30
[web_search]
enabled = true
provider = "duckduckgo"
max_results = 5
timeout_secs = 15
[proxy]
enabled = false
no_proxy = []
scope = "zeroclaw"
services = []
[identity]
format = "openclaw"
[cost]
enabled = false
daily_limit_usd = 10.0
monthly_limit_usd = 100.0
warn_at_percent = 80
allow_override = false
[cost.prices."openai/o1-preview"]
input = 15.0
output = 60.0
[cost.prices."google/gemini-2.0-flash"]
input = 0.1
output = 0.4
[cost.prices."anthropic/claude-3-haiku"]
input = 0.25
output = 1.25
[cost.prices."anthropic/claude-3.5-sonnet"]
input = 3.0
output = 15.0
[cost.prices."openai/gpt-4o-mini"]
input = 0.15
output = 0.6
[cost.prices."google/gemini-1.5-pro"]
input = 1.25
output = 5.0
[cost.prices."anthropic/claude-sonnet-4-20250514"]
input = 3.0
output = 15.0
[cost.prices."openai/gpt-4o"]
input = 5.0
output = 15.0
[cost.prices."anthropic/claude-opus-4-20250514"]
input = 15.0
output = 75.0
[peripherals]
enabled = false
boards = []
[agents]
[hooks]
enabled = true
[hooks.builtin]
command_logger = false
[hardware]
enabled = false
transport = "None"
baud_rate = 115200
workspace_datasheets = false
[transcription]
enabled = false
api_url = "https://api.groq.com/openai/v1/audio/transcriptions "
model = "whisper-large-v3-turbo"
max_duration_secs = 120
Impact
Discord integrated users.
Logs / stack traces
PS C:\WINDOWS\system32> zeroclaw agent -m "create a text file in your directory called test.txt"
←[2m2026-03-05T09:36:40.775730900+11:00←[0m ←[32m INFO←[0m ←[2mzeroclaw::config::schema←[0m←[2m:←[0m Config loaded ←[3mpath←[0m←[2m=←[0mC:\Users\x\.zeroclaw\config.toml ←[3mworkspace←[0m←[2m=←[0mC:\Users\x\.zeroclaw\workspace ←[3msource←[0m←[2m=←[0m"default" ←[3minitialized←[0m←[2m=←[0mfalse
←[2m2026-03-05T09:36:40.786914100+11:00←[0m ←[32m INFO←[0m ←[2mzeroclaw::agent::loop_←[0m←[2m:←[0m Memory initialized ←[3mbackend←[0m←[2m=←[0m"sqlite"
←[2m2026-03-05T09:36:40.809404800+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\bulk-github-star: SKILL.md: markdown link escapes skill root (../random-contributor/SKILL.md).; SKILL.md: markdown link escapes skill root (../file-tracker/SKILL.md).
←[2m2026-03-05T09:36:40.819121700+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\chat-logger: SKILL.md: markdown link escapes skill root (../file-tracker/SKILL.md).; SKILL.md: markdown link escapes skill root (../web-search-api/SKILL.md).
←[2m2026-03-05T09:36:40.823028900+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\database-query-and-export: SKILL.md: markdown link escapes skill root (../json-and-csv-data-transformation/SKILL.md).; SKILL.md: markdown link escapes skill root (../file-tracker/SKILL.md).; SKILL.md: markdown link escapes skill root (../chat-logger/SKILL.md).
←[2m2026-03-05T09:36:40.823661700+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\file-tracker: SKILL.md: markdown link escapes skill root (../chat-logger/SKILL.md).
←[2m2026-03-05T09:36:40.824515600+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\free-geocoding-and-maps: SKILL.md: markdown link escapes skill root (../city-distance/SKILL.md).; SKILL.md: markdown link escapes skill root (../free-weather-data/SKILL.md).; SKILL.md: markdown link escapes skill root (../json-and-csv-data-transformation/SKILL.md).
←[2m2026-03-05T09:36:40.825266600+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\free-translation-api: SKILL.md: markdown link escapes skill root (../web-search-api/SKILL.md).; SKILL.md: markdown link escapes skill root (../send-email-programmatically/SKILL.md).; SKILL.md: markdown link escapes skill root (../json-and-csv-data-transformation/SKILL.md).
←[2m2026-03-05T09:36:40.826319+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\free-weather-data: SKILL.md: markdown link escapes skill root (../free-geocoding-and-maps/SKILL.md).; SKILL.md: markdown link escapes skill root (../send-email-programmatically/SKILL.md).; SKILL.md: markdown link escapes skill root (../using-telegram-bot/SKILL.md).
←[2m2026-03-05T09:36:40.828573100+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\humanizer: SKILL.md: markdown link escapes skill root (../web-interface-guidelines-review/SKILL.md).; SKILL.md: markdown link escapes skill root (../json-and-csv-data-transformation/SKILL.md).
←[2m2026-03-05T09:36:40.829797500+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\json-and-csv-data-transformation: SKILL.md: markdown link escapes skill root (../database-query-and-export/SKILL.md).; SKILL.md: markdown link escapes skill root (../web-search-api/SKILL.md).; SKILL.md: markdown link escapes skill root (../using-web-scraping/SKILL.md).
←[2m2026-03-05T09:36:40.832247400+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\phone-specs-scraper: SKILL.md: markdown link escapes skill root (../using-web-scraping/SKILL.md).; SKILL.md: markdown link escapes skill root (../web-search-api/SKILL.md).
←[2m2026-03-05T09:36:40.832918100+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\presenton: SKILL.md: markdown link escapes skill root (../browser-automation-agent/SKILL.md).; SKILL.md: markdown link escapes skill root (../pdf-manipulation/SKILL.md).; SKILL.md: markdown link escapes skill root (../static-assets-hosting/SKILL.md).
←[2m2026-03-05T09:36:40.834114300+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\send-email-programmatically: SKILL.md: markdown link escapes skill root (../using-telegram-bot/SKILL.md).; SKILL.md: markdown link escapes skill root (../nostr-logging-system/SKILL.md).
←[2m2026-03-05T09:36:40.837031300+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\static-assets-hosting: SKILL.md: markdown link escapes skill root (../anonymous-file-upload/SKILL.md).
←[2m2026-03-05T09:36:40.838098300+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\user-ask-for-report: SKILL.md: detected high-risk command pattern (phishing-credential-harvest).
←[2m2026-03-05T09:36:40.839356+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\using-scrapy: SKILL.md: markdown link escapes skill root (../using-web-scraping/SKILL.md).; SKILL.md: markdown link escapes skill root (../phone-specs-scraper/SKILL.md).; SKILL.md: markdown link escapes skill root (../web-search-api/SKILL.md).
←[2m2026-03-05T09:36:40.841359300+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\open-skills\skills\web-interface-guidelines-review: SKILL.md: markdown link escapes skill root (../using-web-scraping/SKILL.md).; SKILL.md: markdown link escapes skill root (../city-tourism-website-builder/SKILL.md).
←[2m2026-03-05T09:36:40.850209400+11:00←[0m ←[33m WARN←[0m ←[2mzeroclaw::skills←[0m←[2m:←[0m skipping insecure skill directory C:\Users\x\.zeroclaw\workspace\skills\self-improving-agent: .git\hooks\applypatch-msg.sample: script-like files are blocked by skill security policy.; .git\hooks\commit-msg.sample: script-like files are blocked by skill security policy.; .git\hooks\post-update.sample: script-like files are blocked by skill security policy.; .git\hooks\pre-applypatch.sample: script-like files are blocked by skill security policy.; .git\hooks\pre-commit.sample: script-like files are blocked by skill security policy.; .git\hooks\pre-merge-commit.sample: script-like files are blocked by skill security policy.; .git\hooks\pre-push.sample: script-like files are blocked by skill security policy.; .git\hooks\pre-rebase.sample: script-like files are blocked by skill security policy.; .git\hooks\pre-receive.sample: script-like files are blocked by skill security policy.; .git\hooks\prepare-commit-msg.sample: script-like files are blocked by skill security policy.; .git\hooks\push-to-checkout.sample: script-like files are blocked by skill security policy.; .git\hooks\sendemail-validate.sample: script-like files are blocked by skill security policy.; .git\hooks\update.sample: script-like files are blocked by skill security policy.; scripts\activator.sh: script-like files are blocked by skill security policy.; scripts\error-detector.sh: script-like files are blocked by skill security policy.; scripts\extract-skill.sh: script-like files are blocked by skill security policy.
I apologize, but I don't have access to a file creation tool in my current set of available functions. The tools I can use are primarily for:
- Web browsing and fetching (web_fetch, http_request)
- File reading (pdf_read, docx_read, pptx_read, xlsx_read)
- Image operations (screenshot, image_info)
- Background task management (bg_run, bg_status)
- Browser automation (browser_action)
- Web searches (web_search_tool)
Unfortunately, there's no write_file or file_create tool available to me. If you need to create a text file with "hello" in it, you might be able to:
1. Use a terminal/command line tool directly
2. Upload the file if you have access to one already created
3. Check if there's another way your system handles file creation
ZeroClaw version
v0.1.7
Rust version
cargo 1.93.1 rustc 1.93.1
Operating system
Windows 11
Regression?
No, first-time setup
Pre-flight checks
Summary
zeroclaw whilst daemon is active fails to file write. Fails with zeroclaw agent.
Affected component
runtime/daemon
Severity
S1- Workflow blocked.
Current behavior
Whilst messaged in discord, Zeroclaw states it is unable to file write, edit or delete files despite these present in allowed commands (autonomy is full). Fails in zeroclaw agent and specifies it is unable to undertake this process.
Expected behavior
Should be able to file edit, write, and delete.
Steps to reproduce
Impact
Discord integrated users.
Logs / stack traces
ZeroClaw version
v0.1.7
Rust version
cargo 1.93.1 rustc 1.93.1
Operating system
Windows 11
Regression?
No, first-time setup
Pre-flight checks