Solving Gemini CLI write_file Not Found in OpenClaw: Two Fixes Required

A Reddit user posted a solution for a common issue when using OpenClaw with google-gemini-cli (Gemini CLI): agents cannot write files, reporting write_file not found or attempting default_api_write_file and getting "Tool not found. Did you mean: write_file, read_file, list_directory?". The root cause is twofold.
Root causes
- tools.profile defaults to
coding– this profile does not exposewrite_file. - OpenClaw spawns Gemini CLI as a headless subprocess without
--approval-mode auto_edit– without that flag,write_fileis not available in the tool list.
Fix steps
- Change the tools profile:
openclaw config set tools.profile full - Edit
~/.openclaw/openclaw.jsonand add thecliBackendsblock insideagents.defaults:
"cliBackends": { "google-gemini-cli": { "command": "/home/YOUR_USER/.npm-global/bin/gemini", "args": ["--approval-mode", "auto_edit"], "output": "json", "input": "arg" } } - Restart the gateway:
systemctl --user restart openclaw-gateway
The cliBackends key overrides how OpenClaw spawns the Gemini CLI process, injecting the required flag. Without it, the subprocess runs in default approval mode requiring interactive input, which silently removes the tool.
What doesn't work
- Creating
settings.jsonin the workspace withapprovalMode: auto_edit– OpenClaw doesn't pass the right working directory. - Setting
agents.defaults.sandbox.workspaceAccess: rw– that's OpenClaw's sandbox, unrelated to tool availability. - Injecting
GEMINI_CLI_ACTIVE_APPROVAL_MODEvia env – schema rejects it. - Modifying the gemini binary directly – works in isolation but OpenClaw may not use the same PATH.
Who it's for: Developers using OpenClaw with Gemini CLI who encounter missing file write tools during bootstrap or agent execution.
📖 Read the full source: r/openclaw
👀 See Also

Resolving Disconnection Issues in OpenClaw Control UI
Learn how to solve the 'Disconnected (1008): control ui requires HTTPS or localhost' error when using OpenClaw on a Hostinger VPS.

Claude for Motion Graphics: Prompt Patterns That Produce Animated HTML Visuals You Can Capture as Video
A r/ClaudeAI user shares a reliable prompt structure for generating animated motion graphics and interactive charts as HTML widgets from Claude, then capturing them as MP4 with Playwright + ffmpeg.

How to safely run llama.cpp native tools (exec_shell_command) with multi-sandboxing on Linux
A practical guide to enabling llama.cpp native tools, especially exec_shell_command, and running them inside multiple sandboxes (Firejail + tiny Alpine VM) for safe web fetching and command execution via the llama-server web UI.

CLAUDE.md Files Are Often Organized for Developers, Not AI Models – Here's Why That Matters
CLAUDE.md files commonly place Hard Rules at line 47, after background and tech stack. By the time the model reads constraints, it has already constructed conflicting assumptions. A better structure puts hard rules first.