open-science

by ai4s-researchVerified

Open Science Desktop — local-first, model-agnostic AI research workbench for macOS, Windows & Linux. Open-source Claude Science desktop alternative built on Tauri + MCP + agent skills.

1,442
Stars
155
Forks
TypeScript
Language
8/23/2026
Added
View on GitHubDownload ZIP

⚠️ Third-Party Software Notice

This skill is third-party open-source software developed and hosted independently on GitHub. SkillTip is an informational directory and does not control or maintain the underlying repository. Any security checks displayed are automated and limited in scope. Review the source code before installing.

Read the Terms of Service

Installation

Add to your Claude Code skills directory:

# Add to your Claude Code skills
git clone https://github.com/ai4s-research/open-science

Getting Started

Guides for using skills like open-science.

Security Report

Verified

Last scanned: —

{
  "status": "PASSED",
  "issues": []
}

README.md

Open Science Desktop — Local-first AI research workbench

Open Science Desktop

Local-first, model-agnostic AI research workbench for macOS, Windows & Linux.

Formerly Open Science. An open-source desktop alternative to Claude Science and similar AI-for-science workbenches — built with Tauri, MCP, agent skills, and reproducible artifacts. It connects agents, notebooks, files, figures, reports, runs, and review into one auditable desktop workflow.

English · 简体中文 · 日本語 · Español · Deutsch · Français · 한국어

License: MIT DOI #1 on ResearchClawBench Platforms 7 interface languages Built with Tauri + React OpenCode runtime Join Discord PRs Welcome linux.do


News

  • 2026-08-18 — 🖥️ Runs without a screen, and the terminal command comes with it. osd server starts the whole workbench — workspace, agent runtime, and the same web UI — on a machine with no display, and osd session send … --wait drives it from a script or another agent. osd ships inside the desktop installer and puts itself on your PATH on first launch; on a server the archive needs nothing installed. Models, keys and approvals are all configurable from the terminal (osd model, osd auth, osd approval).
  • 2026-08-13 — 🔌 Speaks the Agent Client Protocol, both directions. Drive Codex, Gemini CLI, Claude Code, or any other ACP agent from inside this app — with its own models, history, and your MCP connectors — or drive Open Science itself from Zed, JetBrains, or Neovim. (v0.4.0)
  • 2026-08-01 — 🗂️ Projects, memory, and full history. Group sessions into named projects (import an existing repo in place, no copying), give the agent persistent global and project memory, and reach every past conversation through a searchable history with archive, restore, and export. (v0.3.1)
  • 2026-07-24 — 🪟 Split-pane tiling. Tile sessions side by side, drag panes to re-dock them, keep several independent Screens, and run a different model in each pane. (v0.3.0)
  • 2026-07-21 — 🌐 Access from anywhere — even your phone. A token-authenticated gateway serves the real desktop UI to a CLI, a browser on your LAN, or your phone (loopback by default; LAN is opt-in). Start a run at your desk and read the finished figure and report on your phone. (v0.2.3)
  • 2026-07-21 — 🧭 Browser control. The agent can drive your own Chrome — profile and logins intact — to read the live web the way you do, or an isolated private browser on demand. (v0.2.3)
  • 2026-07-09 — 🎉 #1 on ResearchClawBench. Open Science Desktop ranks #1 by scored-task average on ResearchClawBench, an end-to-end benchmark for autonomous scientific research agents (Pass@1 leaderboard).

Contents

What it does

Runs the whole research loop — from a broad direction to a finished paper: exploration, literature survey, hypothesis, experiment code, analysis, figures, and write-up, in one continuous, auditable session.

  • Autonomous research agents — the bundled ai4s-agent chains specialist skills end to end (explore → survey → experiment → write), and each stage drops a real, inspectable artifact into your workspace, not just a chat reply.
  • Everything traces back — figures, tables, reports, notebooks, and run outputs link to the exact code, inputs, environment, model output, and conversation that produced them.
  • Local-first and yours — sessions, data, provenance, notebooks, and run records live in local folders on your machine. Nothing leaves by default.
  • Model-agnostic runtime — the UI talks through packages/sdk to a bundled, pinned OpenCode sidecar. Bring your own model; providers, skills, and MCP servers stay pluggable.
  • Reproducible by construction — local, SSH/Slurm, Modal, and notebook-batch runs are captured as reproducible run records, not loose terminal scrollback.
  • Reach it from anywhere — a built-in, token-authenticated gateway serves the real desktop UI to a browser on your LAN or phone (or, with a tunnel, from anywhere) — kick off a run at your desk and check on it from your phone over lunch. Off by default; loopback-only until you opt in, and API keys never leave the machine.
  • Drives your own browser — the agent can control your real Chrome, with your profile and logins intact, to read the live web the way you do — or an isolated private browser when you'd rather it not.
  • Plan before it acts/plan lays out an execution plan before touching a file, and /goal fixes the objective, constraints, and acceptance criteria the agent then works toward.
  • Built for long projects — named projects group their sessions, two layers of persistent memory (global and per-project) carry what matters between them, and a long conversation compacts itself as it approaches the model's context window.
  • Work several threads at once — tile panes side by side, keep independent Screens, and give each pane its own model.
  • Extensible — agent skills, MCP servers and one-click science connectors, / commands, ! shell mode, and a model-agnostic SDK.

