Skip to content

About

ScienceDiscovery is an all‑in‑one agentic workbench built specifically for scientific research.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

 
 

Latest commit

 

History

1,487 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ScienceDiscovery

The one-stop AI research workspace, built for scientists.

Literature review, hypothesis, code, experiments and tuning — in one environment, with every step on the record.

License Release Platform Docs

Download · Quick start · Documentation · Contributing · 中文

The ScienceDiscovery workspace: project and session navigation, the composer, and the artifact, reviewer and provenance panels

Overview

ScienceDiscovery is a locally run research workspace, built on JiuwenSwarm: an agent reads the literature, writes and runs code inside a sandbox, and records the origin of every result. Everything executes on your own machine, against your own files, with your own model keys.

Installation

The prepackaged binary is the shortest path to a first run. On the Releases page, download the ScienceDiscovery-<version>-linux-x86_64 asset for x86_64 or the ScienceDiscovery-<version>-linux-aarch64 asset for arm64. Rename the downloaded file to ScienceDiscovery, then run:

chmod +x ./ScienceDiscovery
./ScienceDiscovery serve

Open http://127.0.0.1:4310. When the browser has not connected yet, use the Connection page to paste the local service access token from .sciencediscovery-data/secrets/auth-token; this works even when the service runs in the background and its startup output is unavailable. The printed Open to sign in URL remains a convenient automatic sign-in shortcut. That token is distinct from a model API key and grants access to this machine's workspace — keep it private.

For the prepackaged binary, Bubblewrap is the only system dependency. The deployment guide covers building a portable binary from source, local source mode for development, and Docker for advanced container operations. It also has first-run help for the binary and local modes. Every deployment path uses JiuwenSwarm by default; the deployment guide covers the deployment-specific operations.

Configure a model

ScienceDiscovery does not bundle a model; you connect your own API. Open System configuration at the bottom of the left sidebar, then open Model registry. Select a preset provider or add one manually, enter its details and API key, then select Save & connect. This registers the provider's models and tests the first one. When it is the first model in the system, it also becomes the default task model. If you already have models, select one from Global default task model at the top of Model registry.

Field definitions, and which of them an environment variable can set instead, are in the configuration reference.

First task

Create a Project and a Session, drop a CSV or a PDF into the workspace, and describe the analysis you want. A permission card appears before the first code execution; once approved, inspect tool calls and their results in the timeline. Generated files that the task declares as Artifacts appear in the workspace. For a step-by-step walkthrough, see the Quick Start.

Capabilities

Capability Description Reference
Literature and data access Built-in connectors reach paper and data repositories; PDFs are parsed into citable evidence Literature research · Custom MCP servers
Sandboxed code execution The agent writes, debugs and runs Python, R and shell inside a fail-closed sandbox Sandbox execution
Task decomposition Planning and multi-agent orchestration distribute a task across sub-agents and a cross-domain skill library Subagent orchestration · Skills
End-to-end provenance Code, environment, logs and cited evidence are recorded per deliverable; the optional memory graph makes the chain navigable Review and provenance · ScienceMemory
Scripted and batch runs ScienceDiscovery run sends a task to a running serve from a terminal or a job script and streams the result as text or JSONL Command line · CLI reference

Command line

Besides the browser, a running serve accepts tasks from the terminal. Run run from the directory where serve runs, so it reads the same data directory and access token; if serve uses --data-dir or --port, pass the same options to run.

# In a terminal: the answer streams to stdout, and permission requests are asked here
./ScienceDiscovery run "Explain the difference between a paired and an unpaired t-test in three sentences"

# In a pipe: one JSON event per line; keep only the final answer
./ScienceDiscovery run --auto-approve "Name three common normalization methods for RNA-seq read counts, one line each" \
  | jq -r 'select(.type == "result") | .content'

# Only the answer, written to a file
./ScienceDiscovery run --auto-approve --output text "Explain what a p-value does and does not tell you, in one paragraph" > answer.md

On a terminal, run writes the answer to stdout, progress to stderr, and asks you to approve each permission request. When stdout is piped or redirected, it defaults to JSONL, errors included, and it cannot ask for approval, so it refuses to start unless you pass --auto-approve. That option approves the session's tool actions without asking, except direct host execution after a sandbox failure, which always needs explicit consent; use it only for tasks and data you would approve anyway. The CLI reference describes every command, and ./ScienceDiscovery help prints every option.

Requirements

Path System requirements
Prepackaged binary Linux x86_64/aarch64 (Windows x64 via WSL 2), Bubblewrap
Local source mode Linux (including WSL 2) or macOS; Node.js 22.19+, pnpm 11.1.2, Python 3, uv 0.9+, Git, curl; Bubblewrap on Linux
Docker Linux containers on Linux, macOS, or Windows; Bubblewrap and unprivileged user namespaces

Managed scientific environments run on a pinned micromamba, so no system Python, R or conda is required.

Warning

ScienceDiscovery is not a multi-user production service. The adapter and the API listen on loopback by default; access uses one bearer token and there is no TLS termination. Exposing either interface elsewhere must be an explicit deployment choice on a trusted, secured network. Python, R, and shell commands run in a fail-closed platform sandbox (Bubblewrap on Linux and Seatbelt in macOS source mode); the control API, the adapter, JiuwenSwarm, the PDF worker, STDIO MCP servers you configure, and outbound model/provider calls run outside that sandbox as trusted control-plane operations. When the sandbox is unavailable, running a command directly on the host is a recovery step that needs its own explicit approval and has none of the sandbox's isolation. See Sandbox execution for the boundary.

Documentation

Section Guides
Getting started Quick start · Deployment
Advanced setup Custom MCP · Network proxy · ScienceMemory
Reference CLI · Configuration · REST API · Built-in tools · Runtime behavior
Developer documentation Architecture and the developer index

The complete English and Chinese indexes are in the documentation site; development setup and test commands are in CONTRIBUTING.md.

Join the community

Join the ScienceDiscovery community on Slack or Feishu to discuss your work and share feedback.

Slack Feishu
ScienceDiscovery Slack community invite QR code ScienceDiscovery Feishu community invite QR code

License

Apache License 2.0.

This product serves solely as a workflow orchestration tool and does not embed any AI model capabilities. When users integrate AI models for specific business scenarios, they shall bear full responsibility for compliance obligations under the EU AI Act and other relevant regulatory frameworks.

About

ScienceDiscovery is an all‑in‑one agentic workbench built specifically for scientific research.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages