gemini-editor
exposes an alternative MCP tool to edit files using Gemini. This reduces burden on main model by not enforcing tight schemas and using a smaller editor model to apply the changes as described by the main model. Essentially following the very effective architect/editor structure from aider.
The built-in replace
tool in Gemini CLI is very strict and requires very specific input structure. This results in gemini model frequently stumbling with it. This is due to how LLMs are bad at strict schemas and too many tools which causes the performance to degrade very quickly.
- Simplified Change Description: We ask main model to instead just describe their changes however it makes sense to them. No tight schemas.
-
Delegated Execution: Uses a smaller "editor" model (
gemini-flash
) to interpret the description and apply code modifications. - Efficient (soon): Currently replaces the entire file. A granular search-and-replace feature is planned.
This uses the Gemini API to perform file edits. Before running, you must set the GEMINI_API_KEY
environment variable in your shell:
export GEMINI_API_KEY="YOUR_API_KEY"
To expose the gemini-editor
tool to Gemini CLI, you need to configure your settings. You can do this either globally or for a specific project.
Add the following to your global ~/.gemini/settings.json
file:
{
"mcpServers": {
"gemini-editor": {
"command": "npx",
"args": ["gemini-editor"]
}
},
"excludeTools": ["replace"]
}
In your project's root directory, create or open the .gemini/settings.json
file and add the following:
{
"mcpServers": {
"gemini-editor": {
"command": "npx",
"args": ["gemini-editor"]
}
},
"excludeTools": ["replace"]
}
After this, Gemini will be able to use the replace_file_contents
tool instead of the default built-in one.
- [] Search/Replace-based Edits
- [] Better Evals