
Y Gui
A web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
what is Y Gui?
Y Gui is a web-based graphical interface designed for AI chat interactions, supporting multiple AI models and Model Context Protocol (MCP) servers.
how to use Y Gui?
To use Y Gui, clone the repository from GitHub, install the necessary dependencies, configure environment variables, and start the development server.
key features of Y Gui?
- Interactive chat interface with AI models
- Support for multiple bot configurations
- MCP client support with various server configurations
- Secure authentication with Auth0 and Google login
- Dark/light theme support
- Real-time updates and responsive design
use cases of Y Gui?
- Building custom AI chatbots for various applications.
- Integrating multiple AI models for enhanced user interactions.
- Developing a secure chat application with user authentication.
FAQ from Y Gui?
- Can I use my own AI models with Y Gui?
Yes! Y Gui supports multiple bot configurations allowing you to use any base_url/api_key/model combination.
- Is Y Gui free to use?
Yes! Y Gui is open-source and free to use.
- What technologies are used in Y Gui?
Y Gui is built with React, TypeScript, and Cloudflare Workers.
y-gui 🚀
A web-based graphical interface for AI chat interactions with support for multiple AI models and MCP (Model Context Protocol) servers.
✨ Features
- 💬 Interactive chat interface with AI models
- 🤖 Support for multiple bot configurations (any base_url/api_key/model combination)
- 🔗 MCP (Model Context Protocol) client support with multiple server configurations
- 🔒 Secure authentication with Auth0 and Google login
- 🌓 Dark/light theme support
- 📝 All chat data stored in Cloudflare KV/R2 for easy access and sync
- 🔄 Real-time updates with SWR
- 📱 Responsive design for all devices
Demo
Architecture
y-gui consists of two main components:
- Frontend: React application with TypeScript, Tailwind CSS, and SWR for data fetching
- Backend: Cloudflare Workers with KV and R2 storage
flowchart TD
Client[React Client] --> Worker[Cloudflare Worker]
Worker --> KV[Cloudflare KV]
Worker --> R2[Cloudflare R2]
Worker --> AI[AI Providers]
subgraph "Frontend"
Client --> Components[React Components]
Components --> State[SWR State]
State --> API[API Layer]
end
subgraph "Backend"
Worker --> Auth[Auth Middleware]
Worker --> Storage[Storage Layer]
Worker --> Provider[Provider Layer]
end
⚡ Quick Start
Prerequisites
- Node.js and npm
- Cloudflare account
- Auth0 account
- API keys for AI providers
Installation
-
Clone the repository:
git clone https://github.com/yourusername/y-gui.git cd y-gui
-
Install dependencies:
npm install
-
Configure environment variables:
- Create a
.env
file in the frontend directory with Auth0 configuration - Configure Cloudflare Worker settings in
wrangler.toml
- Create a
-
Start the development server:
npm run dev
🛠️ Development
Project Structure
y-gui/
├── frontend/ # React frontend application
│ ├── src/
│ │ ├── components/ # React components
│ │ ├── contexts/ # React contexts
│ │ ├── utils/ # Utility functions
│ │ └── index.tsx # Entry point
├── backend/ # Cloudflare Worker backend
│ ├── src/
│ │ ├── api/ # API endpoints
│ │ ├── middleware/ # Middleware
│ │ ├── repository/ # Data access
│ │ └── index.ts # Worker entry
├── shared/ # Shared code between frontend and backend
│ └── types/ # TypeScript type definitions
└── memory-bank/ # Project documentation
Available Scripts
npm run dev
: Start both frontend and backend development serversnpm run dev:frontend
: Start only the frontend development servernpm run dev:backend
: Start only the backend development servernpm run build
: Build both frontend and backendnpm run deploy
: Deploy the backend to Cloudflare Workersnpm run test
: Run tests
🔒 Authentication
y-gui uses Auth0 for authentication with the following features:
- Universal Login
- Google social login
- Token-based session management
- Secure API access
🤖 Bot Configuration
y-gui supports multiple bot configurations with the following properties:
- Name
- Model
- Base URL
- API Key
- Print Speed
- MCP Servers
- API Type
- Custom API Path
- Max Tokens
- Reasoning Effort
🔗 MCP Server Configuration
MCP (Model Context Protocol) servers can be configured with:
- Name
- Command
- Arguments
- Environment Variables
- URL
- Token
🌐 API Endpoints
The backend provides RESTful API endpoints for:
- Chat operations
- Bot configuration management
- MCP server configuration management
- Authentication
🔄 Data Storage
- Chat data is stored in Cloudflare KV
- Backup data is stored in Cloudflare R2
- Bot and MCP server configurations are stored in Cloudflare R2
🧩 Technologies Used
- Frontend: React, TypeScript, Tailwind CSS, SWR, Auth0
- Backend: Cloudflare Workers, KV, R2
- Build Tools: Vite, Wrangler, TypeScript
📚 Documentation
For more detailed documentation, see the memory-bank directory.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
📄 License
This project is licensed under the MIT License - see the LICENSE file for details.