| Name | Modified | Size | Downloads / Week |
|---|---|---|---|
| Parent folder | |||
| aipoch-open-science-0.9.0-linux-x86_64.AppImage | 2026-07-31 | 241.8 MB | |
| aipoch-open-science-0.9.0-mac-arm64.dmg | 2026-07-31 | 221.8 MB | |
| aipoch-open-science-0.9.0-mac-arm64.zip | 2026-07-31 | 221.6 MB | |
| aipoch-open-science-0.9.0-mac-x64.dmg | 2026-07-31 | 229.6 MB | |
| aipoch-open-science-0.9.0-mac-x64.zip | 2026-07-31 | 229.5 MB | |
| aipoch-open-science-0.9.0-win-x64-setup.exe | 2026-07-31 | 175.4 MB | |
| aipoch-open-science-0.9.0-win-x64-setup.exe.blockmap | 2026-07-31 | 173.9 kB | |
| aipoch-open-science-0.9.0-win-x64.zip | 2026-07-31 | 243.2 MB | |
| aipoch-open-science_0.9.0_amd64.deb | 2026-07-31 | 177.0 MB | |
| arm64-mac.yml | 2026-07-31 | 375 Bytes | |
| latest-linux.yml | 2026-07-31 | 582 Bytes | |
| latest-mac.yml | 2026-07-31 | 543 Bytes | |
| latest.yml | 2026-07-31 | 383 Bytes | |
| SHA256SUMS.txt | 2026-07-31 | 850 Bytes | |
| x64-mac.yml | 2026-07-31 | 371 Bytes | |
| README.md | 2026-07-31 | 20.2 kB | |
| v0.9.0 source code.tar.gz | 2026-07-31 | 5.5 MB | |
| v0.9.0 source code.zip | 2026-07-31 | 6.3 MB | |
| Totals: 18 Items | 1.8 GB | 2 | |
Open Science v0.9.0
Define personal specialist agents with scoped capabilities, manage permissions with revocable grants, export entire conversations, and see exactly how many tokens each turn consumed — while DeepSeek's flash model goes native on the Responses API and framework switching, Windows upgrades, and the shared RPC contract get considerably harder.
Open Science is an open-source, model-agnostic AI workbench for scientific discovery — a self-hosted desktop app pairing a plan-and-execute agent with persistent compute, durable project/session storage, and inspectable research artifacts.
v0.9.0 is a feature release on top of v0.8.1. It brings the first concrete slices of two roadmap phases into shipped form: personal specialist agent profiles with scoped capabilities (Phase 3's "specialist roles"), and durable scoped permission management with global, project, and session-scoped allow grants (Phase 4's "scoped permissions"). Alongside those structural additions, it adds portable conversation and artifact export, per-turn token usage visibility, TIFF image previews, collapsible side panels, and native Responses API support for DeepSeek's flash model — while hardening conversation exports, Windows in-place upgrades, runtime framework isolation, and the shared RPC contract between processes.
✨ Highlights
- Personal specialist agents. Define reusable agent profiles with their own name, avatar, persona, and scoped capabilities — a full-access catalog or a symmetric skills/connectors whitelist — and bind one per session so the identity applies from the very first turn. Existing sessions can hot-switch specialists mid-conversation behind a reconfigure barrier that fails closed (draft preserved, no partial turn on failure). (#530)
- Scoped permission management. Tool-call approvals are no longer tied to a single conversation or an ACP-specific lifetime. Remembered allow grants now persist across global, project, and session scopes with qualifier matching, optimistic-concurrency revision checks, cascade cleanup, and runtime reconciliation — all managed from a Settings panel with filtering, per-row and family revoke, and an independently operable Undo stack. (#533)
- Export conversations as Markdown and PDF. A whole conversation can now be exported as a portable Markdown or PDF document through a normalized public export model (not the internal session JSON), with PDF rendered in an isolated hidden window under a strict CSP. Export is disabled for empty, running, or permission-waiting sessions and is desktop-only. (#531)
- Selective session-artifact downloads. Download all generated files from a session at once, or pick a subset through a selection dialog that loads every page, repairs an incomplete index, and saves with collision-safe naming and per-file failure reporting. (#534)
- Per-turn token usage. Each completed agent turn now shows a compact input / cache / output token footer under the final message, with cache reads and writes combined into a single cache total. The app-managed Codex ACP adapter was patched to accumulate every model request in the turn so tool-bearing turns are no longer underreported. (#540, [#553])
- Native Responses API for DeepSeek flash. DeepSeek's
deepseek-v4-flashnow routes through the native Responses endpoint instead of the Chat Completions bridge, whiledeepseek-v4-prostays bridged until DeepSeek ships Responses support for it. The resolution is model-aware at a single choke point, so all downstream decisions — validation, Codex config, UI compatibility — follow automatically. (#544) - TIFF image rendering. The image preview now handles TIFF files alongside the existing formats, with the same zoom and pan controls. (#529)
- Collapsible side panels. The workspace's left and right side panels can be collapsed to reclaim horizontal space, so a wide transcript or preview gets the room it needs without losing the panels entirely. (#523)
🚀 New Features
- Personal specialist agent profiles — user-defined agent profiles with scoped capabilities (full access or a skills/connectors whitelist), session binding from the first turn, mid-conversation hot-switching behind a reconfigure barrier, and unified identity application across Claude Code (preset append + skill whitelist), Codex, and OpenCode (per-turn prompt prefix). (#530)
- Scoped permission management — stable broker identities for persistable mutations, MCP tools, execution, file operations, and skill operations; one PermissionGrant table with global, project, and session scopes; central resolution of remembered grants across ACP, Connector, and Compute surfaces; broad-scope confirmation for project and global approvals; and a Settings panel with filtering, family revoke, monotonic optimistic updates, and a visible Undo stack. (#533)
- Conversation export as Markdown and PDF — whole-conversation export through a normalized public model, rendered as Markdown or PDF (in an isolated hidden window under CSP), with byte-length-bounded filenames and complete-prompt title preservation. (#531)
- Selective session-artifact downloads — a per-session Download all artifacts action with a selection dialog, batch saving to one destination folder, collision-safe naming, and per-file failure reporting without dropping successful downloads. (#534)
- Per-turn token usage — provider-neutral input, cache, and output totals attached to the final agent message of each prompt, persisted in the session, and rendered as a compact footer; the Codex ACP adapter accumulates every model request in the turn. (#540, [#553])
- Native Responses API for deepseek-v4-flash — a per-model Responses allow-list drives model-aware endpoint resolution so a single vendor entry can route some models natively and others through the bridge. (#544)
- TIFF image rendering — the image preview renderer now accepts TIFF files. (#529)
- Collapsible side panels — the workspace left and right panels collapse and expand without remounting. (#523)
🔧 Improvements
- Public product documentation received an SEO/GEO polish pass and had the stale Vision section removed, so the landing page and README stay aligned with the shipped product surface. (#541, [#543])
- Custom-provider Claude Code sessions no longer fire a WebFetch preflight request, removing a spurious network round-trip that could fail before the real turn starts. (#538)
- Project deletion now surfaces failures instead of silently swallowing them, so a cache or database error during cleanup is visible and retryable. (#542)
- Windows path-portability checks in CI are now deterministic and gated on pull requests, balancing PR speed against release validation. (#537, [#550])
🐛 Bug Fixes
- Conversation export safety — export is hardened against incomplete session state, normalized filenames respect Unicode character boundaries, and the PDF window enforces a strict CSP without loading remote resources. (#539)
- Windows in-place upgrade recovery — the update flow recovers when a Windows upgrade leaves the app in an unstartable state, so a failed auto-update no longer requires a manual reinstall. (#527)
- Runtime framework switching isolation — switching the active agent framework backend at runtime no longer leaks tool state, permissions, or MCP server registrations from the previous framework into the new session. (#517)
- Stale artifact session saves — a session can no longer persist a stale artifact reference after the artifact's owning session is deleted or migrated, preventing dangling pointers in the conversation graph. (#519)
- Specialist validation and main-agent switching — specialist profile validation is tightened (disabled, deleted, or corrupt profiles fail closed), and switching from a specialist back to the main agent no longer carries scoped capabilities forward. (#535)
- Shared RPC contract enforcement — the renderer-to-main RPC channel now enforces a shared type contract at the boundary, so an mismatched or stale call fails with a clear error instead of silently producing undefined behavior. (#547)
- Undo stack positioning — the permission management Undo stack no longer overflows the window bottom edge, keeping every action reachable. (#552)
- Advisory test stability on Windows — the advisory full test suite is stabilized against flaky Windows-specific timing and path assumptions. (#548)
📦 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
Downgrading. v0.9.0 is a data-compatible release; installing an older application over a newer data directory does not require a rollback command. To prepare an isolated, compatible copy for Open Science 0.7.3, quit the app and run:
open-science rollback-to-0.7.3 --yes
The command preserves newer data and activates a separate rollback data location; it does not rewrite the current state.
🧭 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; selectable Claude Code, OpenCode, and Codex agent frameworks; multi-provider model configuration with combined model/reasoning selection and native Responses API support for DeepSeek flash; persistent Python/R/REPL kernels and remote SSH execution; immutable artifact versions with inspectable audit evidence; multi-format previews including TIFF; file-based skills; permissioned scientific connectors; opt-in review and bounded correction; personal specialist agent profiles with scoped capabilities; scoped permission management with global, project, and session grants; conversation export as Markdown and PDF; selective session-artifact downloads; per-turn token usage; collapsible side panels; configurable storage; and installers for macOS, Windows, and Linux.
- 🚧 Partial: R remains managed-only; provider choice remains constrained by the active framework's endpoint compatibility; remote compute is SSH-only; skills remain local; specialist roles are personal-only (no cross-machine sharing); and review is opt-in and record-scoped.
- 🗺️ Roadmap: a unified model gateway, a public skills commons and cross-machine specialist sharing, 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, cloud GPU, and parallel sub-agent fan-out are not built yet.
- Provider choice is per framework, not one unified gateway. The available protocol depends on the selected agent backend.
- Specialist roles are personal-only. There is no shared public commons or cross-machine specialist forking yet.
- The task SDK is a first-generation surface. Task creation, polling, and artifact retrieval 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, @roxi3906, @LJLJ111, @EuanTop, @daanveer-tech, and everyone in Discord, X, and Discussions.
What's Changed
- feat(workspace): add collapsible side panels by @LJLJ111 in https://github.com/aipoch/open-science/pull/523
- fix(acp): isolate runtime framework switches by @ewen-poch in https://github.com/aipoch/open-science/pull/517
- fix(session-persistence): prevent stale Artifact session saves by @ewen-poch in https://github.com/aipoch/open-science/pull/519
- feat(previews): add TIFF image rendering by @ewen-poch in https://github.com/aipoch/open-science/pull/529
- feat(conversations): export conversations as Markdown and PDF by @EuanTop in https://github.com/aipoch/open-science/pull/531
- fix(ci): fetch micromamba from pinned release assets by @ewen-poch in https://github.com/aipoch/open-science/pull/532
- feat(permission-management): add scoped permission management by @ewen-poch in https://github.com/aipoch/open-science/pull/533
- feat(session-artifacts): add selective artifact downloads by @ewen-poch in https://github.com/aipoch/open-science/pull/534
- fix(specialist): harden validation and main-agent switching by @ewen-poch in https://github.com/aipoch/open-science/pull/535
- fix(windows-tests): make portability checks deterministic by @ewen-poch in https://github.com/aipoch/open-science/pull/537
- fix(claude-code): bypass WebFetch preflight for custom providers by @ewen-poch in https://github.com/aipoch/open-science/pull/538
- fix(conversations): harden conversation exports by @ewen-poch in https://github.com/aipoch/open-science/pull/539
- feat(workspace): show turn token usage by @ewen-poch in https://github.com/aipoch/open-science/pull/540
- docs: README SEO/GEO polish pass by @daanveer-tech in https://github.com/aipoch/open-science/pull/541
- fix(projects): report project deletion failures by @ewen-poch in https://github.com/aipoch/open-science/pull/542
- docs: remove Vision section from README by @daanveer-tech in https://github.com/aipoch/open-science/pull/543
- feat(deepseek): add native Responses API support for deepseek-v4-flash by @ewen-poch in https://github.com/aipoch/open-science/pull/544
- fix(windows): stabilize advisory full test by @ewen-poch in https://github.com/aipoch/open-science/pull/548
- fix(web-rpc): enforce shared RPC contract by @ewen-poch in https://github.com/aipoch/open-science/pull/547
- ci(windows): gate path portability on pull requests by @ewen-poch in https://github.com/aipoch/open-science/pull/550
- fix(permissions): keep Undo stack above window bottom by @ewen-poch in https://github.com/aipoch/open-science/pull/552
- fix(agent-usage): aggregate complete prompt token usage by @ewen-poch in https://github.com/aipoch/open-science/pull/553
Full Changelog: https://github.com/aipoch/open-science/compare/v0.8.1...v0.9.0
What's Changed
- fix(files): show filter menu and tooltips above the expanded files modal by @roxi3906 in https://github.com/aipoch/open-science/pull/518
- fix(logging): record renderer lifecycle failures by @ewen-poch in https://github.com/aipoch/open-science/pull/524
- fix(notebook): activate R inventory and log installers by @ewen-poch in https://github.com/aipoch/open-science/pull/520
- fix(reviewer): refresh message branch review status by @ewen-poch in https://github.com/aipoch/open-science/pull/525
- fix(opencode): use stable app MCP server names by @ewen-poch in https://github.com/aipoch/open-science/pull/526
- fix(windows): make full test suite portable by @ewen-poch in https://github.com/aipoch/open-science/pull/528
- fix(update): recover Windows in-place upgrades by @ewen-poch in https://github.com/aipoch/open-science/pull/527
- fix(persistence): surface startup and session storage failures by @ewen-poch in https://github.com/aipoch/open-science/pull/505
- feat(specialist): add personal specialists with capabilities and session binding by @wen2zhou in https://github.com/aipoch/open-science/pull/530
- fix(acp): isolate runtime framework switches by @ewen-poch in https://github.com/aipoch/open-science/pull/517
- feat(previews): add TIFF image rendering by @ewen-poch in https://github.com/aipoch/open-science/pull/529
- fix(session-persistence): prevent stale Artifact session saves by @ewen-poch in https://github.com/aipoch/open-science/pull/519
- fix(ci): fetch micromamba from pinned release assets by @ewen-poch in https://github.com/aipoch/open-science/pull/532
- fix(specialist): harden validation and main-agent switching by @ewen-poch in https://github.com/aipoch/open-science/pull/535
- feat(session-artifacts): add selective artifact downloads by @ewen-poch in https://github.com/aipoch/open-science/pull/534
- feat(workspace): add collapsible side panels by @LJLJ111 in https://github.com/aipoch/open-science/pull/523
- fix(windows-tests): make portability checks deterministic by @ewen-poch in https://github.com/aipoch/open-science/pull/537
- feat(conversations): export conversations as Markdown and PDF by @EuanTop in https://github.com/aipoch/open-science/pull/531
- fix(claude-code): bypass WebFetch preflight for custom providers by @ewen-poch in https://github.com/aipoch/open-science/pull/538
- fix(conversations): harden conversation exports by @ewen-poch in https://github.com/aipoch/open-science/pull/539
- docs: README SEO/GEO polish pass by @daanveer-tech in https://github.com/aipoch/open-science/pull/541
- docs: remove Vision section from README by @daanveer-tech in https://github.com/aipoch/open-science/pull/543
- fix(projects): report project deletion failures by @ewen-poch in https://github.com/aipoch/open-science/pull/542
- feat(deepseek): add native Responses API support for deepseek-v4-flash by @ewen-poch in https://github.com/aipoch/open-science/pull/544
- feat(workspace): show turn token usage by @ewen-poch in https://github.com/aipoch/open-science/pull/540
- fix(web-rpc): enforce shared RPC contract by @ewen-poch in https://github.com/aipoch/open-science/pull/547
- fix(windows): stabilize advisory full test by @ewen-poch in https://github.com/aipoch/open-science/pull/548
- ci(windows): gate path portability on pull requests by @ewen-poch in https://github.com/aipoch/open-science/pull/550
- feat(permission-management): add scoped permission management by @ewen-poch in https://github.com/aipoch/open-science/pull/533
- fix(permissions): keep Undo stack above window bottom by @ewen-poch in https://github.com/aipoch/open-science/pull/552
- fix(agent-usage): aggregate complete prompt token usage by @ewen-poch in https://github.com/aipoch/open-science/pull/553
- chore(release): bump version to 0.9.0 by @ewen-poch in https://github.com/aipoch/open-science/pull/556
New Contributors
- @EuanTop made their first contribution in https://github.com/aipoch/open-science/pull/531
Full Changelog: https://github.com/aipoch/open-science/compare/v0.8.1...v0.9.0