Open Science v0.21.0
A release that broadens the engine room and sharpens the conversation: CodeBuddy joins as a fourth agent framework with an app-managed, login-free runtime; text and image annotations send selected context straight into the conversation; OpenCode Go and Zen catalogs expand to 21 and 40 models; Windows gains SSH password authentication for remote compute; and timeline markers, a redesigned message center, and a Marketplace card grid make the workspace easier to read — alongside default-denied renderer permissions, saner connector timeouts, and a long list of compute, notebook, and session fixes.
Open Science is an open-source, local-first AI research workbench for scientists and researchers. It enables reproducible, inspectable research across models with scientific AI agents, Python and R execution, scientific data connectors, and cross-platform support for macOS, Windows, and Linux.
v0.21.0 is a feature release. CodeBuddy becomes the fourth selectable agent framework alongside Claude Code, OpenCode, and Codex: installed, version-pinned, and managed from Settings with no separate login, it runs through the model providers you already configured while skills, notebooks, and connectors stay on the app-owned routing. Annotations let you select text in the transcript, tool activity, or file previews — or a point on an image — and send it to the agent as context; annotations persist across restarts, survive edit-and-resend, and appear as cards in the conversation. The bundled OpenCode Go and Zen catalogs grow to 21 and 40 models with per-model endpoint metadata, Windows users can now authenticate remote compute hosts with SSH passwords stored in secure storage, and quiet timeline dividers disclose framework, model, and reasoning-effort changes between turns. The notification message center and Specialist Marketplace are redesigned for scannability, completed skill loads expand to show the loaded skill document, and 32 new specialist avatar icons arrive. Under the hood, Chromium permissions from the renderer are denied by default, persisted compute job details move into OS-backed secure storage, connector timeouts fail fast instead of retrying, and a set of compute, notebook, artifact-provenance, and session fixes lands throughout.
✨ Highlights
- CodeBuddy agent framework. A fourth selectable agent framework joins Claude Code, OpenCode, and Codex — installed and managed from Settings with no separate login, running through the model providers you already configured, with skills, notebooks, and connectors routed through the same app-owned runtime. (#1831, #1849)
- Annotations. Select text in the transcript, tool activity, or file previews — or a point on an image — and send it to the agent as context. Annotations persist across restarts, are preserved through edit-and-resend, and appear as cards in the conversation. (#1815, #1821, #1826, #1837)
- Expanded OpenCode catalogs. OpenCode Go grows to 21 models and OpenCode Zen to 40, including the latest Claude, GPT, Grok, GLM, DeepSeek, Kimi, and Qwen families, with per-model endpoint, context-window, and reasoning metadata. (#1807)
- Configuration change markers. When a session's framework, model, or reasoning effort changes between turns, the transcript shows a quiet divider with the new configuration — so later answers have visible context for why they read differently. (#1825, #1833)
🚀 New Features
- CodeBuddy agent framework — app-managed, version-pinned, login-free runtime over ACP; session steering, model and effort changes, compaction, image input, and per-call usage are adapted, while skills, notebooks, and connectors stay on the app-owned routing. (#1831, #1849)
- Text and image annotations — annotate selections across transcript, activity, elicitation, and file-preview surfaces; annotations carry their source, are revealed on demand, survive edits and resends, and serialize into agent and side-chat messages. (#1815, #1821, #1826, #1837)
- Expanded OpenCode Go and Zen model catalogs with a model-level endpoint override so mixed-protocol models connect correctly. (#1807)
- Windows SSH password authentication for remote compute hosts, stored with Windows-backed secure storage. (#1805)
- Agent configuration change markers in the conversation timeline. (#1825, #1833)
- Skill-load rows show the skill document — expanding a completed skill load renders its instructions as Markdown instead of raw JSON. (#1812)
- Specialist Marketplace card grid with filter chips for Official, Community, and available updates. (#1840)
- Redesigned notification message center — icons now encode both what happened and whether it still needs you, with clearer read/unread states and two-line previews. (#1841)
- 32 additional specialist avatar icons across science, research, roles, and engineering. (#1838)
🔧 Improvements
- Chromium permission requests from the renderer are denied by default, shrinking the surface available to compromised renderer code. (#1817)
- Persisted remote compute job execution details are protected with OS-backed secure storage, with a clear warning when protection is unavailable. (#1818)
- Compute IPC arguments are strictly validated before use. (#1820)
- Connector request timeouts are no longer retried, so a stalled request fails once with a clear deadline explanation instead of three 30-second attempts. (#1829)
- Canceling a connector poll takes effect immediately instead of waiting out the poll delay. (#1830)
- Reviewer sessions bound the size of captured logs, preventing oversized tool output from stalling the app. (#1824)
- The GitHub star prompt respects a cross-project cooldown and appears far less often. (#1813)
- Japanese translations received a terminology and consistency pass. (#1823)
- The settings startup error now uses the standard error notice with retry. (#1835)
🐛 Bug Fixes
- Remote compute — a session stays active while its remote jobs are still running instead of showing as completed early (#1803), and unexpected dispatch failures are recorded with their real cause (#1811).
- Artifacts — generated files from task/CLI runs and delegation continuations keep their runtime provenance and no longer fail finalization. (#1802, #1810)
- Sessions — empty Claude sessions created by branching can be deleted (#1806), and the session hover card aligns with its row and offers inline rename (#1843, #1845).
- Context window — when per-call details cover only part of the history after switching frameworks or models, an inline notice discloses the coverage instead of silently hiding turns. (#1828)
- Notebook — queued execution races no longer produce inconsistent lifecycle outcomes like failed runs after successful runtime repair or duplicate interrupts. (#1832)
- Plans — a restored session that cannot read its plan shows a visible retrying notice instead of a silent missing plan card. (#1834)
- Files — directory-access removal and artifact lineage failures surface inline with retry instead of failing silently. (#1842)
- Workspace — file previews close with a single
Cmd/Ctrl+Wpress (#1804).
📦 Install
Requirements: macOS 12+ (Apple Silicon or Intel), Linux x64, or Windows 10/11 x64. On first run, the onboarding wizard checks the environment and can install and configure an app-managed agent runtime. Once installed, the app can update itself in place.
Download the appropriate package from the Assets section below:
| Platform | Package |
|---|---|
| macOS (Apple Silicon) | DMG for ARM64 |
| macOS (Intel) | DMG for x64 |
| Linux | AppImage or Debian package for x64 |
| Windows | Installer for x64 |
macOS — first launch. Official release builds are Developer ID signed and notarized by Apple, so they open like other trusted applications. A locally built copy is not notarized and may require approval through macOS Privacy & Security.
Windows — first launch (unsigned build). No Authenticode certificate yet, so SmartScreen shows a bypassable "unrecognized app" prompt (More info → Run anyway). Verify that the package came from the official release page before continuing.
Build from source instead:
npm install
npm run build:mac # or: build:linux / build:win
🧭 What's in this release (maturity)
- ✅ Implemented: a local-first desktop, localhost-web, headless, CLI, and task-SDK surface over persistent projects and sessions with selectable message branches, branching into a new session from user messages or completed agent messages with persisted source lineage, composer session references (
#) with turn-scoped read access, reversible archiving with keyboard undo, project pinning, collapsed long user messages, persistent side conversations with advisories injected into running main turns, generated and editable session details, session hover previews in the sidebar, and SQLite-indexed summary-first session startup; in-app sandboxed previews for source links in agent responses; selectable Claude Code, OpenCode, Codex, and CodeBuddy agent frameworks (CodeBuddy app-managed and login-free) behind a shared provider turn-adapter interface; text and image annotations that send selected context into conversations with agent configuration change markers in the timeline; production subagent delegation with durable messaging, restart recovery, structured output, artifact and review evidence, and camelCase delegation APIs; review-gated session plans with CLI plan controls; a unified composer lane with a session-scoped message queue, unified draft undo and redo history, active-specialist emphasis, and mid-turn Send now through native follow-up steering; hot-switching of compatible models and providers; multi-provider model configuration including an xAI OAuth subscription, a dedicated Vision model selector with persistent evidence relay, custom token limits, and a consolidated Scenario models card; per-model-call usage details with a per-call context-window chart; a configurable reviewer model policy with an isolated review runtime, durable assessment snapshots, and empty initial checks; a token usage dashboard; context-window composition insights with compaction boundaries; persistent Python/R/REPL kernels with bounded run-history payloads, a read-only live variable browser for running kernels, separated approval and execution state, cross-run dependency tracking, package-installation progress, progressive history loading, terminated read-only previews, session-scoped remote SSH execution with key or password authentication (including Windows), harvest ceasing, and remote file-staging cleanup; a user terminal shared with the agent; app-managed and bring-your-own environments for Python and R; immutable, session-scoped artifact versions with checksummed content, producer code, execution history, exact input references, environment inventory, producing message-branch context, version-scoped reviewer evidence, and on-demand LLM-driven code reconstruction; rich in-app previews for scientific data, documents, images, source code, molecular structures, and notebook history with right-click tab actions and full-screen mode; file attachments up to 10 GB with streaming upload; skills with conversational creation, import, marketplace browsing, and explicit/selection; 24 built-in research connectors plus custom MCP servers with import/export of standard MCP client configurations; durable scoped permissions with allow grants; remote-access pairing; interface localization in Spanish, French, Chinese (Simplified and Traditional), Japanese, Korean, and Russian; and auto-update with prominent update reminders and localized release notes. - 🚧 Partial: R remains managed-only; provider choice remains constrained by the active framework's endpoint compatibility; remote compute is SSH-only; skills remain local (no hosted public discovery commons); and review is opt-in and record-scoped.
- 🗺️ Roadmap: a unified model gateway, a hosted public skills and specialist discovery commons, Slurm/cloud-GPU execution, stronger sandboxing and credential isolation, and collaborative research workflows.
🐢 Known Limitations
- R is managed-only. A bring-your-own R interpreter path is not built yet.
- Remote compute is SSH-only. Slurm and cloud GPU submission are not built yet.
- Provider choice is per framework, not one unified gateway. The available protocol depends on the selected agent backend.
- Hot-switching applies only to registered compatible targets. Framework, auth-lane, wire-route, or unsafe capability changes still require a reconnect.
- Code reconstruction is LLM-generated. It does not replace deterministic reproduction; portable environment locks and full-fidelity session replay remain open.
- No hosted public specialist discovery commons. Specialist packages are portable across machines via import/export and the signed marketplace; what is not built yet is a hosted public discovery and forking hub.
- The task SDK is a first-generation surface. Task creation, polling, artifact retrieval, run progress, and cancellation work; broader orchestration remains open.
- Switching agent backends cannot transfer in-flight tool state. Existing conversation history can replay, but a running action is not migrated.
- Skills are local only. There is no shared public commons, cross-machine forking, or user-facing version pinning yet.
- The reviewer is opt-in and record-scoped. It does not replace domain-specific validation of citations, units, statistics, or methods.
- Scoped permissions cover allow-grants only. Network sandboxing, directory-level file access control, and a credential vault are not built yet.
- Windows builds are unsigned. SmartScreen may warn on first launch; official macOS builds are notarized.
- No local GPU compute backend.
- No multi-user real-time collaboration.
🙏 Acknowledgements
Thanks to @ewen-poch, @wen2zhou, @daanveer-tech, @justemu, and everyone in Discord, X, and Discussions.
Full Changelog: https://github.com/aipoch/open-science/commits/v0.21.0