- Python 71.6%
- JavaScript 20%
- HTML 4.2%
- CSS 2.4%
- Shell 1.6%
- Other 0.2%
|
Some checks failed
Updates/Gemini WebUI/pipeline/head There was a failure building this commit
|
||
|---|---|---|
| .gemini | ||
| .github/workflows | ||
| docs | ||
| jenkins | ||
| node_modules | ||
| plans | ||
| public/qa-screenshots | ||
| scripts | ||
| src | ||
| tests | ||
| .dockerignore | ||
| .gitignore | ||
| .pre-commit-config.yaml | ||
| .stylelintrc.json | ||
| docker-compose.yml | ||
| Dockerfile | ||
| eslint.config.mjs | ||
| fix.py | ||
| fix_test.py | ||
| Jenkinsfile | ||
| package-lock.json | ||
| package.json | ||
| pytest.ini | ||
| README.md | ||
| replace.py | ||
| requirements-test.txt | ||
| requirements.txt | ||
| run_test.py | ||
| run_test2.py | ||
| run_test_flash.py | ||
| setup_dev.sh | ||
| terminal_before_typing.png | ||
| test_temp.txt | ||
| update_app.py | ||
| update_app2.py | ||
| update_buffer.py | ||
| update_modifier.py | ||
| VERSION | ||
Gemini WebUI
The ultimate management interface for your Gemini AI, built for mobility and persistence.
Gemini WebUI provides a high-fidelity, persistent web interface for the Gemini CLI. Whether you are monitoring complex projects, executing long-running AI tasks, or interacting with remote host machines, Gemini WebUI delivers a seamless experience across all your devices.
🚀 Key Features
-
Multi-Environment Management Manage multiple Gemini CLI instances across various computers, projects, and workspaces from a single, unified dashboard.
-
Mobile-First Design Experience a fully responsive UI equipped with mobile-friendly controls, enabling full Gemini CLI functionality on the go. Upload mobile screenshots from your phone, and describe problems using your mic to communicate naturally with the Gemini CLI.
-
Session Persistence True cross-device persistence allows you to resume live sessions from your desktop directly on your phone or tablet without losing valuable context.
-
Seamless File Management Upload files directly through the UI via intuitive drag-and-drop or dedicated buttons, making your data immediately available to the AI.
- Smart Bulk Uploads: Dropping multiple files or a directory automatically groups them into a
upload-<timestamp>folder, preserving their nested structure. - Terminal Auto-Injection: File paths are automatically injected into your active terminal prompt (e.g.,
> I uploaded @filename.txtor> I uploaded multiple files to @upload-1701234567/) so the AI knows exactly where to look.
- Smart Bulk Uploads: Dropping multiple files or a directory automatically groups them into a
-
Share Terminal Sessions Easily export and share your terminal scrollback as a responsive, public HTML snapshot with a simple click. Review the data, confirm, and receive an instant, unauthenticated link to share context, bugs, or solutions with others.
-
Scoped Environments Robust support for scoped development or per-app system administrator setups, ensuring secure and isolated AI environments tailored to your needs.
-
Easy Deployment Experience a frictionless quick start and simple installation process leveraging Docker and Docker Compose.
💡 Example Use Cases
- PDF Form Generation: Upload a standard PDF document and ask Gemini to convert it into a fillable form.
- Mobile Development Management: Manage multiple software development chains, CI/CD pipelines, and remote deployments entirely from your phone.
- Cross-Device Continuity: Start a complex debugging or planning session on your desktop and seamlessly continue the exact same session on your phone or laptop while away from your desk.
- Orchestrate Specialized AI Environments: The "+New" screen provides a launchpad of environment cards. With a single tap, you can spin up and converse with dedicated, per-app Gemini instances—effectively granting you a menu of per-app system administrators to independently manage and scale your various projects and infrastructures.
🏗 Architecture Overview
The system is designed with real-time communication and persistence at its core:
graph TD
User([User Device]) -- WebSockets --> App[Flask SessionManager]
App -- PTY + Buffer --> Local[Local Gemini CLI]
App -- SSH Tunnel --> Remote[Remote Host]
subgraph Backend Persistence
App -- Registry --> Sessions[(Active Registry)]
end
🛠 Configuration Guide
Gemini WebUI is highly customizable to fit both stand-alone and enterprise environments.
Authentication Modes
- LDAP (Enterprise): If
LDAP_SERVERis configured, it becomes the exclusive authentication method, perfect for corporate networks. - Local Admin (Stand-alone): If LDAP is not configured, the application falls back to local authentication using
ADMIN_USERandADMIN_PASS(both default toadmin).
Environment Variables
| Variable | Description | Default |
|---|---|---|
LDAP_SERVER |
Address of the LDAP/AD server | - |
LDAP_BASE_DN |
Base DN for user searches | - |
LDAP_BIND_USER_DN |
Service account for LDAP lookups | - |
LDAP_BIND_PASS |
Password for the service account | - |
ADMIN_USER |
Local admin username | admin |
ADMIN_PASS |
Local admin password | admin |
ALLOWED_ORIGINS |
CORS whitelist (comma-separated) | * |
GEMINI_BIN |
Path to the Gemini executable | gemini |
Volumes
data:/data: Persists application configuration, SSH keys, and CLI state (linked internally to/home/node/.gemini).
🚀 Quick Start & Easy Deployment
Deploying Gemini WebUI is designed to be as straightforward as possible. Build and launch the container with a single command:
docker compose up --build --force-recreate -d
Once the container is running, access the interface by navigating to http://localhost:5000 in your web browser.


