AMC-WebUI
面向 Gemini 的 Local-First AI 工作流 WebUI,集成多模态聊天、Canvas、文件处理、实时搜索、代码执行与高级推理。
A local first Gemini console with an OpenAI mode
AMC WebUI is a React based model console centered on Gemini native features, with an OpenAI compatible chat path and a local first storage model.
A local first Gemini console
AMC WebUI is an all in one model console web interface built on React 18 that centers on Google Gemini's native abilities while also offering an OpenAI compatible chat mode. The README states a local first principle: chat data is stored by default in the browser's IndexedDB, which keeps it on the device while still feeling responsive, and the project also supports a standalone backend deployment that hosts Gemini keys and proxies requests server side. The build centers on a Vite and React single page app as the main form, with a Docker deployment that runs a web plus API pair where normal Gemini requests go through one path, third party compatible requests through another, and the Live API through a WebSocket proxy. A third form puts the static frontend on a CDN while a Node API runs separately. The README announces a model migration: support for gemini-robotics-er-1.6-preview ended on a stated date and the built in model moved to gemini-robotics-er-2-preview, defined by a constant in the source. It also gives practical notes for robotics use, such as adding an API restriction to avoid a 403 and setting a medium thinking level for balanced latency, with high only for precise spatial tasks. Those details show the project tracks Gemini's changing model lineup closely rather than hiding it.
Native and OpenAI compatible modes
The interface exposes two API paths. The Gemini native mode is the primary ability path and covers Thinking, the Live API, the Gemini Files API, Deep Search, Google Search, code execution, and image generation, with the option to use the project's own Gemini proxy and server hosted keys. The OpenAI compatible mode is a separate path for standard chat that uses its own API key, base URL, and model list, posting to the chat completions endpoint, and it supports both normal and streaming responses while keeping system prompts and common parameters like temperature and top p. The README is careful to note the two modes do not overwrite each other: the keys are saved separately and the model lists are maintained independently, and the OpenAI compatible mode does not go through Gemini's native tool chain, so Gemini specific abilities still require the native mode. The base URL should be the interface root such as the OpenAI v1 address, and the app appends the chat completions path automatically. Enterprise style API management covers multi key rotation for both Gemini and OpenAI compatible keys, configuration isolation between the two modes, and a Gemini API proxy configured through the SDK's native base URL. This separation lets a team use Gemini's special features while keeping a standards based fallback for other models.
Productivity features
The feature set goes well past basic chat. Deep reasoning visualizes the chain of thought for Gemini 3.x models with a token budget or a reasoning level from minimal to high. The Live API gives two way real time audio and video with screen sharing and audio visualization. Live Artifacts render code blocks as interactive HTML previews and support Mermaid and Graphviz diagrams. File handling covers drag and drop of ZIP or folders to parse a codebase, plus images, PDFs, video, audio, and text, with a choice of the Files API or direct base64 and adjustable input detail. A local Python sandbox based on Pyodide runs in the browser with numpy, pandas, and matplotlib preloaded and on demand installs of scipy or scikit-learn, capturing charts automatically. There is text to speech in thirty voices and speech to text using several Gemini models, plus native image generation. Deep Search aggregates Google Search with citations, and URL context pulls page content into the chat. The interface ships in seven languages and follows the system setting. PWA support allows installing the app and opening its shell offline, while interface requests stay network first. A logs and usage page shows prices only when the stored fields are enough to compute them exactly, and multi tab sync uses BroadcastChannel with Web Locks API guarding IndexedDB writes. Together these features make the console a workspace rather than a single chat box.
Deployment
Deployment follows the three forms described in the README. For local development you run the Vite dev server or build the static output, which suits daily work and static hosting. The Docker form brings up a web service and an API service together, routing Gemini traffic, OpenAI compatible traffic, and the Live API WebSocket through distinct paths so a single container set can serve the whole interface. The static frontend plus standalone API form lets you put the built single page app on a Pages or CDN host while running the Node API on its own, which is useful when the frontend and backend have different scaling needs. The README also notes a migration announcement about a robotics model that was retired on a specific date, which is a reminder to keep the constants file current after pulling an update. The license badge in the README marks the project as MIT, and a continuous integration workflow runs on the main branch. Because chat data defaults to IndexedDB, a purely local install needs no server at all beyond the model provider, while the backend modes exist for teams that want to centralize keys or proxy requests. The combination of a standards based build, a container option, and a local first default covers solo use and small team hosting without a heavy operations burden.
Editorial conclusion
The interface is written in React and TypeScript, is published under the MIT license, and stores chat data locally in the browser by default.
Community notes