See it in action

One prompt -> a publication-grade figure, and every point traces to the exact code and inputs that made it. No black boxes: open any artifact to see its generating script, its data files, and the conversation that produced it.

A rendered cross-species atlas figure beside its generating script and input files in the artifact inspector

Literature -> a verifiable report. Fan the search out across sources, draft a manuscript rendered as a PDF, and gate it on a citation review — DOIs resolved, unsourced numbers and figure/code inconsistencies flagged — before anything ships.

A protein-language-model literature survey compiled into a PDF manuscript, with a citation reviewer confirming every DOI resolves

Drives your own Chrome. The agent reads the live web through your real browser profile — logins and all — then turns what it finds into a figure and a sortable CSV.

The agent driving the user's own Chrome via open-science-browser to harvest bioRxiv preprints into a chart and CSV

Research from anywhere — even your phone. A built-in authenticated gateway serves the real desktop UI to a browser on your LAN (or a tunnel), so you can kick off a run at your desk and read the finished figure and report on your phone.

The workbench in a phone browser: the new-session screen with starter analyses
New session
A completed dose-response analysis — script, results, figure, and report — on a phone
A finished analysis
Reproducing an scVI benchmark, with its ARI-vs-epoch figure, viewed on a phone
A reproduced benchmark
More screenshots

Reproducing an scVI integration benchmark on a remote A100 with a pinned environment, execution log, and provenance

An 8-arm scVI hyperparameter sweep table beside a live analysis notebook sharing the agent's kernel

Current capabilities

The research loop, as skills. One meta-skill runs the full pipeline; each stage is a self-contained skill that produces a real, gradeable artifact — runnable on any model OpenCode supports:

SkillRolePrimary output
ai4s-agentRuns the four skills below, in orderThe full research package
research-explorerTurn a broad direction into concrete topicsresearch_exploration.md, topic_matrix.md, literature_pre_survey.md
literature-surveyWrite a literature survey6–20 pp PDF, 60+ real citations, LaTeX source, taxonomy figures
experiment-suiteBuild an experiment packageDesign doc, runnable code, results.json with provenance, figures, report
paper-writerWrite a research paper8–14 pp PDF, 200+ citations, 4–8 figures, tables
mindmap-renderRender a mindmapImage generated from a topic_matrix.md
integrity-auditorAudit a paper's integrityImage / numerical / logical findings, 4-level evidence grading, audit_report.md

These ship in the ai4s-skills pack alongside first-party review skills and the office/document skills below.

Platform

