A Rust GUI application that provides an interface to Google's Gemini AI, with support for text prompts and image inputs.
- Clean, intuitive GUI built with egui
- Text-based prompts to Gemini AI
- Image support (clipboard paste, screenshots, file paths)
- Markdown rendering for AI responses
- Cross-platform support
- Rust (latest stable version)
- A Google Gemini API key
- Visit Google AI Studio
- Create a new API key
- Copy the key for use in the next step
-
Clone the repository:
git clone https://github.com/isandrocks/GeminiOxide.git cd GeminiOxide -
Set up your
.envfile:# Create a .env file in the project root echo GEMINI_API_KEY=your-actual-api-key-here > .env
Or copy from the example:
cp .env.example .env # Edit .env and set GEMINI_API_KEY=your-actual-api-key-here -
Build the application:
cargo build --release
The API key from your
.envfile will be compiled into the binary. You only need to distribute the.exefile - no separate.envfile needed at runtime! -
Run the application:
cargo run --release # or run the executable directly from target/release/
- Text Prompts: Type your question or prompt in the text field and press Enter or click Generate
- Add Images: Click "Add Image" to access screenshot or clipboard paste options
- View Responses: AI responses are displayed with markdown formatting
🔒 Important Security Information
This application handles API keys and should be used securely:
- Keep your
.envfile withGEMINI_API_KEYin the project root during development - The API key is read from
.envat build time and embedded into your binary - NEVER commit your
.envfile to version control (it should be in.gitignore) - NEVER share your compiled
.exefile publicly - it contains your API key - Build separate binaries for different environments/users with their own API keys
- Rotate your API keys regularly
- Restrict API key usage in Google Cloud Console
- API key compiled into binary at build time (no runtime
.envfile needed) - Pre-commit hooks to prevent accidental secret commits
- Comprehensive security documentation
For detailed security guidelines, see SECURITY.md.
# Set up development environment
./scripts/dev.sh setup
# Run the application
./scripts/dev.sh run
# Run all development commands
./scripts/dev.sh helpcargo buildcargo test# Run comprehensive security audit
./scripts/security-audit.sh
# Check dependencies for vulnerabilities (requires cargo-audit)
cargo audit
# Search for potential secrets in code
git log -p | grep -i -E "(api.?key|secret|token|password)"- Fork the repository
- Create a feature branch
- Make your changes
- Ensure security guidelines are followed
- Submit a pull request
Please review SECURITY.md before contributing.
This project is licensed under the MIT License - see the LICENSE file for details.
"GEMINI_API_KEY environment variable not set"
- Ensure you've copied
.env.exampleto.env - Set your actual API key in the
.envfile - Restart the application
"Please set a valid GEMINI_API_KEY"
- Your API key may be invalid or placeholder text
- Verify your API key at Google AI Studio
- Check for any extra spaces or characters
Build errors on Windows
- Ensure you have the required build tools installed
- Some dependencies may require Visual Studio Build Tools