Redwood is a powerful, highly-configurable CLI and GUI client for Google's Gemini models, built with a focus on transparency and user control. It integrates deeply with the Model Context Protocol (MCP) to extend its capabilities with custom tools and data sources.
- 🖥️ Dual Interface: Choice between a sleek Flet GUI and a traditional terminal CLI.
- 🛠️ MCP Native: Seamlessly use MCP tools for tasks like web scraping, file management, and more.
- 🎨 Image Generation: Built-in support for image generation models via MCP.
- 🧠 Full Prompt Control: Complete control over the system prompt via a single configuration file.
- 📝 Skills Integration: Ability to read and utilize specialized agent skills.
- 🗄️ Persistent Storage: Integrated database for storing user-defined data and lists.
Ensure you have uv installed:
Mac Users:
brew install uvLinux users:
curl -LsSf https://astral.sh/uv/install.sh | shYou can run Redwood directly without cloning the repository:
Run the GUI:
uvx --from git+https://github.com/douglas-gibbons/redwood gui...or run the CLI:
uvx --from git+https://github.com/douglas-gibbons/redwood cli...or run the Web GUI:
uvx --from git+https://github.com/douglas-gibbons/redwood webThis will start a local web server making the GUI accessible through your browser at localhost:8550.
On the first run, Redwood creates a configuration file at ~/.config/redwood/redwood.yaml and prompts you for a Gemini API key which it adds to the file.
You can configure any aspect of Redwood in this file, or ask Gemini (through Redwood) to do it for you.
Redwood comes bundled with several core MCP capabilities:
- Image Generation: Saves generated images to a local directory for easy access.
- Agent: A sub-agent tool allowing for parallel task management.
- General Utilities:
- Time: Provides current date and time context.
- Shell: Securely run local commands.
- Web Scraper: Extract content from the web.
- Skills Reader: Loads markdown-based skills for specific workflows.
- Database: A simple key-value store. You can prompt the model to use this for persistent lists (e.g., "Add milk to my shopping list").
The model doesn't automatically know your current directory. Use the /location command in the CLI to set your working directory. This injects the current path into the prompt, enabling relative file operations.
The GUI features a dedicated pane to monitor MCP tool interactions in real-time, providing transparency into the agent's thought process.
- Python with
uv(brew install uv) make(brew install make)
git clone https://github.com/douglas-gibbons/redwood.git
cd redwood- Run CLI:
make cli - Run GUI:
make gui - Run Web GUI:
make web - Run Server:
make server - Run Tests:
make test - Inspect MCP:
npx @modelcontextprotocol/inspector make server
Contributions are welcome! Please feel free to submit a Pull Request or open an issue.
- Fork the repository.
- Create your feature branch (
git checkout -b feature/amazing-feature). - Commit your changes (
git commit -m 'Add some amazing feature'). - Open a Pull Request.
Created by Douglas Gibbons
Disclaimer: This is not an official Google project. It is an open-source project maintained by Douglas Gibbons.