AreaCurrent state
Desktop shellTauri 2 + React + TypeScript + Vite, with macOS, Windows, and Linux desktop builds.
RuntimeBundled OpenCode sidecar, auto-started by the app, isolated from the user's own OpenCode config/data.
ProjectsNamed project workspaces that group their sessions; import an existing folder in place (never copied) or adopt one already inside the workspace; move an existing session into a project.
SessionsMulti-session chat/history, dated workspace folders, searchable history with archive/restore/export, @ file and # conversation references, / commands, and ! shell mode.
LayoutN-ary split-pane tiling with drag-to-dock, independent Screens, per-pane model and reasoning effort, and cross-screen pane drag.
Agent modes/plan for plan-then-execute, /goal for objective and acceptance criteria, live subagent status in its own panel, and Stop that reflects the runtime's real server state.
MemoryGlobal and per-project memory layers, switchable, plus automatic context compaction as a conversation approaches the model's window.
Remote computeRegister machines from your ~/.ssh/config, probe them, and submit, track, or cancel jobs from the app.
AppearanceLight, Warm, and Dark themes with per-theme accents, and UI zoom.
FilesGlobal and per-session file browsing, context menu actions, external open/reveal, copy path, and local preview server.
Headless & CLIosd server runs the workbench with no window — same workspace, same runtime, same web UI, served from one self-contained directory — and osd drives it (or a running desktop app) from a terminal: sessions, projects, runs, files, approvals, --wait, --json.
Remote accessToken-authenticated gateway that serves the real UI to a CLI, a LAN web browser, or your phone (loopback by default, LAN opt-in); read-only vs full access modes; copy a link with the token embedded to connect in one tap. API keys never cross the wire.
Editor interop (ACP)Speaks the Agent Client Protocol in both directions: run any ACP agent (Codex, Gemini CLI, Claude Code, …) as the runtime behind the ordinary UI, with its own model and reasoning selectors, history replay, and this app's MCP connectors; or let an external editor (Zed, JetBrains, Neovim, …) drive Open Science, reusing the gateway token.
Browser controlThe agent drives your own Chrome — profile and login state preserved — reading pages through the accessibility tree, or an isolated/private browser on demand.
NotebooksReal .ipynb files, Python and R notebook creation, local kernel execution, managed Jupyter environment via bundled uv, and an Open JupyterLab action.
RunsAppend-only run logs, global SQLite run index, search/facets/pagination, local/remote surfaces, output links, logs, and reproduce prompts.
Provenance.openscience/provenance.jsonl tracks file versions and links produced artifacts back to the run or edit that created them.
ReviewTraceability, statistics-integrity, domain-check, large-file, publication-figure, remote-compute, and Modal run skills are bundled as first-party skills.
ViewersPDF, image, video, HTML, Markdown, code, CSV/TSV tables with charts, DOCX, XLSX, PPTX, molecules, 3D meshes, genome tracks, FITS, DOS/DOSCAR, EIGENVAL bands, qcode, anomaly maps, and phase files.
ModelsOpenCode provider catalog, OAuth/API-key provider flows, custom OpenAI-compatible endpoints, and local/provider-specific options supported by OpenCode.
Interface languagesEnglish, Simplified Chinese, Japanese, Spanish, German, French, and Korean. Portuguese (Brazil) and Arabic are registered but not selectable yet.

Skills and connectors

Bundled skills are fetched for builds and releases instead of being committed into git history:

  • ai4s-skills pack from ai4s-research/ai4s-skills.
  • Office/document skills from the Apache-2.0 anthropics/skills repository: docx, pdf, pptx, and xlsx.
  • First-party core skills in runtime/skills/core/: traceability-review, stats-integrity, domain-check, large-file, publication-figures, remote-compute, and modal-run.

One-click science MCP connectors currently include:

  • Literature search: arXiv, PubMed, Crossref, Semantic Scholar, bioRxiv/medRxiv.
  • Biomedical databases: PubMed, ClinicalTrials.gov, MyVariant/ClinVar.
  • Materials Project.
  • FRED economic data.
  • Space weather.
  • Open-Meteo weather and climate.
  • USGS water data.

You can also add any local or remote MCP server from Settings. See docs/CONNECT_YOUR_TOOLS.md.

For a neutral positioning note, see Open Science Desktop vs OpenScience.

Install

Download the latest installer from the Releases page.

  • macOS: .dmg / .app, Apple Silicon and Intel, macOS 13 Ventura or later.
  • Windows: NSIS .exe, Windows 10/11 x64 — installs per user, no admin needed. A .msi is also published for IT-managed deployment; pick one format and stay on it.
  • Linux: .deb and .rpm on x86_64 Linux.

The macOS packages are Developer ID signed, notarized, and stapled, so they open normally — no xattr workaround needed. Windows and Linux builds are not signed yet.

Windows: if SmartScreen appears, choose More info -> Run anyway.

Linux:

sudo apt install ./Open.Science_*.deb
# or
sudo rpm -i Open.Science-*.rpm

Headless & CLI (osd)

A research machine usually has no screen. osd is the same workbench without one: the same workspace layout, the same agent runtime, the same projects, and the same web UI — served over HTTP instead of drawn in a window.

On a server, take the archive. osd-<version>-<target> from Releases unpacks and runs with nothing installed — verified on a bare Ubuntu container with no packages added at all.

# Configure the machine (works before any server is running)
./osd auth set anthropic --key sk-…       # stays on this machine, never on the wire
./osd model set anthropic/claude-opus-4-5 # the default for every turn
./osd server --lan                        # prints its URL and access token

Keys never have to touch a file: the agent runtime inherits this process's environment, so ANTHROPIC_API_KEY=sk-… ./osd server needs no auth set at all. A self-hosted or proxied endpoint goes in the same command (--base-url https://my-gateway.internal/v1), and osd auth ls prints provider names only — no key is ever printed by anything. Changing a key needs a restart; the CLI says so rather than leaving you to wonder.

