Open Science v0.20.1
A release that makes sessions self-describing and usage measurable: generated and editable session details (title + description), per-model-call usage with a redesigned per-call context-window chart, MCP client-config import/export with credential placeholders, and a composer draft redo shortcut — alongside proxy-consistent networking, validated downloads, and a long list of session, notebook, connector, compute, and provider 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.20.1 is a feature-focused refinement release. Sessions become self-describing: a new session generates its title and description from the first message through a restricted no-tools runner, an edit dialog supersedes a running generation, and Home cards summarize what each session is about. When the framework reports enough data, each model call's tokens and context-window share are recorded, and the Context window dialog's Calls view becomes a per-call stacked-bar chart with pinned details, turn lanes, and grouping by turn, model, or framework; the chart palette aligns with the app-wide usage colors. The standard mcpServers client configuration used by other MCP hosts can now be imported (multi-server files let you pick one) and exported, with exported credentials and headers always replaced by ${NAME} placeholders. The composer gains a redo shortcut that completes the unified draft history shared by text, pasted text, and attachments. Under the hood, all networking honors the configured proxy mode uniformly, downloads are validated before opening, remote-access pairing is hardened, and main-process HTTP requests carry correlation ids that tie command, session, and run logs together.
✨ Highlights
- Generated and editable session details. New sessions get an auto-generated title and description from the first message, and you can edit them at any time — Home cards now show what each session is about instead of truncated first lines. (#1721)
- Per-call usage insights. When the framework reports enough data, each model call's tokens and context-window share are recorded, and the Context window dialog's Calls view becomes a per-call chart with pinned details and grouping by turn, model, or framework. (#1718, #1734, #1740)
- MCP client-config import/export. Import the standard
mcpServersJSON used by other MCP hosts (multi-server files let you pick one), and export either an Open Science Connector or an MCP client configuration — exported credentials and headers are always replaced with${NAME}placeholders. (#1698) - Composer draft redo. The standard redo shortcut (
Cmd/Ctrl+Shift+Z) reapplies the most recently undone draft state, completing the unified draft history shared by text, pasted text, and attachments. (#1699, #1694)
🚀 New Features
- Generated and editable session details — one generation attempt per session through a restricted no-tools runner, an edit dialog with character counters that supersedes a running generation, and a configurable session-details model. (#1721)
- Per-model-call usage details — validated call records persisted per turn, with Turns and Calls modes and grouping in the Context window dialog. (#1718)
- Per-call context-window chart — stacked input/cache/output bars per call, a three-metric summary, pinned detail panel, muted design-system palette, and turn lanes; history projection is deferred until the dialog opens. (#1734, #1740, #1745)
- MCP config transfer — import/export of standard MCP client configurations with credential placeholders, multi-server selection, and clear unsupported-format diagnostics. (#1698)
- Composer draft redo history with caret restoration and staged-upload lifecycle handling. (#1699, #1694)
- Correlated HTTP request diagnostics — each web and task request gets a correlation id that ties command, session, and run logs together, including boundary rejections. (#1703)
🔧 Improvements
- Downloads are validated and external links classified consistently before opening. (#1744)
- All networking — including downloads and spawned requests — honors the configured proxy mode uniformly. (#1753)
- Context-window history computation is deferred until the dialog opens, notification snapshot refresh bursts are coalesced, and user-skill startup scanning is deferred, shortening startup. (#1745, #1702, #1700)
- File-preview persistence avoids redundant writes and reads. (#1747)
- Codex MCP failures log their underlying reasons for faster diagnosis. (#1736)
- Stalled GitHub skill imports can be aborted. (#1714)
🐛 Bug Fixes
- Conversation history stays intact when sessions persist across concurrent writers — graph ownership is enforced before authority writes, unknown framework identifiers are preserved, and projections are validated. (#1746, #1722, #1726)
- Interrupted turns keep their usage records, and interrupted Codex sessions resume without empty-data failures. (#1738, #1706)
- Remote compute cancels pending approvals for deleted sessions, cancels poller work during shutdown, and hardens remote job coordination. (#1716, #1737, #1724)
- Connectors preserve scalar identifier inputs, validate bundled tool arguments, bound parser response resources, and restrict OAuth authorization URLs. (#1754, #1725, #1720, #1695)
- Providers guide connection failures toward settings, and Responses artifact completion produces diagnostics instead of silent failures. (#1723, #1756)
- Composer and queue hide the placeholder during IME composition and disclose the transient queue lifetime. (#1739, #1713)
- Notebook documents CommonJS module loading, compacts REPL errors in state context, and concurrent runtime settings updates no longer conflict. (#1755, #1751, #1707)
- Delegation validates delegate requests before admission, and restricted inference prompts are isolated. (#1735, #1732)
- Sessions and projects preserve activity timestamps when archiving, monotonic update timestamps, committed reviewer submission lifecycle, and structured clarification questions in session plans. (#1719, #1711, #1709, #1701)
- Remote access pairing authorization is hardened. (#1729)
- Renderer recovers asynchronous job and provider state and hardens lifecycle and file interactions. (#1728, #1743)
- Elicitation enforces form schema invariants so custom answer forms stay valid. (#1742)
- Resources enforce provider and file operation limits. (#1731)
📦 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, and SQLite-indexed summary-first session startup; selectable Claude Code, OpenCode, and Codex agent frameworks behind a shared provider turn-adapter interface; 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, deepseek-v4-flash-vision-exp, and a consolidated Scenario models card, per-model-call usage details with a per-call context-window chart, and a session-details model; 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, 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, harvest ceilings, and a host viewImage capability; frame-scoped Host JavaScript artifact queries with five-field agent summaries, session diagnostics, and model introspection with camelCase Host LLM results; immutable artifact versions with artifact lineage access and connector artifact provenance; multi-format previews with view-in-context navigation, plan-artifact rendering, and message-artifact Markdown previews; file-based skills with conversational creation, save-as-skill turns, direct user folder support, a redesigned management experience, an imported group menu, and confirmed bulk deletion; cross-resource catalog tags with favorites and drag ordering; permissioned scientific connectors with immutable invocation identities, generated local IDs, pre-registered OAuth clients and redirect URIs, a complete authorization lifecycle, standard MCP client-config import/export with credential placeholders, and aligned catalog interactions; opt-in review and bounded correction; personal specialist agent profiles with a scoped signed marketplace, governed installed packages, separated Installed and Marketplace browsing, capability icons, quick appearance editing, and capability-row navigation; scoped permission management; local folder access with cross-drive browsing; Chinese (Simplified and Traditional), Japanese, Korean, French, and Russian interfaces with multilingual README and contribution guides and localized dynamic release notes; turn-scoped conversation export as Markdown and PDF; global proxy settings with connectivity diagnostics; prominent update reminders with CLI-driven updates; a run-marks navigation rail; message-center alerts with project and task context; notifications with attention reasons; empty-conversation placeholder banners; a redesigned startup error notice and About with Help Center; contextual GitHub star prompts; a project-scoped command palette with session-number lookup; CLI Codex device login and project agent-context management; smooth live response rendering with bounded event admission and coalesced tool-burst IPC; collapsible side panels; split-view file preview; desktop notifications; a cross-surface notification message center; structured agent clarification cards; live session status; and session keyboard shortcuts. - 🚧 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.20.0
Full Changelog: https://github.com/aipoch/open-science/commits/v0.20.1