wisp-science
Open-source, local-first desktop AI research workbench for scientific computing with Python/R, MCP bioinformatics tools, SSH/WSL/GPU runtimes, and OpenAI/Anthropic models.
Install / Use
claude mcp add xuzhougeng -- npx -y github:xuzhougeng/wisp-scienceIf the server publishes to npm under a different name, use that package instead — check the repo README.
MCP Server
Model Context Protocol server
Quality Score
Category
AutomationSupported Platforms
Skill content
View source on GitHubWisp Science
The open-source, local-first AI research workbench.
<a href="https://github.com/xuzhougeng/wisp-science/releases"><img src="https://img.shields.io/github/v/release/xuzhougeng/wisp-science" alt="Release"></a> <a href="https://github.com/xuzhougeng/wisp-science/releases"><img src="https://img.shields.io/github/downloads/xuzhougeng/wisp-science/total" alt="Downloads"></a> <a href="https://doi.org/10.5281/zenodo.21193742"><img src="https://zenodo.org/badge/1285857639.svg" alt="DOI"></a> <a href="https://github.com/xuzhougeng/wisp-science/blob/main/LICENSE"><img src="https://img.shields.io/github/license/xuzhougeng/wisp-science" alt="License"></a> <a href="https://github.com/xuzhougeng/wisp-science/stargazers"><img src="https://img.shields.io/github/stars/xuzhougeng/wisp-science?style=social" alt="Stars"></a> <br> <a href="https://github.com/xuzhougeng/wisp-science/releases"><img src="https://img.shields.io/badge/Windows-supported-0078D4" alt="Windows supported"></a> <a href="https://github.com/xuzhougeng/wisp-science/releases"><img src="https://img.shields.io/badge/macOS-supported-000000" alt="macOS supported"></a> <a href="#build-from-source"><img src="https://img.shields.io/badge/Linux-source%20build-FCC624" alt="Linux source build"></a>
English · 简体中文 · Documentation · Releases
<img src="docs/assets/app-home.png" alt="Wisp Science desktop app running a bundled RNA-seq analysis demo" width="100%" /> </div>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 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.
- Coordinates exact file-tool paths across parallel conversations. Shell, Python, and R calls remain concurrent because their file access and child process lifetimes cannot be inferred reliably from command text.
- 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.
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, bounded log tails persisted with an environment snapshot, and dismissible completed cards that leave the Run record and outputs intact.
- Secrets live in the OS keyring, never in SQLite. Free-form
ssh/scpis 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, discovered on demand via
search_mcp_toolsinstead of bloating every request. - Remote MCP services with OAuth (Notion and others), plus installable feature plugins 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.
- Local Markdown extraction for Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, and text-based PDF files, so agents can read documents without Python or an external conversion service.
- A Publication Workspace 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.
- Inline Generated artifacts come only from structured file-write events; directory listings, reads, searches, and prose that merely mention a path are not presented as newly generated files.
@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 (including quick UI/code font sizing), conversation folders, a global library of cells and figures, and in-app update checks. Side chat searches a frozen snapshot of the current conversation's full visible history and exposes the message excerpts used for each answer.
- Manual Reviewer checks keep sending paused and show live review progress until the independent audit finishes.
- Feedback opens a blank conversation immediately and attaches non-sensitive version, platform, model, and startup diagnostics to the first message you send; it never contacts the model before you write that message.
- Encrypted manual sync and one-click project transfer keep machines in step — nothing ever syncs in the background.
Get started
Download
Grab the latest installer from GitHub 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 (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
Prerequisites:
- Rust (stable, 1.88+) with
wasm32-unknown-unknown:rustup target add wasm32-unknown-unknown - uv (Python environment manager): https://docs.astral.sh/uv/
- Trunk:
cargo install --locked trunk· Tauri CLI v2:cargo install tauri-cli --version "^2" - Optional: R with the
jsonlitepackage for the persistentrtool. Wisp locatesRscriptvia the interpreter configured in Settings, then PATH, then well-known install locations (for exampleC:\Program Files\R\R-*\binon Windows or a conda base environment). Wisp never installs R packages automatically. - Windows needs the WebView2 Runtime (present on most Windows 10/11
systems; the installer acquires it when missing). macOS needs Xcode
Command Line Tools (
xcode-select --install) and uses the system WebKit.
cargo tauri dev # hot-reload: Trunk serves the UI, Tauri opens the window
cargo tauri build # installers under target/release/bundle (MSI/NSIS, .app/.dmg)
For a universal macOS binary (Apple Silicon + Intel):
rustup target add x86_64-apple-darwin
cargo tauri build --target universal-apple-darwin
Headless CLI
export WISP_API_KEY=<your provider key>
export WISP_PROVIDER=openai # openai (default) | openai_responses | anthropic
export WISP_MODEL=deepseek-v4-pro
cargo run -p wisp-cli # interactive agent in your terminal
Run a single prompt, or stream machine-readable events (one JSON object per line) for scripting:
cargo run -p wisp-cli -- run "Summarize the files in this project"
cargo run -p wisp-cli -- run --output jsonl "Summarize the files in this project"
The CLI also ships a repeatable agent regression suite (six fixed file tasks, JSON report, pass/fail plus latency/token deltas against a baseline):
cargo run -p wisp-cli -- eval --save baseline.json
cargo run -p wisp-cli -- eval --compare baseline.json --save current.json
ACP agents (optional)
Wisp can launch any installed local agent that speaks ACP v1 over stdio — separate from HTTP model profiles:
- Install an adapter, e.g.
npm install -g @agentclientprotocol/codex-acp. - Settings → Models → ACP Agents → set Label, Command, and Arguments → Save Agent → Test Connection.
- Select the agent in the chat model picker and send a prompt.
Full setup, Claude example, and troubleshooting: docs/acp-agents.md.
Configuration
All optional; sensible defaults are bundled. Desktop stores API keys in the OS
keyring and model profiles in .wisp/wisp.sqlite (Settings → Models); see
Model configuration. Custom credentials map a
display name to an environment variable and are injected only into newly
launched local Python and bundled MCP processes — never copied to SSH/WSL
hosts. Built-in credential rows link to the services' official setup pages and
explain what each integration enables and how Wisp behaves without it.
Settings → Storage lists workspace paths per project. Select a project to view that workspace's local footprint separately from shared app data.
For project-specific Agent instructions, Wisp reads AGENTS.md from the
project root when a new session starts. Instructions entered in Project
Settings → Agent Context are stored in .wisp/WISP.md and applied after
AGENTS.md, so the explicit Wisp setting takes precedence when both exist.
| Variable | Purpose |
|----------------------|---------------------------------------------------------------|
| WISP_API_KEY | Provider API key (CLI). Desktop uses the keyring instead. |
| WISP_PROVIDER | CLI API provider: openai (default), openai_responses, or anthropic |
| WISP_API_URL | API root; defaults to DeepSeek / OpenAI / Anthropic |
| WISP_MODEL | Model name |
| WISP_MAX_CONTEXT | Context budget (default 1,000,000) |
| WISP_MAX_ITER | Max agent iterations per turn (default 100; 0 = unlimited) |
| WISP_SKILLS_PATH | Extra ;/:-separated SKILL.md catalog dirs
Truncated for display — read the full file on GitHub.
Related Skills
Agent-Reach
84.4kGive your AI agent eyes to see the entire internet. Read & search Twitter, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu — one CLI, zero API fees.
headroom
73.4kCompress tool outputs, logs, files, and RAG chunks before they reach the LLM. 20% fewer tokens for coding agents, 60-95% fewer tokens for JSON, same answers. Library, proxy, MCP server.
ruflo
73.0k🌊 The original agent harness. Deploy intelligent multi-player swarms, coordinate autonomous workflows, and build conversational AI systems. Features adaptive memory, self-learning intelligence, federation, vector RAG integration, and native Claude Code / Codex / Hermes and many more Integrated
CowAgent
47.1kOpen-source super AI assistant & Agent Harness. Plans tasks, runs tools and skills, self-evolves with memory and knowledge. Multi-agent, multi-model, multi-channel. Lightweight, extensible, one-line install.
