Skip to content

douglas-gibbons/redwood

Repository files navigation

🌲 Redwood

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.


✨ Features

  • 🖥️ Dual Interface: Choice between a sleek Flet GUI and a traditional terminal CLI.

Redwood GUI
The Redwood GUI

Redwood CLI
The Redwood 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.

🚀 Quick Start

1. Prerequisites

Ensure you have uv installed:

Mac Users:

brew install uv

Linux users:

curl -LsSf https://astral.sh/uv/install.sh | sh

2. Launching Redwood

You 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 web

This will start a local web server making the GUI accessible through your browser at localhost:8550.

3. Configuration

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.


🛠️ Included Tools

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").

💡 Pro Tips

Set Working Directory

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.

Visualizing Tools

The GUI features a dedicated pane to monitor MCP tool interactions in real-time, providing transparency into the agent's thought process.


🛠️ Development

Requirements

  • Python with uv (brew install uv)
  • make (brew install make)

Local Setup

git clone https://github.com/douglas-gibbons/redwood.git
cd redwood

Useful Commands

  • 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

🤝 Contributing

Contributions are welcome! Please feel free to submit a Pull Request or open an issue.

  1. Fork the repository.
  2. Create your feature branch (git checkout -b feature/amazing-feature).
  3. Commit your changes (git commit -m 'Add some amazing feature').
  4. 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.

About

Local user interface for Gemini

Topics

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors