2026-07-31 19:30:01 +08:00
2026-05-31 22:45:33 +01:00
2026-05-31 22:45:33 +01:00
2026-07-10 17:29:30 +08:00
2026-05-31 23:10:33 +01:00
2026-05-31 22:45:33 +01:00
2026-05-31 22:45:33 +01:00
2026-05-31 22:45:33 +01:00
2026-05-31 22:45:33 +01:00

🌐 EvoScientist WebUI

The desktop-level browser workspace for EvoScientist, designed to make Vibe Research feel natural. By bringing evolving memory, research skills, multi-agent workflows, and workspace management together in one place, it helps researchers spend less time managing information and more time exploring ideas — so scientific discovery can move faster.

npm Powered by EvoScientist Next.js 16 License Apache 2.0


Tip

Looking for the engine behind this UI? Check out EvoScientist — the multi-agent AI scientist — and EvoSkills, its ready-to-use research skill packs. This WebUI is a thin, zero-touch client: it talks to a running EvoScientist deployment over the LangGraph SDK and adds nothing to your backend.

✨ Features

  • 💬 Streaming Chat — Real-time responses with Markdown, GFM tables, math (KaTeX), code highlighting, zoomable Mermaid diagrams, and collapsible thinking/reasoning blocks.
  • 🧬 Per-Thread Model Picker — Switch models per conversation with the /model command or a clickable model pill; the choice is persisted to the thread and folded into the next run.
  • 👋 Human-in-the-Loop — Approve / reject / edit tool calls, and answer the agent's structured questions (text + multiple-choice) inline.
  • ⚡ Per-Thread Auto-Approve — Persisted per conversation; survives view and thread switches and reloads.
  • ⌨️ Message Queue — Type while the agent is busy: queue, edit, reorder, steer, or drain follow-up messages without interrupting the active run.
  • 🤖 Sub-Agent Activity — Live step tracking for sub-agents, rendered exactly like the main agent (tool calls + paired results + tables).
  • 🗂️ Workspace Browser — Tree and by-type (Papers / Figures / Data / Code) views with preview, edit, download, and zip-all.
  • 🔗 Click-to-Open File Links — File paths in agent output are clickable — open them straight from chat in a workspace or memory viewer.
  • 🧠 EvoMemory Browser — EvoScientist's global cross-session memory across three tabs: Identity (editable profile files), Knowledge (an interactive force-directed observation graph), and History (execution + observation timeline).
  • ⏰ Scheduled Tasks — Schedule recurring research runs (daily / weekly / monthly / custom cron) with a visual builder, templates, and Run-now — backed by LangGraph crons.
  • 📊 Research Dashboard — The chat's empty state surfaces recent memory activity, scheduled tasks, threads, and files, with one-click jump-in.
  • 🔌 Skills Marketplace — Install, update, and uninstall the official EvoSkills catalog with version detection and a detail dialog.
  • 📡 Agents Monitor Board — Watch async background agents (writing / data-analysis) with real run status, live duration, and a side-chat for direct worker debugging.
  • 🔁 Async Agent Communication — Optional per-thread auto-report loops finished background results back to the main agent.
  • 🪄 Compaction Summary — When the backend compacts a long conversation, the summary is shown as a clean collapsible block instead of flashing by.
  • 🩺 Connection Health & Resilience — Health light, stale-URL one-click reconnect, and refresh-resumable streams.
  • 🎨 Themed & Responsive — Light/dark warm "paper" theme with EvoScientist cyan accent; desktop split panes and mobile drawers.

📖 Table of Contents

📦 Prerequisites

  • EvoScientist installed and configured (EvoSci onboard).
  • Node.js 20+ — the WebUI mode launches the front-end for you.

⚡ Quick Start

The WebUI ships with EvoScientist — just pick it during setup. Run the onboarding wizard and choose WebUI as your UI mode:

EvoSci onboard        # select "WebUI" when asked for the UI mode

Then launch EvoScientist as usual — it starts the backend and the WebUI together and opens your browser:

EvoSci                # opens http://localhost:4716

That's it — start chatting.

Option B — standalone

Start the EvoScientist backend in one terminal:

EvoSci deploy         # serves the LangGraph API at http://127.0.0.1:6174

Then launch the WebUI in another (no install required):

npx @evoscientist/webui@latest                  # opens http://localhost:4716
npx @evoscientist/webui@latest --port 5000      # or pick a custom front-end port

