v0.19.0
Open Science v0.19.0
An xAI (Grok) OAuth subscription provider, governed Marketplace-installed Specialists, notebook cross-run dependency tracking with tree-sitter analysis, mid-turn Send now through native follow-up steering, message-artifact previews from Markdown, compaction transcript boundaries, SQLite-indexed session metadata for fast summary-first startup, terminated read-only notebook previews, a redesigned About with Help Center, an archive undo shortcut, custom model token limits, a complete OAuth connector lifecycle, and the deepseek-v4-flash-vision-exp model — alongside coalesced tool-burst IPC, batched event drain, and a long list of notebook, composer, workspace, 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.19.0 is a feature release. A new xAI (Grok) OAuth provider lets one subscription account drive Grok 4.6 across Claude Code's Anthropic protocol, OpenCode's Chat Completions, and Codex's Responses — with app-owned device authorization, main-process token refresh, and local count-token approximation. Marketplace-installed Specialists become governed packages: publisher-owned content is read-only, updates require higher SemVer against an exact content baseline, Installed groups All/Custom/Marketplace/Built-in, and update/copy/uninstall share one managed lifecycle. Notebooks gain cross-run dependency tracking: Python and R runs are analyzed in-process with tree-sitter WASM, tracking aliases, mutations, classes, and library effects so later outputs are marked stale when their variables changed. Send now on a queued message no longer interrupts the live turn — a host compatibility layer routes mid-turn additions through native follow-up steering where the framework provides one, and falls back gracefully where it does not. Message bodies preview their artifacts: managed file links and Markdown images open in the existing preview workbench with zoom affordances. Context compaction renders as a clear transcript boundary instead of a tool row. Session startup is summary-first: query metadata and per-turn usage are indexed in SQLite, so navigation, counts, search, and analytics no longer parse every session file at launch. Terminated notebook previews become read-only. About is redesigned into an app-identity row with Help Center and release-notes resources, plus a feedback entry. Custom providers gain separate context-window, input-cap, and output-cap token limits with editable presets, and custom reasoning controls simplify to what the model supports. OAuth connectors complete their lifecycle: first-run authorization in a cancellable dialog, transient recovery prompts at runtime, and pre-registered redirect URIs. deepseek-v4-flash-vision-exp joins the catalog. On the performance side, tool bursts coalesce into renderer IPC batches, live non-text events drain in batches, session-renderer history scans drop to one per stream batch, and installer logs batch with capped renderer retention.
✨ Highlights
- xAI (Grok) OAuth subscription. One subscription account works across all three agent protocols — Claude Code (Anthropic Messages), OpenCode (Chat Completions), and Codex (Responses) — through the xAI Responses API. Device-code sign-in from Settings and onboarding, main-process token refresh with a single 401 retry, locally approximated Anthropic count-tokens, and Grok 4.6 as the default model. (#1554, #1556)
- Governed Marketplace Specialists. Marketplace-installed packages carry an explicit
marketplaceorigin: publisher content is read-only (icon, color, and enabled remain editable), manual ZIP overwrite is blocked, updates require higher SemVer against an exact content baseline, and Installed groups All / Custom / Marketplace / Built-in with a managed detail view — quiet update availability, Create editable copy, separate enable/disable, and tailored uninstall confirmation. (#1600) - Notebook cross-run dependency tracking. Completed Python and R runs are analyzed in-process with tree-sitter WASM — aliases, root-object mutations, classes, S4/R6 objects, copy/reference semantics, and common scientific-library effects — so outputs captured from earlier variable states are marked
stale,clear, orunknowninstead of silently misrepresenting current state. (#1553) - Mid-turn Send now. Sending a queued message while a turn runs no longer interrupts it: a host compatibility layer uses the framework's native follow-up steering (
_session/steering) where available and never opens a second prompt interaction; where steering is absent, fallbacks degrade gracefully instead of cancel-and-resend. (#1566, #1593, #1592, #1590) - Summary-first session startup. Session query metadata and per-turn usage are duplicated into SQLite as a materialized view; healthy startup reads summaries and loads a session file only when that session is opened or exported — startup no longer parses every session JSON. (#1618, #1631)
🚀 New Features
- xAI (Grok) OAuth subscription provider — app-owned device authorization with a single subscription account; Anthropic Messages, Chat Completions, and Responses traffic routed through the xAI Responses API; main-process token refresh with one 401 retry; local
o200k_basecount-token approximation; device-code sign-in in Settings and onboarding across all six locales;grok-4.6default. (#1554, #1556) - Governed Marketplace-installed Specialists — additive
marketplaceorigin with read-only publisher content; privileged package transactions preserving local presentation; SemVer-guarded updates against exact content baselines; All/Custom/Marketplace/Built-in Installed grouping; managed detail with quiet updates, editable copy, separate enable/disable, and tailored uninstall; provenance cleanup and guarded historical backfill. (#1600) - Notebook cross-run dependency tracking — tree-sitter WASM analysis of Python and R runs in-process; alias, mutation, class, object-model, and library-effect tracking;
clear/stale/unknowndependency states surfaced on outputs. (#1553) - Mid-turn Send now via native follow-up — queued messages join the live turn through framework steering where available, with framework-aware fallbacks; permission responses defer queued sends correctly and resume failures surface on the queued item. (#1566, #1593, #1592, #1590, #1589)
- Message-artifact previews — managed file links and Markdown artifact images in message bodies resolve by stable artifact/version id, managed path, or unique filename and open in the preview workbench with inline zoom; generated cards gain a preview affordance. (#1587, #1597)
- Notebook preview improvements — figures preview inside tool groups; the current-session preview follows latest output; the preview opens when the notebook becomes available; terminated notebooks show read-only previews. (#1605, #1564, #1545, #1599)
- Compaction transcript boundaries — ACP compaction renders as a non-interactive boundary with rules, a compacting glyph, and continuity explanation; active/completed/failed/cancelled each get distinct semantics, and the context-window history uses the same mark. (#1581)
- Archive keyboard undo — the standard desktop undo shortcut restores the latest archive. (#1595)
- About redesign and feedback entry — app identity and update row with full-width Help Center and release-notes resources; a feedback entry in Settings. (#1551, #1588)
- Custom model token limits — separate
contextWindow, optionalmaxInputTokens, and optionalmaxOutputTokenswith editable preset comboboxes; custom reasoning controls simplify to model-supported shapes. (#1525, #1546) - Complete OAuth connector lifecycle — first-save authorization in a cancellable dialog reused for sign-in, failure recovery, retry, and finish-later; runtime invalidation shows a session-local action toast; pre-registered OAuth redirect URIs supported. (#1560, #1563)
- deepseek-v4-flash-vision-exp — the vision-capable flash model joins the DeepSeek catalog. (#1538)
🔧 Improvements
- Session metadata is indexed in SQLite for summary-first startup; session-renderer history scans drop from per-batch to one per stream. (#1618, #1631, #1626)
- Tool bursts coalesce into renderer IPC batches and live non-text events drain in batches, reducing renderer load during dense activity. (#1557, #1555)
- Installer logs batch with capped renderer retention. (#1606)
- Full-suite Vitest worker pool and long-conversation E2E screenshots stabilized. (#1625, #1627, #1628)
- The v0.18.2 README callouts were clarified. (#1634)
🐛 Bug Fixes
- Agent identity and capability scope isolated. (#1617)
- Live Send now without hung resume or interrupt. Send now keeps the live turn responsive without leaving resume or interrupt hanging. (#1613)
- Notebook kernel routing and tabs — user input routes to the selected kernel; only used kernel tabs show; idle input stays enabled during refresh; the R namespace survives cancellation; historical runs analyze without a live interpreter; parser runtimes load lazily; kernel protocol output lines are bounded; malformed host connector calls and unknown environment languages are rejected at the boundary; the macOS developer-tools Python stub is skipped; approved run status is preserved during state reads. (#1604, #1619, #1615, #1612, #1570, #1571, #1569, #1616, #1621, #1568, #1540, #1537)
- Codex and Claude provider failures — incompatible and transient Codex ACP failures are handled; the legacy Codex provider slot negotiates; persisted and live Claude API connection failures no longer surface as reports. (#1594, #1586, #1584, #1583)
- Composer and queue — slash shortcuts stay visible; Specialist selection shows while switching; messages show during runtime admission; the retained plan-approval revision refreshes. (#1633, #1630, #1601, #1610)
- Delegation — imported subagent history marks incomplete records; replayed activity collisions are prevented. (#1609, #1520)
- Updater — in-flight checks are awaited before downloading; the macOS update handoff is preserved. (#1632, #1539)
- Startup — database checks separate from composition delays; the loading animation stays continuous; catalog recovery overlays are dismissible. (#1598, #1565, #1591)
- Sessions and workspace — composer model choices scope to sessions; an unsaved local title survives a newer remote upsert; overlapping idle sends reject without failing the live turn; stale registry reachability refreshes on window focus; Specialist switch recovery is exposed. (#1552, #1579, #1577, #1602, #1543)
- Settings — Remote navigation simplified; in-flight optimistic preferences survive
onChanged. (#1629, #1573) - Stale-state rejection — preview snapshots, tag mutation snapshots, and granted-folder refreshes reject stale reads. (#1578, #1574, #1575)
- Artifacts, compute, connectors — the default repository wires into finalization recovery; retried job submissions deduplicate; transient custom MCP connections recover; specialist list rows and controls align; context navigation disables during deletion; unexpected action failures localize. (#1542, #1541, #1544, #1611, #1607, #1608, #1580)
- Notebook static context kept within budget. (#1572)
📦 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, reversible archiving with keyboard undo, project pinning, collapsed long user messages, persistent side conversations, 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, 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 deepseek-v4-flash-vision-exp; 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, 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, and aligned catalog interactions; opt-in review and bounded correction; personal specialist agent profiles with a scoped signed marketplace, governed installed packages, instant cached 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; 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; 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.