0.12.0 — 2026-06-07
Added
- Open your files from anywhere — while a device is running Oyster, app.oyster.to can open its artefacts live: notes, docs and diagrams render right in the remote view, no publishing needed. Offline devices fall back to the read-only listing.
- Search transcripts from anywhere — Cmd+K at app.oyster.to now searches the sessions on your online devices, with each hit labelled by the device it came from.
- Device switch in the remote view — a topbar chip shows which devices are live; disable or re-enable live access per device with one click (sync is unaffected).
- Your artefact library appears in the cloud remote view — the Artefacts tab at app.oyster.to now lists everything in your registry (read-only), with a chip showing which device each artefact lives on. Published artefacts stay the openable ones.
Changed
- Sessions list shows everything — the Sessions tab lists all sessions; no more "Show more" clicks.
- Better on small windows — compact rows, tighter spacing and a cleaner layout when the window is narrow.
Fixed
- Untitled sessions get a name — sessions without a title now show their folder name instead of a raw ID.
- Cloud remote view shows transcripts — opening a session at app.oyster.to now displays the conversation (with live tail for active sessions) instead of a "transcript isn't on this device" notice.
0.11.0 — 2026-06-05
Added
- Sessions show what they produced. Each session now lists the docs, decks, tables, and diagrams it created or worked on — filled in automatically from your agent's activity, with no manual tagging.
- Find sessions by the files they touched. Search (Cmd+K) now matches a session by any file name your agent read or edited — search
App.jsxto surface every session that worked on it, even when the name never appears in the conversation. - Move a project between spaces — or out of one. A project's ⋯ menu now offers "Move to space…": relocate it (and its sessions) to another space, or remove it from its space entirely. Removed projects stay on Home, ready to re-file.
- Ask to see a past session, and Oyster opens it. Say "show me the session about X" and the agent finds it and opens it in the inspector — jumping straight to the relevant moment when it can. It can also list your recent sessions on request.
- Filter artefacts by kind. The Artefacts section gains a Kind filter — narrow to apps, decks, diagrams, notes, tables, or wireframes, alongside the existing source filters.
- Ask from anywhere. Search (Cmd+K) gains an "Ask Oyster" row — type a question, hit Enter, and the Ask panel opens with the answer streaming. No-result searches offer it too.
Changed
- Ask Oyster moves to a side panel — chat now opens from the ✦ Ask button in the top bar and slides in beside your work, instead of a bar pinned to the bottom of every page. It knows which space and project you're looking at.
- Bottom chat bar removed — and with it, typing-anywhere-to-chat and the ⚡ terminal shortcut.
- One surface, three tabs — Sessions, Artefacts and Memories now sit in tabs below your projects, scoped by the selected space and project, with a scope crumb showing where you are.
- Vault joins the project grid — artefacts created in Oyster itself appear under a Vault card on Home, alongside your repos.
- Unassigned pill retired — projects without a space now appear on Home with everything else.
- Projects collapse to a single row. The home Projects strip now shows just the top row by default, with "Show all" to expand — less scrolling to reach your sessions.
Fixed
- Multiple Oyster tabs no longer freeze the app. Each tab held two permanent event streams, hitting the browser's per-site connection limit at three tabs — every request then stalled silently. One stream per tab now, so working across several tabs is comfortable.
- Sessions table names the repo — the project column shows the repository name instead of the space, and steps aside when a project is selected.
- Onboarding reflects what you've actually done. "Publish your first artefact" now ticks only when you have a live publication (and un-ticks if you unpublish), and the setup icon fills as a progress ring — becoming the 🦪 only once every step is done.
- Artefacts table view has column headers. The table view now labels its columns (Name · Space · Kind · Created), matching the sessions list.
0.10.0 — 2026-05-24
Added
- INVADERS — new arcade game. Classic fixed-shooter; 5 rows of marching aliens, destructible shields, bonus UFO, 3 lives, top-10 leaderboard.
Changed
- Oyster opens to your work, not to a setup wizard. First launch no longer requires an AI provider, no longer demands you create a space, and shows your sessions on the home screen immediately. Set-up surfaces only appear when something is genuinely missing.
- Home redesign. Project tiles now feature a
+ New sessionCTA. The grid shows your busiest-by-relevance projects (live work first, then waiting, then recent activity) and collapses to the top 8 with "Show all" to expand. The sessions section defaults to a richer two-line view (project, agent, artifacts inline) with a Compact toggle. An "Organise into spaces" affordance triggers an AI-suggested grouping when you're ready to file projects.
0.9.8 — 2026-05-21
Changed
- Clearer session status dots. Oyster-owned sessions stay purple when active; the dot picks up an amber centre when the agent is awaiting your input. Externally observed sessions show green when active and amber when idle. Red means the session appears disconnected or ended badly; grey "dormant" means it has been quiet long enough that the urgency has decayed. A session is only marked truly "done" when a clean
/exit(or a clean PTY shutdown) is observed.
0.9.7 — 2026-05-21
Changed
- Cmd+K transcript hits are now ordered by recency, and the list goes up to 50. When scanning Spotlight for "that session I had last week about X", the most-recent matching session sits at the top regardless of FTS rank; within each session the surfaced snippet is still the best match.
Fixed
- Boot is fast again on large transcript databases. Search-index health checks and one-time data migrations no longer block startup — they run after the UI is ready. Users with multi-million-row transcript histories who were seeing 30+ second hangs should boot in well under a second.
- Cmd+K search no longer stalls on large session databases. Spotlight stays responsive on multi-GB session histories — narrow queries return in tens of milliseconds, and the worst-case 2-char prefixes against hundreds of thousands of matches drop from 15+ seconds to a few. The search input also waits a beat longer before firing so a single fast-typed word doesn't cascade through multiple intermediate queries.
0.9.6 — 2026-05-21
Fixed
/renameand other slash-command machinery no longer leak into the transcript. A second path for Claude Code's internal wrapper tags — emitted asSYSTEMrows under thelocal_commandsubtype — is now hidden from the Session Inspector and excluded from Spotlight transcript search. Existing sessions clean up on next start.
0.9.5 — 2026-05-20
Added
- New session, from anywhere. A
+ New sessionpill in the topbar (or⌘/) opens a searchable palette covering every project across every space. Inside a single-project space, it just starts — no extra clicks. - Fullscreen terminals show tabs across live terminals. Maximise a terminal and a tab bar appears with one tab per open terminal — click to switch without leaving fullscreen.
- Click an optional setup-checklist circle to tick it. Inside the setup popover, the circles next to Publish your first artefact / Connect another agent / Import memories are now interactive — mark a step done without going through the Show me how sub-guide. Click again to untick.
- Oyster Arcade: Space Jumper joins the cabinet, with 9 more coming-soon games. Have a play at arcade.oyster.to.
Changed
- Sessions list reads as a proper table. Column headers (Project · Title · Agent · Last active) replace the per-row prefix; rows just show the relative time (
2m,5h,44d) and let the status dot carry the state. Older sessions stay in days-elapsed instead of jumping to a calendar date. - In-app terminals get a black chrome. Claude/OpenCode terminal panels match the website's terminal mock — black titlebar, deep-black body, teal cursor, and macOS traffic-light hover colours on the header buttons.
- Project tile menu uses "New session". The first item in a project tile's ⋯ menu is now New session (was Launch Claude here), matching the topbar pill. A divider separates it from Rename / Merge into / Delete.
- Setup chip lives next to "+ New session". The Oyster setup affordance moved out of the floating top-right corner into the home breadcrumb as its own chip. Mid-progress shows a gold ◐ half-circle; once everything's done the chip collapses to just a 🦪 oyster — your "found the pearl" moment.
- Untitled sessions read as a soft italic Untitled instead of "(no title yet)" — across the sessions list, tile view, Session Inspector, and running-terminals popover.
Removed
- Per-row ⋯ menu on sessions list. The unused Move to project / Send to space vault menu came off — same operations are reachable from the Session Inspector and MCP.
0.9.4 — 2026-05-19
Added
- Live terminal mission control. A new Running N pill in the topbar lists every Claude session currently running in Oyster — click a row to jump back to it, ■ to stop (with a first-time Don't ask again confirmation). Closing × on a Claude terminal panel now means minimise — the conversation keeps going, and you can find it again from the pill, the Sessions list, or the space pills which now show a running count.
- Fork-safe Resume. Clicking Resume here on a session that's still active outside Oyster now warns that resuming would fork the conversation, instead of silently spawning a duplicate
claude --resume.
Fixed
- Slash-command machinery no longer clutters the session transcript. Claude Code's internal wrapper tags (
<command-name>,<system-reminder>,<local-command-stdout>) are now hidden from the Session Inspector and excluded from Spotlight transcript search. Existing sessions clean up on next start. - Links inside shared artefacts now click through. External links in published prototypes (
target="_blank",window.open) open as expected instead of silently failing — the share.oyster.to iframe now permits popups, matching CodePen/JSFiddle/StackBlitz.
0.9.3 — 2026-05-19
Added
- Launch and resume Claude Code sessions inside Oyster. Launch Claude here on a project tile starts a fresh
claudesession in the folder, inside an in-app terminal. Resume here on a Session Inspector continues that conversation viaclaude --resume. The cross-device Resume dialog now offers Open in Oyster alongside Copy command. - Sign in to view your own protected shares. A password-protected share now offers a "Have access? Sign in to view" option alongside the password field; if you're signed in to Oyster as the owner, you skip the password.
Changed
- Cmd+K results group by session. Searching transcripts now returns one row per matching session — title, snippet preview, date, and space — instead of one row per matching line. A
+Nbadge on the title shows how many more matches the session contains; opening still scrolls the inspector to the best match.
0.9.1 — 2026-05-16
Added
- Filter cmd+K by type or space. Type
@session,@artefact, or@memoryto scope by type;#<space>to scope by space. Filters appear as removable chips inside the input; Backspace at an empty input pops the most-recent chip. - Memory is searchable from cmd+K. Saved memories appear alongside sessions and artefacts in Spotlight results.
- Recent artefacts in empty cmd+K. Opening Spotlight without typing shows your most-recent artefacts under Recent — a quick jump back when you can't remember the name.
Changed
- Top bar is now one sticky pill. Account and space switcher share a single bar pinned to the top of every view. Signed-in shows an avatar (email + sign-out in the click-menu); signed-out shows a Sign in pill in the same slot.
Fixed
- Artefacts survive folder renames. When a file's folder moves, Oyster now reattaches the artefact to its new location via the project's other known paths instead of removing it from the surface. On first start after upgrading, artefacts that were previously dropped this way are restored automatically.
- Sessions that wrote a file before it became an artefact are now linked. Registering an artefact backfills created / modified / read links from recent session activity, so the surface attributes provenance correctly even when the file was written via raw tools first and registered later.
0.9.0 — 2026-05-16
A project's identity now lives in a .oyster/id file inside its folder. Renaming, moving, or git pushing the folder no longer orphans its sessions — the marker travels with the folder and is recognised everywhere. Eleven sessions across three beta cycles (0.9.0-beta.0/1/2) collapsed into this release.
Added
- Project identity that survives renames and moves. Each project's identity now lives in a
.oyster/idfile inside its folder (a UUID). Renaming, moving, orgit pushing the folder to another machine no longer orphans its sessions — the marker travels with the folder and Oyster recognises it everywhere. - Move a session to a different project. When a session ran in the wrong cwd or got orphaned, the per-row menu reassigns it. Same operation is available to agents via the
move_sessionMCP tool withproject_id. - Merge two project tiles into one. The tile's actions menu now offers Merge into… — collapses duplicate tiles by moving sessions and artefacts onto the chosen target, rewriting
.oyster/idon the source folders so they point at the kept project's UUID, and soft-deleting the source. Cross-space merges are allowed; the result lives in the target's space. - Git-repo badge on project tiles. A small icon prefixes the project name when its folder is a git repo (detected via
.git). No status / dirty indicator — just legibility. - "No folder" badge on orphaned tiles. Projects whose cached folder is missing on this machine (renamed, unmounted) show an amber no folder chip. Tooltip shows the cached path so you can see where it used to live. Candidates for merging into a live project.
Changed
- "Folders" → "Projects". The tiles you attach to a space are now projects, named after the folder by default. Identity-based instead of path-based; the underlying shape is the same.
- One Oyster per machine. Dev mode and the installed package share a single workspace at
~/Oyster/. Starting a second Oyster is refused with a clear "already running on port X (pid Y)" message. SetOYSTER_USERLAND=/some/pathfor an isolated worktree.
Removed
- The legacy "fix-it-up" surface for folder paths. Update folder location, Merge duplicate folders, the per-session Let Oyster decide item, and the Re-binding N sessions to <folder>… toast are all gone — folder renames are invisible to Oyster now, so none of those repair tools have a job.
- MCP:
detach_source,set_source_path,consolidate_sources,scan_space. The project model gathers up orphan sessions when you attach a folder (or viamove_session); the source-shaped tools that managed path bindings are no longer needed. - Sprint-2 demo builtins out. Zombie Horde (a browser game) and The World's Your Oyster (a positioning deck that contradicted the current framing) no longer ship in fresh installs. Existing installs keep their copies in
~/Oyster/apps/— archive them from the surface if you don't want them.
Fixed
- Sessions in a renamed folder no longer orphan. The bug that motivated the project-identity refactor. Identity now lives in
.oyster/idinside the folder; moving or renaming the folder takes the identity along with it. - Sessions stay bound to their project across restarts. Boot-time repair syncs
sessions.space_idandartifacts.space_idfrom the project's space — rows with stale space_id no longer surface as orphans in Everything else. - Tilde paths work in the "Add project" form.
~/Dev/fooexpands to the real path before the marker is written, the cache is seeded, and orphan sessions are claimed. - Windows: same folder no longer shows as two orphan tiles. A folder used to appear twice in Everything else — once as
C:/Users/...and once asC:\Users\...— depending on whether the session was local or pulled from another device. They now collapse into a single tile. - Home's table view matches the icon view for published artefacts. Cloud-only rows previously hid the artefact's real space behind a literal "Cloud" label and showed no publish chip. The table now shows the underlying space and the same On cloud / Published chip the icon view does.
0.8.2 — 2026-05-14
UI polish, sharper positioning, quieter background sync, and the first wave of Sprint-2 surgery. Headline changes from the 0.8.2-beta cycle plus a couple of final tweaks:
Added
- Active-writer chip on cross-device sessions. When a session is handed off to another device, Home shows a
Now active on <device>chip alongside the origin chip; it updates live as new turns arrive.
Changed
- New positioning across every surface. Hero copy now reads "Mission control for your agents." with a supporting line about keeping your AI work organised, synced and ready to share across devices. "OS" is dropped from public copy; README and oyster.to social previews regenerated.
- Session metadata sync coalesces under load. Pushes now batch on a ~1-second debounce with a 5-second cap during sustained activity; transcript bytes still push immediately on terminal state.
- Quieter terminal logs when offline. First failure prints a single
cloud unreachableline; subsequent identical failures are suppressed with a 15-minute heartbeat. Aback onlineline confirms recovery. Non-network errors still surface their full trace. - Quieter session-sync logs during conversations. Single-row metadata pushes are now silent; multi-row pushes and any with conflicts or rejects still log.
- Empty cross-device sessions hidden from Home. Aborted
claudeinvocations without real content no longer clutter the list. - Device labels backfill on upgrade. First boot re-pushes your sessions with their friendly device name; labels show up everywhere within a few minutes.
Removed
- No more AI-generated artefact icons. New artefacts now use the built-in kind glyph (notes, app, diagram, etc.) instead of a fal.ai-generated image. Existing icons stay in place;
FAL_KEYis no longer needed.
Fixed
- Attaching a folder no longer freezes the UI. Big folders used to hang the Attach button until a page reload; the scan now runs in the background so the response returns immediately and tiles surface via SSE as they're found. Mutation requests also time out after 15s rather than waiting indefinitely.
- Cross-device sessions open their inspector instead of erroring. Sessions originating on another device now load via the cross-device cache; the inspector shows a "Resume to view transcript" notice until the transcript is reassembled locally.
- Boot banner stays readable on narrow terminals. When the terminal isn't wide enough for the boxed banner, Oyster now drops the box and stacks the URLs on separate lines instead of letting the rails wrap.
0.8.2-beta.0 — 2026-05-14
Added
- Active-writer chip on cross-device sessions. When a session is handed off to another device, Home shows a
Now active on <device>chip alongside the origin chip; it updates live as new turns arrive.
Changed
- New positioning across every surface. Hero copy now reads "Mission control for your agents." with a supporting line about keeping your AI work organised, synced and ready to share across devices. "OS" is dropped from public copy; README and oyster.to social previews regenerated.
- Session metadata sync coalesces under load. Pushes now batch on a ~1-second debounce with a 5-second cap during sustained activity; transcript bytes still push immediately on terminal state.
- Quieter terminal logs when offline. First failure prints a single
cloud unreachableline; subsequent identical failures are suppressed with a 15-minute heartbeat. Aback onlineline confirms recovery. Non-network errors still surface their full trace. - Quieter session-sync logs during conversations. Single-row metadata pushes are now silent; multi-row pushes and any with conflicts or rejects still log.
- Empty cross-device sessions hidden from Home. Aborted
claudeinvocations without real content no longer clutter the list. - Device labels backfill on upgrade. First boot re-pushes your sessions with their friendly device name; labels show up everywhere within a few minutes.
Fixed
- Attaching a folder no longer freezes the UI. Big folders used to hang the Attach button until a page reload; the scan now runs in the background so the response returns immediately and tiles surface via SSE as they're found. Mutation requests also time out after 15s rather than waiting indefinitely.
- Cross-device sessions open their inspector instead of erroring. Sessions originating on another device now load via the cross-device cache; the inspector shows a "Resume to view transcript" notice until the transcript is reassembled locally.
0.8.1-beta.5 — 2026-05-12
Added
- Cross-device session hand-off without forking. Resuming a backed-up session on another device now continues the same conversation — the transcript timeline stays single, and ownership transfers cleanly to whichever device is currently writing. Catching up only fetches the new bytes instead of re-downloading the full transcript.
- Conflict detection on resume. If a device has local edits that aren't in the cloud copy, Oyster blocks the resume and surfaces the conflict instead of silently overwriting your work.
0.8.1-beta.4 — 2026-05-12
Fixed
- Cross-device session list no longer self-mirrors. A first-boot edge case after the device-tagging fix in 0.8.1-beta.3 caused your own sessions to appear briefly in your own cross-device cache. The cache now stays a faithful "other devices only" view, and any leftover ghost rows from earlier installs are cleaned up automatically on next start.
0.8.1-beta.3 — 2026-05-11
Fixed
- Chat replies stream again, and the boot console is quiet. A recent AI-engine update silently broke the live event stream, which made assistant replies fail to render and flooded the terminal with reconnect messages. Both are working again.
- Cross-device session list refreshes automatically. Sessions you back up on one Pro device now appear on your other devices within seconds, without needing to sign out and back in.
- Sessions remember which device they came from. Each backed-up session is now tagged with the device that uploaded it, so a future "Resume on this device" experience can show "from MacBook Pro" rather than just an unlabeled card. Sessions backed up before this release are re-tagged automatically the next time Oyster starts.
0.8.1-beta.2 — 2026-05-11
Added
- Pick up sessions on your other devices (preview). Sessions backed up on one Pro device now appear in the API as cross-device entries on your other devices. A new local endpoint reassembles a chosen session's encrypted transcript onto disk so you can run
claude --resume <id>on a second machine. The UI surface arrives in the next release.
0.8.1-beta.1 — 2026-05-11
Fixed
- Conversation backup uploads reliably from the first session. Older transcripts discovered at startup are now backed up in the same boot rather than waiting for the next sync tick.
0.8.1-beta.0 — 2026-05-11
Added
- Conversation backup for Pro users. Claude Code session transcripts now stream to your Oyster cloud as encrypted delta chunks. Each chunk is sealed with a key derived per user, so transcripts stay private to your account. Cross-device resume — picking up a session on your other machine — comes in a follow-up release.
0.8.0 — 2026-05-09
Memories follow you across Pro devices. Headline changes from the 0.8.0-beta cycle:
Added
- Memories follow you across Pro devices. Anything you remember on one Pro device shows up on every other Pro device signed into the same account. Forgetting and deletion propagate too. Only memories created while signed into your bound Pro profile sync — pre-existing local memories and anything created on a free account stay local.
- Refresh button on the Memories panel. Click ↻ to pull cross-device updates immediately, with a brief "Synced" / "Pulled N updates" status flash.
- Version stamp on the boot banner. A faint
vX.Y.Znow sits below the bottom-right of the Oyster logo at startup — quick visual confirmation of which version is running.
Changed
- Memory sync feels instant when you switch back to a device. Focusing the Oyster window, returning to the Memories panel, or coming back online now triggers a pull within seconds, alongside a regular ~30-second background check.
Fixed
- Memory timestamps now respect your timezone. "Created" times in the Memories panel previously read as up to several hours off when running outside UTC; they now reflect the actual moment a memory was written.
- Memories panel updates live again. Writing a memory in chat, or having one arrive from another device, now refreshes the panel automatically — previously only window focus or the manual refresh button surfaced changes.
0.8.0-beta.3 — 2026-05-09
Added
- Version stamp on the boot banner. A faint
vX.Y.Znow sits below the bottom-right of the Oyster logo at startup — quick visual confirmation of which version is running.
0.8.0-beta.2 — 2026-05-09
Added
- Refresh button on the Memories panel. Click ↻ to pull cross-device updates immediately, with a brief "Synced" / "Pulled N updates" status flash. Useful when you've just made a change on another device and don't want to wait.
Changed
- Memory sync feels instant when you switch back to a device. Focusing the Oyster window, returning to the Memories panel, or coming back online now triggers a pull within seconds — no need to wait for the 30-second poll.
0.8.0-beta.1 — 2026-05-09
Changed
- Cross-device memory updates appear within ~30 seconds without requiring a restart. Previously, a running device only checked for new memories from your other devices on sign-in or app launch.
0.8.0-beta.0 — 2026-05-09
Added
- Memories follow you across Pro devices. Anything you remember on one Pro device shows up on every other Pro device signed into the same account. Forgetting and deletion propagate too. Only memories created while signed into your bound Pro profile sync — pre-existing local memories and anything created on a free account stay local.
0.7.1-beta.0 — 2026-05-08
Changed
- Spaces now sync across signed-in devices. Pro users see the same set of spaces — name, hierarchy, summary — on every device they sign into. Published artefacts on a fresh device resolve to their real space instead of a generic "Cloud" bucket.
- Boot banner refreshed. New Oyster logo on launch, plus a single rotating tip per boot — recall, publish, scan, pin, slash commands, MCP setup, and the changelog link cycle through.
0.7.0 — 2026-05-05
Identity and the open web — sign in, publish artefacts, share them anywhere.
Added
- Sign in to Oyster. Free account in three clicks. Continue with GitHub, or magic-link via email as a fallback. (#295, #340)
- Publish artefacts. Right-click an artefact, hit Share in the file viewer, or type
/pin the chat bar. Open, password, and sign-in-required modes. Published tiles get a copy-link chip and a QR toggle for mobile. (#317) - Public viewer. Visiting a share URL renders the artefact — markdown, mermaid diagrams, sandboxed HTML apps, inline images. Password links unlock once for 24 hours per browser. (#316)
- Filter Home to published artefacts. A
publishedpill in the Artefacts header narrows the grid to currently-live shares. (#374) - Unpublish from the chat bar.
/u <artefact>retires a live share in one keystroke. (#388) - Pin artefacts. Right-click for Pin / Unpin; pinned items sort above the rest with a gold corner. New
pinnedfilter chip on Home. (#387) - Delete a memory. Hover any row in the Memories list for a trash icon. (#398)
Changed
- Password-protected shares are a Pro feature. Free accounts get open and sign-in-required links; the Password option shows a Pro pill linking to oyster.to/pricing. Existing password publications keep working until unpublished.
- Published shares live on
share.oyster.to. Untrusted content runs on its own origin so it can't reach the main app's session; sandboxed apps regain reallocalStorage. Existingoyster.to/p/...links redirect. (#397) - "Set up Oyster" is a panel, not a wall of text. After scanning your dev folder, the agent surfaces a structured proposal — drag chips between suggested spaces, rename, untick what you don't want, then Create.
- Setup is a checklist. One required step (set up your spaces), three optional. The dock pill stops nagging once the required step is done.
- Repo scanner respects
.gitignore. Folders and files matched by a project's.gitignoreare excluded from scan results. (#281) - Home sections cap their preview. Sessions and Artefacts each show ten with a
Show moretoggle in both icon and table views. (#389)
Fixed
- Faster startup. Chat is usable in ~1.5s on cold boot, down from ~14s. (#385)
- Sign-in re-syncs your published artefacts. Fresh device or after a workspace reset, the cloud is the source of truth. Publications without a local copy surface as
On cloudtiles you can manage from any signed-in device. - Existing publications self-heal their label and space. Older shares populate proper context on next sign-in instead of forcing a re-publish.
- Right-click works on the artefacts list view. Pin, Publish settings, Unpublish, and Publish… now appear in a context menu in list view too.
- Published apps and wireframes no longer load blank. The viewer forces
text/htmlfor app, deck, wireframe, table, and map kinds. - Google Fonts loads in published apps. The iframe CSP now allows
fonts.googleapis.comandfonts.gstatic.com.
0.6.0 — 2026-05-02
Trustworthy recall — every memory traceable, every conversation searchable.
Added
- Find within a session. Cmd+F in the session inspector opens an in-place search bar; ↑/↓ steps through matches with the current one scrolled into view. (#332)
- Spotlight searches transcripts. Cmd+K now matches past conversation turns alongside artefacts; click through to open the source session at that turn. (#329)
- Verbatim transcript recall. Agents can search your past conversations directly, not just the memory layer. Same-device for now; cross-device lands with cloud transcripts in 0.8.0. (#311)
- Memory tab on the session inspector. Shows what each session wrote and pulled; click any entry to jump to its source session. The Home memories list grows the same affordance. (#310)
- Floating scroll-to-bottom arrow in the session inspector — snaps back to the tail and re-arms auto-tail.
0.5.0 — 2026-05-01
Identical to 0.5.0-beta.2. Headline changes from the beta cycle:
- Oyster sees your Claude Code sessions. Run
claudein any folder mapped to a space and Oyster picks it up — title, file edits, and live state, with no MCP wiring. (#251) - Session inspector. Click a session for the live transcript, touched artefacts, and a Copy resume command — and process-aware state means no spurious red on long thinking turns. (#253, #274, #275)
- Home is a sectioned feed. Spaces · Sessions · Artefacts · Memories replace the spatial desktop as the default surface; chips filter inline and live-update as agents work. (#252, #254, #280)
- Project tiles on every space. Scope a space to one linked folder, promote an Elsewhere folder into its own space in one click, and removing the only folder cleanly deletes the space. (#266, #285)
- Oyster Pro foundations. Coming-soon page with local vault inventory and waitlist signup at oyster.to/pricing.
- Local-only endpoints refuse non-loopback callers. Closes a same-WiFi gap where a non-browser client could pull local APIs. (#289)
See 0.5.0-beta.0 through 0.5.0-beta.2 below for per-beta detail.
0.5.0-beta.2 — 2026-05-01
Added
- Pro waitlist signup. Join the waitlist on the pricing page captures your email and sends a confirmation.
Changed
- Sessions default to "all" + table view so fresh installs don't look empty when no Claude session is live. Existing icon-view preferences are preserved.
- Pricing page hero restructured into Free promise + Oyster Pro add-on, framing Pro as the optional thing.
0.5.0-beta.1 — 2026-05-01
Added
- Oyster Pro coming-soon page. Shield-icon pill in the breadcrumb opens a page naming what's about to ship — Sync · Memory · Publish — and inventories your local workspace. CTA links to a public pricing page at oyster.to/pricing.
- Session inspector. Click a session for the live transcript, touched artefacts, and a Copy resume command button. Disconnected sessions show a last-heartbeat banner. (#253)
- Scroll up to load older transcript turns. 1000-turn window with a
1000+badge; older turns prepend in place, scroll position pinned. (#274) - Memories on Home. Agents'
remembernotes show alongside Sessions and Artefacts, scoped by space pills. (#254) - Project tiles on every space. Scope to one linked folder, attach folders inline, scratchpad tile for native artefacts. (#266)
- Filter and collapse Artefacts on Home. Defaults to ~3 rows; chips split mine / from agents / linked. (#280)
- Promote an Elsewhere folder to its own space — one click. Sessions whose cwd matches re-attribute to the new space. (#285)
- Right-click a space pill for Rename · Delete. Delete itemises affected sessions, artefacts, and memories before confirming.
Changed
- Process-aware session states. Active / waiting / disconnected / done, derived from running
claudeprocesses — no more spurious red on long thinking turns. - Removing the only folder from a space deletes the space. Detach no longer leaves empty-shell spaces behind; sessions return to Elsewhere. (#285)
- Empty-shell space surfaces a delete affordance — the "no folders attached" banner now ends with
…or delete it.
Fixed
- Older sessions show their transcripts. Sessions whose
claudeprocess finished before Oyster started watching now backfill on the next boot scan. (#275)
Security
- Local-only endpoints refuse non-loopback callers. Server binds to
127.0.0.1and rejects no-Origin requests from non-loopback addresses. (#289)
0.5.0-beta.0 — 2026-04-28
Added
- Oyster sees your
claudesessions. Runclaudein any folder mapped to a space and Oyster picks the session up automatically — no MCP wiring. Title from your first prompt, file edits attributed to tiles, sessions in unregistered folders land as orphans. (#251) - Home is now a sectioned feed. Spaces · Sessions · Artefacts replace the spatial desktop as the default surface, scoped together by the chat-bar pills. State chips filter sessions inline; the list updates live. (#252)
0.4.0 — 2026-04-28
The 0.4.0 line is now stable. Code is identical to 0.4.0-beta.8. Headline changes from the beta cycle:
- Agent-led setup. Connect your AI, ask "Set up Oyster", and your agent audits your filesystem and proposes spaces. Works through Claude Code, Cursor, Windsurf, VS Code, or Oyster's own chat bar. (#184, #195)
- Visible workspace at
~/Oyster/with typed sub-folders —db/,apps/,spaces/,backups/. Browsable outside Oyster. (#207) - Linked folders are first-class. Attach external folders to a space; detach removes their tiles cleanly; reattach restores them. The ↗ glyph and Where do my files live? tile make it obvious which tiles you own vs which are windows into folders elsewhere on disk. (#208, #220)
- Cloud-AI memory import. Bring context across from another AI by pasting Oyster's export prompt — spaces, summaries, and memories seed in one pass.
- Logical-only spaces. Create a conceptual space first; attach folders later or keep it folder-less.
- HTML-styled documents render as designed (invoices, decks, letters), no longer forced through the dark markdown wrapper.
- Windows polish. Coloured startup banner, slim dark scrollbars, opencode subprocess no longer leaks across crashes.
- Better AI error surfacing. Provider failures (expired key, rate limit, outage) raise a banner with the reason and reconnect command instead of staying silent.
See 0.4.0-beta.0 through 0.4.0-beta.8 below for per-beta detail.
0.4.0-beta.8 — 2026-04-28
Fixed
- First-run hero tagline no longer overlays the chat output. Clicking the Set up Oyster prompt pill (instead of typing into the input) used to send the message without focusing the chat, so the "Welcome to your surface." tagline stayed on screen and floated over the streaming reply. The tagline now hides as soon as any chat message exists. (#235)
- Space pickers now show your renamed name. The
#and/sautocompletes used to label every space by its slug (sample-dashboard), so renaming Sample Dashboard → Project X still showedsample-dashboardin the picker. They now show the display name; the slug appears as a secondary hint. (#236)
0.4.0-beta.7 — 2026-04-25
Changed
- "Where do my files live?" tile is more useful at a glance. Adopts the Quick Start visual language, leads with the resolved path of your Oyster home, and shows a small preview of the chain-link marker so you can see what a linked tile looks like — not just be told. (#222)
0.4.0-beta.6 — 2026-04-25
Changed
- Linked tiles now carry a small chain-link marker (bottom-left of the icon) so you can tell at a glance which tiles are windows into folders elsewhere on disk vs. native to your Oyster workspace. Hover the marker for the source folder name. The "Where are my files?" tile is now "Where do my files live?" and explains the two homes — Oyster-managed workspace, and linked folders you own. (#220)
0.4.0-beta.5 — 2026-04-25
Changed
- Linked folders are now first-class. Detaching a folder from a space cleanly removes its tiles (no more orphans), and reattaching the same folder restores them. Sets up cleaner provenance and detach UI later.
0.4.0-beta.4 — 2026-04-25
Changed
- Startup banner is now a coloured box so the "Open Oyster" URL and starter prompts don't get lost in the logs.
Fixed
- Setup dock no longer skips "Connect your AI" after the chat bar creates your first space.
0.4.0-beta.3 — 2026-04-24
Changed
- Clearer first-run hero. "Welcome to your surface. Ask:
Set up Oyster" — tap the prompt pill to send it, or type your own.
Fixed
- Windows polish. Cleaner startup (no more alarming error messages in the terminal), thin dark scrollbars on artifacts and setup dialogs to match Mac, and the built-in terminal now recognises Oyster as an AI agent option.
0.4.0-beta.2 — 2026-04-24
Fixed
oyster install <id>now works. The CLI was writing to the pre-0.4 hidden workspace path while the server scans the new~/Oyster/apps/— so installs silently landed where nothing looked. Community plugins now install and appear on the surface after a restart. (#212)
0.4.0-beta.1 — 2026-04-24
Added
- "Where are my files?" tile. Shows your live workspace paths, not a generic doc. (#207)
- Archive shortcut — icon bottom-left opens the archived view. (#207)
- Right-click → Regenerate icon on any tile, including builtins. (#207)
- Agent can list and restore archived artifacts. Previously it couldn't see them. (#207)
Changed
- Workspace moves to
~/Oyster/(from hidden~/.oyster/userland/). Visible in Finder / Explorer, with clear sub-folders:db/,apps/,spaces/<project>/,backups/. Your content is browsable outside Oyster. (#207) - Styled confirm / rename dialogs replace the default browser prompts for uninstall, archive, and folder rename. (#207)
- "Import from AI" → "Import Memories" — same tile, clearer name. (#207)
Fixed
- Your AI can now create HTML-styled documents (invoices, receipts, letters). Agents can save artifacts as HTML so they render on the surface the way they were designed — white paper, printable layout. Previously every agent-created notes artifact was forced into markdown and shown through the dark markdown wrapper, so pages meant for white paper looked wrong.
- Silent AI failures now surface. When your AI provider rejects a message (expired key, rate limit, provider outage) Oyster shows a banner with the reason and, for auth failures, the exact command to reconnect — instead of the chat bar staying mute. (#201)
- AI engine no longer piles up after crashes or force-quits. Previous Oyster sessions that died without a clean shutdown used to leave their AI engine subprocess running forever, and across days of use these could stack up and fill your swap. Oyster now reaps any orphaned engines on startup, and uses OS-level process groups so a graceful shutdown kills the whole engine tree in one go. (#191)
- Silent "thinking…" hang when no AI provider is configured. Some AI-engine failures only surfaced in the server log and never reached the chat — messages would sit on "thinking…" forever. Oyster now catches those and raises them into the same banner as other AI errors, so you always get a reason and a next step. (#203)
0.4.0-beta.0 — 2026-04-23
Added
- Onboarding pill. A persistent setup companion in the top-right of a fresh Oyster walks you through three steps: connect your AI agent, ask it to set things up, and optionally import memories from another AI. Progress tracks automatically as you go. (#184)
- Agent-led discovery. Connect Claude Code, Cursor, Windsurf, VS Code — or use Oyster's own chat bar — and ask "set up Oyster for me." Your agent audits your filesystem, proposes a set of spaces in chat, and creates them once you confirm.
- Cloud-AI import. Bring your context across from another AI: copy Oyster's import prompt into ChatGPT or Claude, paste the response back into Oyster's chat, and your spaces, summaries, and memories are seeded in one pass.
- Logical-only spaces. Spaces no longer need a folder on disk. Create a conceptual space ("Work", "Reading") first; attach folders later, or keep it purely for memories and artifacts.
Changed
- Safer imports. When Oyster asks another AI to export your context, it now explicitly tells that AI to leave out credentials and third-party personal details — so a raw export can't leak context you wouldn't want on your desktop.
- Clearer first-run copy. The hero bar leads with "Tell your agent to set up Oyster", and the connect-your-AI builtin leads with what you get (an agent driving your workspace) rather than protocol terminology.
- Drag-and-drop onboarding retired for this release. Onboarding now goes through your agent; post-onboarding drag-drop to add folders later will return in a future release (#190).
Fixed
- Broken icon placeholders when a generated icon briefly 404s — Oyster now shows the kind glyph and silently retries.
- Import step stuck on "Loading…" — an 8-second timeout and a retry button handle slow or failed fetches.
- Escape closes the onboarding popover (consistent with other overlays).
- Cross-origin hardening on local API endpoints that surface connected-agent activity.
0.3.8 — 2026-04-21
Fixed
- Stopped overriding OpenCode's own model selection with a hardcoded
anthropic/claude-sonnet-4-20250514string, which broke users authed with OpenAI / Google / other providers (ProviderModelNotFoundError→ 502 in chat + AI import). OpenCode now picks its default model from whichever provider the user authed with viaopencode providers loginor env vars. (#174) - Claude Code MCP install command now uses
--scope userso the Oyster MCP follows the user across every project instead of being pinned to the directory they happened to runclaude mcp addfrom. Updated in README, landing page,oyster.to/mcp, the in-app "Connect your AI" builtin, and the CLI startup banner. (#175)
0.3.7 — 2026-04-20
Added
OYSTER_DEBUGartifact-lifecycle logging (OYSTER_DEBUG=1 oysterorOYSTER_DEBUG=artifact oyster) — opt-in structured traces across MCP tool entry, OpenCode file events, watcher decisions, service layer, and reconciliation. No output when unset.
Fixed
- MCP
create_artifactandregister_artifacthandlers nowawaitthe async service calls. Previously the tool response serialised as{}and the agent received no artifact id, triggering recovery paths that could duplicate rows. docs/changelog.htmlauto-regenerates on pushes tomainthat touchCHANGELOG.mdor the build script —oyster.to/changelogno longer lags between releases.
0.3.6 — 2026-04-19
Fixed
- Windows: artifact appeared as
C:and hung ingeneratingforever. Watcher now usespath.isAbsolute()instead of a POSIX-onlystartsWith("/")check. - Windows: dark-theme scrollbar styling on the chat panel (thin
::-webkit-scrollbar+ Firefoxscrollbar-color) — macOS unchanged.
0.3.5 — 2026-04-19
Added
- Right-click menu on desktop artifact tiles — Rename (inline), Archive (soft-delete), Uninstall for plugins, read-only label for builtins.
- Right-click menu on folder tiles — Rename folder, Archive folder (bulk), alongside existing Convert to Space.
#archivedview — browse soft-deleted artifacts and Restore them.- Changelog page at
oyster.to/changelog, generated fromCHANGELOG.md. oyster --helpshows 🦪 in the header.
Changed
- Docs site typography: Barlow headings paired with Space Grotesk body across landing and
/plugins. /pluginshero renamed to "Pearls".- Chat-bar Tab now completes the highlighted suggestion instead of executing — press Enter to execute.
Fixed
- Import resolves spaces by display_name when the slug lookup misses (prevents duplicate spaces when an agent emits a renamed space name).
Performance
- Grainient shader pauses
requestAnimationFrameon window blur and tab hide (was pinning the Chrome GPU process while Oyster sat in the background). Time stays continuous on resume — no visual jump. - Archived-paths lookup cached on
ArtifactService, invalidated on mutations —/api/artifactspolling is now O(active) in steady state.
Security
- Artifact endpoints (reads and mutations) locked to localhost origins — prevents cross-origin sites from enumerating or mutating the local surface.
- JSON body size capped at 64 KB on mutation routes.
0.3.4 — 2026-04-19
Fixed
- Stale tile icons cleared after
oyster uninstall <id>.
Changed
/pluginscopy button usesoyster install <id>form.
Chore
- Adopted eslint 10 in web (fixed 16 surfaced errors).
- Dependabot config for Actions and npm groups.
- Release workflow actions bumped for Node 24.
- Dep bumps:
marked17 → 18;@types/node22 → 25; web/server/root minor+patch groups.
0.3.3 — 2026-04-18
Added
- Plugins — Tier 2 installer.
oyster install <id>,oyster uninstall <id>,oyster listinstall community plugins by id. oyster install <id>resolves the repo from theoyster-to/oyster-community-pluginsregistry.- New
/pluginscatalog page on oyster.to with copy-install buttons, strict input validation, and a CDN fallback. - Plugin system design doc.
Changed
- README and
CLAUDE.mdupdated to match shipped v1 — port 4444, 19 MCP tools, FTS5 memory. /pluginspage polish: hairline borders dropped, only purposeful ones kept.
0.3.2 — 2026-04-18
Added
--version/-vflag on theoysterCLI.
Fixed
- Chat user bubble no longer conflates visually with the assistant response.
Chore
- Local discovery validation PoC script.
0.3.1 — 2026-04-17
First stable release of the 0.3 line. Bundles everything shipped across the 0.3.0 beta cycle (no stable 0.3.0 tag).
Added
- Cloud AI import. Paste from ChatGPT / Claude / Gemini and Oyster scaffolds projects, context, and memories.
- 3-step wizard: select provider, paste AI output, preview and import.
- Server converts any format to structured JSON via OpenCode.
- Merge-based: detects existing spaces, skips duplicates on re-import.
- First-run onboarding banner with "Import from AI" CTA.
- Builtin redesign. Quick Start, Connect Your AI, and Import from AI built as consistent glass-card builtins with ambient glow, pill selectors, and
postMessageclose support. - Space management UI. Rename, recolour, and remove spaces directly from the UI.
Fixed
- Cross-platform (Windows):
- Hardcoded
/path separators replaced withpath.basename/path.septhroughout. - Swapped
node-ptyfor@lydell/node-pty— prebuilt binaries, no build tools required. - Auth detection checks
~/.local/share/opencode/auth.jsondirectly. - Windows 403 on artifact serving (path separator mismatch).
- Hardcoded
- Stability:
- SSE fetch no longer crashes when OpenCode dies mid-stream.
- OpenCode port defaults to
0(auto-select); was hardcoded4096. - Kill OpenCode subprocess on shutdown; reset port on restart.
Changed
- Terminal WebSocket uses dynamic host instead of hardcoded port 4200.
- Connection banner says "oyster" (was "npm run dev").
- Helpful error when import paste yields nothing.
0.2.4 — 2026-04-15
Added
- Release scripts:
release:minor,release:beta,release:promote(later simplified toreleaseandrelease:beta).
Fixed
- Prod backups at
~/oyster-backups/auto/, dev at~/oyster-backups/dev/(were conflating). import-state.jsonstored in userland (was shared at~/.oyster).- Import wizard UI polish — prompt copy hint, paste area, consistent CTAs.
- Native
selectreplaced with a custom dark-themed dropdown.
0.1.21 — 2026-04-14
Added
- Auto-backup. Userland auto-backed up on every startup to
~/oyster-backups/auto/.- One backup per day — repeated restarts reuse the same slot.
- Rotates to last 5 days of history.
- Runs before bootstrap/migration — captures pre-upgrade state.
- Best-effort: never crashes server startup.
- MCP onboarding. "Connect your AI" builtin on the home surface with a tabbed guide for Claude Code, Cursor, VS Code, and Windsurf. CLI startup prints the MCP connect command. Landing page at
oyster.to/mcp. - Quick Start guide. 60-second overview builtin: prompt bar, slash commands, spaces, artifacts.
Changed
- Landing page MCP section: real client-specific connection snippets with tabs, actual tool-name pills.
- Nav replaced GitHub link with MCP page link.
Fixed
- Mobile: terminal mockup no longer overflows on small screens.
- "Bring Your Own AI" capitalisation and naming consistency.
0.1.17 — 2026-04-13
Added
- Drop-to-import. Drop a folder anywhere on the surface to import projects. Full-page drop zone, Grainient speeds up on drag, icons and chat dim to focus attention, wizard skips straight to scanning.
- Persistent memory. AI agent remembers across sessions.
MemoryProviderinterface — async, storage-agnostic, swappable backends.- First provider: SQLite FTS5 with full-text search in a separate
memory.db. - 4 MCP tools:
remember,recall,forget,list_memories. - Explicit writes only — agent stores memory when asked.
- First-run onboarding. "Drop a folder to get started" hint, space-pill hint, surface-wide folder-drop trigger.
- Dev / prod separation. Dev server on port 3333, prod on 4444 — run side by side. Dev uses
./userland, prod uses~/.oyster/userland. Version badge on surface shows version + env.
Fixed
- Icon resolution checks artifact root dir for
icon.png. opencode.jsonincluded in npm package.
Changed
- Input placeholder cycles on blur (was static per session).
- Agent sessions use the
oysteragent (was defaulting tobuild). - Port resilience: OpenCode config written dynamically with actual server port; OpenCode spawned after server listens (fixes MCP connection race); Vite proxy reads
OYSTER_PORTenv var.
0.1.10 — 2026-04-12
Added
- Multi-folder spaces + broader scanner.
- A space can have multiple folders (repos, project dirs, any folder).
space_pathstable — migrates existingrepo_pathvalues automatically.- Add Space wizard toggles between "New space" and "Existing space".
- Drop multiple folders onto one space. API:
GET/POST/DELETE /api/spaces/:id/paths. - Scanner finds artifacts in Go, Rust, Python, Ruby, Java (not just JS). Root-level projects detected. Any
.mdfound as notes. More JS frameworks: Angular, Nuxt, Astro, Remix, Solid. - Folder resolution searches Dropbox, OneDrive, iCloud Drive, Downloads.
- CLI packaging —
npm install -g oyster-os.- Checks for OpenCode auth; runs
opencode providers logininline on first run (OAuth in browser). - Spawns server process, opens browser.
- Bootstraps
~/.oyster/userland/with builtins (zombie-horde, the-worlds-your-oyster deck). - Handles SIGINT/SIGTERM cleanup.
- Compiled server + static web serving — package is ~2.2 MB unpacked, 6 runtime dependencies.
node-ptymoved to optionalDependencies with graceful fallback.- Windows support: finds
opencode.cmd, usesshell: truefor spawn. - Path traversal protection on static file serving.
- Checks for OpenCode auth; runs
Changed
- Auth flow: removed API key prompt — runs
opencode providers logininline on first run. - Renamed builtin:
snake-game→zombie-horde. - Documentation overhaul: CLAUDE.md rewritten to match shipped product; design doc updated; README rewrite for npm.
- Landing page polish: terminal window mockup with traffic-light dots; Mac/Windows OS toggle.
0.0.x — Prototype (2026-03-12 through 2026-04-11)
Milestones leading up to the first npm-packaged release, newest first.
2026-04-11 — Phase A: prompt-driven surface control
The chat bar now controls the OS. Dropped Graphiti dependency (memory deferred to v2). Added SSE command channel for instant UI push events.
- MCP tools:
open_artifact(id),switch_space(id),list_artifactswith search/limit. - Slash commands:
/s <prefix>(space switch),/o <query>(artifact open) — client-side, no LLM call. #prefix shortcuts:#<name>,#<digit>,#.,#0.- SSE command channel at
GET /api/ui/events. - Tagline: "Apps are dead. Welcome to your surface."
- Landing page (GitHub Pages) with animated mock UI, 3D tilt panels, real FAL icons.
2026-03-30 — View toggle + kind filter polish
- View toggle (grid/list) floats next to the kind filter pill.
- List-view space tags restyled.
2026-03-29 — Spaces as first-class entities
spacestable, SpaceStore, SpaceService. Scanner walks repos up to 4 levels deep.- HTTP API:
POST/GET/DELETE /api/spaces,POST /api/spaces/:id/scan. - MCP
onboard_space— creates space + triggers scan in one call. - Add Space wizard: 2-step modal with drag-and-drop folder picker.
2026-03-28 — Desktop redesign
- Auto-hide topbar with view toggle, sort modes, kind filter pills, group-by.
- Drag-to-reorder icons in grid view.
- Animated space pills (framer-motion), per-space accent colours.
- Spotlight search (Cmd+K) with fuzzy filter across all artifacts.
2026-03-27 — Oyster MCP surface
Agents (Claude Code, OpenCode, Cursor, etc.) can manage the Oyster surface via MCP.
- Discovery:
get_context,list_spaces,list_artifacts. - Authoring:
create_artifact,read_artifact,update_artifact,register_artifact. - Localhost-only (non-local Origin rejected with 403), approved roots, stateless transport.
2026-03-14 — Rebrand + artifact contract + AI icons
- Global rebrand: mint green → electric indigo.
- Artifact contract: every generated output gets a folder,
manifest.json, and source files under/artifacts/<id>/. - AI-generated artifact icons — GPT-4o-mini + fal.ai Flux Schnell render geometric icons per artifact.
- Showcase deck: "The World's Your Oyster" redesign with GSAP scroll-driven reveal.
2026-03-13 — Sprint 2: wire the engine
- OpenCode terminal embedded (xterm.js + WebSocket PTY).
- HTTP+WS hybrid server with app process management.
- Space-based navigation, deck artifacts, chat API with SSE streaming.
2026-03-12 — Sprint 1: UI mockup
- Surface with Aurora WebGL animated background.
- Typed artifact icons, chat bar, window system with viewer.