Open the URL, confirm the prefilled Deployment URL (auto-detected, default http://127.0.0.1:6174), click Save, and start chatting.

Local standalone processes also share token statistics automatically when they run as the same OS user. EvoSci deploy writes the private usage identity and sink token under ~/.evoscientist; the WebUI reads the same files, including when it was started first. Keep the WebUI on the configured webui_port (default 4716), or set it with EvoSci config set webui_port <port>.

🔝Back to top

🔑 Configuration

  • Deployment URL — the EvoScientist LangGraph endpoint (default http://127.0.0.1:6174, the EvoSci deploy default port). Saved in your browser's local storage.
  • Model providers — manage built-in and custom provider connections, API keys, and model catalogs in providers.yaml. Existing config.yaml provider fields remain a legacy fallback and are migrated per provider on first save. The editor requires WebUI authentication, including on localhost. API keys are never returned to the browser: it receives only configured/redacted status and supports explicit replacement or clearing. Use the star action in the chat model picker to persist the default provider/model pointer in ~/.config/evoscientist/config.yaml.
  • The UI always talks to the EvoScientist main agent; its sub-agents (writing-agent, data-analysis-agent) are internal and not user-selectable.
  • (Optional, advanced) Set NEXT_PUBLIC_LANGSMITH_API_KEY if you connect to a deployment that requires LangSmith authentication.

Integrated EvoSci WebUI mode configures provider-management authentication automatically. Standalone local processes running as the same OS user share ~/.config/evoscientist/provider-admin-token automatically. For a remote WebUI, set EVOSCIENTIST_BACKEND_URL on the WebUI server and configure the same EVOSCIENTIST_PROVIDER_ADMIN_TOKEN on both processes when they do not share that filesystem and user account.

Choose the adapter that matches the endpoint protocol: OpenAI/OpenAI compatible/Grok/Antigravity/OpenRouter/NVIDIA use OpenAI-style model listing, Anthropic uses Claude's native model API, Google GenAI uses Gemini's native model API, and Ollama uses /api/tags. Grok defaults to https://api.x.ai/v1; Antigravity is treated as a separately named OpenAI-compatible proxy and therefore requires its gateway Base URL. If an Antigravity gateway exposes an Anthropic-compatible endpoint instead, select Anthropic compatible for that profile.

Tip

If the backend changes ports, the health light detects the dead connection and offers a one-click Reconnect to the newly detected port.

🔝Back to top

🔐 Single-User Authentication

The WebUI can protect every page and API with one locally configured account. Copy .env.example to .env, choose a username and a long unique password, and generate the signing secret with openssl rand -hex 32:

WEBUI_AUTH_ENABLED=true
WEBUI_AUTH_USERNAME=admin
WEBUI_AUTH_PASSWORD=replace-with-a-long-unique-password
WEBUI_AUTH_SECRET=replace-with-at-least-32-random-characters
WEBUI_AUTH_SESSION_TTL_HOURS=12

.env is ignored by Git and is read only by the server. When authentication is enabled, incomplete credentials fail closed. Successful logins create an HTTP-only signed session cookie and update the most recent login timestamp and counter in ~/.evoscientist/webui-auth.json (or $EVOSCIENTIST_DATA_DIR/webui-auth.json when that directory is configured). Use the key icon in the top bar to change the password. It requires the current password, updates the local .env, rotates the session signing key, and signs out all other sessions. Use the sign-out icon to end the current session.

🔝Back to top

🎨 Designed By

Xi Zhang
Xi Zhang

🔝Back to top

🤝 Contributing

We welcome contributions! See the Contributing Guidelines for development setup, project structure, the zero-touch-backend principle, scripts, and the release flow.

Every contribution brings us one step closer to a future where AI accelerates scientific breakthroughs for all of humanity.

🔝Back to top

📚 Acknowledgments

This project builds upon the following outstanding open-source work:

  • LangGraph — A low-level orchestration framework for building, managing, and deploying long-running, stateful agents.
  • deep-agents-ui — The LangChain reference UI for deep agents, which this project builds upon.

We thank the authors for their valuable contributions to the open-source community.

🔝Back to top

📜 License

This project is licensed under the Apache License 2.0 - see the LICENSE file for details.

🔝Back to top

S
Description
No description provided
Readme Apache-2.0 3.1 MiB
Languages
TypeScript 97.6%
JavaScript 1.7%
CSS 0.7%