Open the printed URL and you get the real desktop UI in a browser, phone included. Or drive it from a terminal — on the same machine, over SSH, or from your laptop:

osd project new "Reef survey"
id=$(osd session new --project "Reef survey")
osd session send "$id" "Fit the 2015–2024 bleaching trend and write report.md" \
    --model anthropic/claude-sonnet-4-5 --wait
osd fs ls figures/
osd fs get report.md --output ./report.md

On Windows the same commands work in PowerShell; only the shell's own syntax differs:

$id = osd session new --project "Reef survey"
osd session send $id "Fit the 2015-2024 bleaching trend and write report.md" --wait

On your own machine it is already installed. The desktop installer carries osd, and the app puts it on your PATH the first time it starts, so a new terminal has the command with nothing to set up. It writes one small wrapper (~/.local/bin/osd, or ~/bin when a terminal already searches that) — never a symlink, because osd finds its runtime next to its real executable. If that folder is not on PATH, the app adds it to your login profile and Settings → Remote Access says which file it touched. Nothing else on your shell is changed.

--wait returns when the turn is finished, not when it was accepted, and fails loudly if it produced no reply. --json prints the API's own response for scripts.

Which model, and who approves what

osd model shows the default, osd model ls lists what the runtime can actually serve (the providers this machine has credentials for, current one marked), and osd model set <provider/model> changes it — over the gateway, so it works against a remote server too. Any single turn can override it with osd session send --model … --agent … --effort ….

Approvals still apply: the agent asks before running commands, deleting files, installing dependencies or reaching the network. Without a window, --wait names what is waiting and offers both answers — osd permission ls / osd permission allow <id> in the terminal, or the gateway URL it prints, which carries the token so a browser on your laptop or phone can approve it.

For a machine with nobody watching, opt out explicitly:

osd approval            # what has to be asked today
osd approval set full   # never ask — commands, deletions, installs, network

full is a deliberate choice, not a default: the agent stays confined to the workspace, but nothing pauses for you. osd approval set approve puts every rule back.

As a service

osd server is an ordinary foreground process, so systemd runs it as-is. This unit was run end to end on Ubuntu — enable, restart, crash, stop:

# /etc/systemd/system/osd.service
[Unit]
Description=Open Science Desktop (headless)
After=network-online.target

[Service]
Type=simple
User=ubuntu
Environment=HOME=/home/ubuntu
ExecStart=/opt/osd/osd server --port 4788
Restart=on-failure
RestartSec=3

[Install]
WantedBy=multi-user.target

sudo systemctl enable --now osd and the printed URL and token land in journalctl -u osd. A unit is also the tidiest way to run it: systemd stops the whole cgroup, so the agent runtime never survives the server, however it dies.

With no --gateway given, osd talks to a gateway already running on the same machine — including the desktop app's — so with the app open, osd session ls just works. Otherwise point it anywhere with osd login --gateway <url> --token <token>.

What is not there without a desktop: local Jupyter kernels, native file dialogs, and the OS file manager — the web UI hides those rather than offering controls that would fail. Two more are worth knowing: provenance and run records are written by the desktop client, so a headless server keeps the workspace's file history through git snapshots but does not append to provenance.jsonl or the run index.

Build from source

Prerequisites:

  • Node.js >= 20
  • pnpm 9
  • Rust toolchain
  • macOS, Windows, or Linux system dependencies required by Tauri
git clone https://github.com/ai4s-research/open-science
cd open-science
pnpm install

# Fetch pinned sidecars and bundled skills. These are git-ignored.
bash scripts/dev/fetch-opencode.sh
bash scripts/dev/fetch-uv.sh
bash scripts/dev/fetch-skills.sh

# The osd terminal client is bundled too — it is ours, so it is built, not fetched.
bash scripts/dev/build-osd-sidecar.sh $(rustc -vV | sed -n 's/host: //p')

# Run in development or build installers.
pnpm --filter @ai4s/desktop tauri dev
pnpm --filter @ai4s/desktop tauri build

Useful checks:

pnpm test
pnpm typecheck
pnpm lint

Safety and privacy

  • Workspace files, raw data, session history, provenance, notebooks, and run records stay local by default.
  • Command execution, file deletion, dependency installation, and remote connections are human-approved flows in the desktop app.
  • Provider credentials are written to app-private runtime config, not to the workspace, provenance, git, exports, or global OpenCode config.
  • Settings includes a plain-language data-flow view explaining what can be sent to the selected model provider.

Repository layout

