**Wisp Science** is a desktop AI research assistant and scientific computing
workbench. It connects to OpenAI-compatible and Anthropic models, runs
persistent Python and R environments on local, WSL, SSH, and GPU compute, loads
reusable Agent Skills (`SKILL.md`), and reaches ~80 bioinformatics and
computational biology databases through bundled Model Context Protocol (MCP)
servers — while your data, conversations, and credentials stay on your own
machines.
Built with Rust, Tauri v2, and Leptos, Wisp Science runs as a cross-platform
desktop app or a headless CLI.
> **Our manifesto:** Wisp Science is open source and borderless. We are building
> a scientific workbench that anyone, anywhere can use, study, improve, and
> share.
> **Status:** MVP vertical slice. The agent loop, streaming providers, tools,
> Python/R REPLs, SQLite store, MCP client, and Leptos UI all build and run.
> See [Roadmap](#roadmap-post-mvp) for what is deferred.
## What does WISP stand for?
**WISP = Workspace for Intelligent Scientific Practice**
(中文:面向智能科研实践的工作空间)
- **Workspace** — not a single analysis tool, but a complete research workspace.
- **Intelligent** — AI agents, models, and automation are built in.
- **Scientific** — explicitly built to serve scientific research.
- **Practice** — covers real research practice: literature search, analysis,
computation, writing, and task management.
## Features
**An agent that does the work, not just chat**
- Streams OpenAI-compatible and Anthropic models, with per-provider model
profiles and tiered routing from a single trait.
- Reads, writes, searches, and runs shell commands inside a project-rooted
path sandbox, behind explicit approval gates; an opt-in per-conversation
**Full Permission** mode auto-approves after a warning.
- Loads reusable Agent Skills (`SKILL.md`) with progressive disclosure — the
catalog never floods the prompt.
- Drives external coding agents (Codex, Claude Code, …) over ACP v1, and spins
up reviewable sub-agent teams with [Controlled Delegation](docs/agent-delegation.md).
**Real compute, from laptop to cluster**
- Persistent Python and R environments per project — variables survive across
cells, conversations, and app restarts.
- Local, WSL, and SSH/GPU **execution contexts** with one-connection hardware
and runtime probing; each context keeps its own interpreter paths.
- Structured **Runs** for long jobs: preflight checks, per-second heartbeats,
and bounded log tails persisted with an environment snapshot.
- Secrets live in the OS keyring, never in SQLite. Free-form `ssh`/`scp` is
replaced by registered, probed hosts; a failed connection opens a
connectivity gate instead of silently retrying.
**Built for science**
- ~80 bioinformatics databases (PubMed, GEO, …) through bundled
[MCP bio-tools servers](#bundled-bio-tools-mcp), discovered on demand via
`search_mcp_tools` instead of bloating every request.
- Remote MCP services with OAuth (Notion and others), plus installable
[feature plugins](docs/feature-plugins.md) that package Skills and MCP servers.
- Fully offline previews for Jupyter notebooks, PDF, DOCX/XLSX/PPTX, and
images — including region cropping straight into the composer.
- A [Publication Workspace](docs/publication-evidence.md) that freezes
manuscript revisions and exports verifiable, deterministic Evidence Capsules.
**A workbench that remembers**
- Conversations persist to SQLite; restart and the full history is back. One
click **undoes** a turn's file edits with a preview of what will be restored.
- `@` attaches artifacts, files, execution contexts, and language runtimes;
`#` reaches saved sessions through a cited, read-only **Reader** specialist;
`/` applies a skill to the next turn.
- Ctrl+K / Ctrl+P palettes, side chat, conversation folders, a global library
of cells and figures, and in-app update checks.
- [Encrypted manual sync](docs/project-sync.md) and one-click
[project transfer](docs/project-transfer.md) keep machines in step — nothing
ever syncs in the background.
## Get started
### Download
Grab the latest installer from
[GitHub Releases](https://github.com/xuzhougeng/wisp-science/releases):
| Platform | Package | Notes |
|----------|---------|-------|
| Windows | MSI / NSIS | The installer is unsigned: choose **More info → Run anyway** on SmartScreen. If the window never appears after install, **Quit** from the tray icon and repair the [WebView2 Runtime](https://developer.microsoft.com/microsoft-edge/webview2/#download-section) (Evergreen Standalone Installer, run as administrator), then reopen Wisp Science. |
| macOS | `.dmg` (Apple Silicon + Intel) | Unsigned: right-click → **Open** on first launch, or allow it in System Settings → Privacy & Security. |
| Linux | — | [Build from source](#build-from-source). |
### Build from source
Prerequisites:
- **Rust** (stable, 1.88+) with `wasm32-unknown-unknown`:
`rustup target add wasm32-unknown-unknown`
- **uv** (Python environment manager):