PathPurpose
apps/desktop/Tauri + React desktop app.
packages/sdk/OpenCodeClient; keeps the UI from calling OpenCode directly.
packages/shared/Shared domain types and chart palette.
packages/ui/Shared UI package.
runtime/skills/core/First-party scientific skills.
runtime/skills/external/Build-fetched external skills.
runtime/harness/Runtime harness knowledge and operator context.
runtime/mcp/MCP runtime notes/configuration.
examples/Built-in example workspaces.
crates/osd-core/The server core — workspace, sidecar, gateway. No Tauri, so it runs headless.
crates/osd-cli/osd: the headless server and its client.
scripts/dev/Sidecar, uv, skill fetchers, and focused regression probes.
docs/Product, technical, operator, connector, and research notes.

Status

The project is a working desktop MVP in active development. The most reliable current implementation log is PROGRESS.md. Product and architecture notes live in docs/PRD.md and docs/TECHNICAL_DESIGN.md, but those documents include target design as well as historical status notes.

Near-term work is focused on Windows code signing, auto-update, broader Windows/Linux verification, richer connector hardening, and continued reproducibility review. macOS releases are already signed and notarized.

Contributing

Issues and PRs are welcome. Keep changes minimal and verifiable, follow AGENTS.md, and run the checks before opening a PR. For discussion, join the Open Science Discord or the linux.do community.

Citation

If you use Open Science Desktop in your research, please cite it:

@software{open_science_desktop,
  author  = {{The Open Science Desktop Contributors}},
  title   = {Open Science Desktop: a local-first, model-agnostic AI research workbench},
  year    = {2026},
  version = {0.5.0},
  doi     = {10.5281/zenodo.22004919},
  url     = {https://github.com/ai4s-research/open-science},
  license = {MIT}
}

GitHub's "Cite this repository" button (top of the repo page, generated from CITATION.cff) provides the same reference in APA and BibTeX.

License

MIT. Bundled third-party skills and connectors keep their own licenses.

Open Science Desktop is beta research tooling. Treat outputs as drafts: verify numbers, citations, code, and conclusions before publication or decision-making.

Frequently Asked Questions

What is open-science?

open-science is an open-source ai agents skill for AI coding assistants such as Claude Code, Codex CLI, and ChatGPT, built by ai4s-research. Open Science Desktop — local-first, model-agnostic AI research workbench for macOS, Windows & Linux. Open-source Claude Science desktop alternative built on Tauri + MCP + agent skills. It has 1,442 GitHub stars.

Is open-science safe to use?

Yes. open-science passed SkillsLLM's automated security scan — a dependency vulnerability audit plus prompt-injection heuristics — with no high-severity issues. You can read the full report in the Security Report section on this page.

How do I install open-science?

Clone the repository with "git clone https://github.com/ai4s-research/open-science" and add it to your Claude Code skills directory (see the Installation section above).

What programming language is open-science written in?

open-science is primarily written in TypeScript. It is open-source under ai4s-research on GitHub, so you can review or fork the full source.

Are there alternatives to open-science?

Yes. SkillsLLM lists many other AI Agents skills you can browse and compare side by side. Open the AI Agents category from the badge at the top of this page, or use the Related Skills and comparison links further down to weigh open-science against similar tools.

Comments (0)

No comments yet. Be the first to share your thoughts!

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details

claude-code

by anthropics

Claude Code is an agentic coding tool that lives in your terminal, understands your codebase, and helps you code faster by executing routine tasks, explaining complex code, and handling git workflows - all through natural language commands.

120,03119,897Shell
AI Agents
View details

Developers Also Liked

Based on votes and bookmarks from developers who liked this skill

ECC

by affaan-m

10

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

242,21936,702JavaScript
AI Agentsai-agentsanthropicclaude-code
View details
15

An agentic skills framework & software development methodology that works.

234,96620,863Shell
AI Agentsai-agentsbrainstorming
View details

n8n

by n8n-io

12

Fair-code workflow automation platform with native AI capabilities. Combine visual building with custom code, self-host or cloud, 400+ integrations.

201,88160,308TypeScript
MCP Serversapisai-tools
View details

The agent harness performance optimization system. Skills, instincts, memory, security, and research-first development for Claude Code, Codex, Opencode, Cursor and beyond.

185,94028,768JavaScript
AI Agentsai-agentsanthropicclaude-code
View details

cc-switch

by farion1231

3

A cross-platform desktop All-in-One assistant for Claude Code, Codex, OpenCode, OpenClaw, Grok Build & Hermes Agent. Only official website: ccswitch.io

128,8688,826Rust
AI Agentsclaude-codeai-tools
View details