Releases: sei-studio/sei
Release list
0.6.6
What's new in 0.6.6
- Start Minecraft on a Mac no longer triggers a macOS "prevented from modifying apps" notice
- If the Minecraft Launcher closes before you press Play, Sei tells you how to open it yourself
- Popups use a calmer, easier-to-read blue in dark and light themes
- Game launch panels fit smaller windows, and "Which versions?" opens in place
- Chess results are easier to read, and call screens show the name and timer clearly
0.6.5
Sei — Release Notes
v0.2.4 — Sync + LAN + card fixes
- Fixed: "SYNCING" stuck forever on World characters. A character added
from the World tab is owned by another account and can't be mirrored to your
cloud, but the app kept retrying and the card showed "SYNCING" indefinitely.
Those characters are no longer queued for cloud sync. - Fixed: LAN status wrong after reloading the app. Refreshing the window
while a world was open showed "Not connected" until the world's state next
changed. The launcher now re-reads the live LAN status on load. - Character cards show "Summoned". When a character is the active session,
its card hover button reads a disabled "Summoned" so you can't accidentally
restart the running bot.
v0.2.3 — Summon stability + greeting fixes
- Fixed: bot failed to summon. A missing internal module crashed the bot
process before it could join your world ("Bot exited before summon-ready").
The long-term memory modules are restored, so summoning works again. - Fixed: LAN status stuck on "Not connected". After summoning and
un-summoning, the connection pill could get stuck reporting your world as
disconnected even while it was still open. The watcher now re-establishes
itself and recovers automatically. - Home greeting. "Welcome to Sei" now shows only on your very first login;
every later launch greets you with "Welcome back". The header switches to
"Summons" once you leave Home, and your name is shown in the accent color.
v0.2.0 — Custom bot skins + setup wizard
New: per-persona custom skins and usernames. Each character can now wear
a custom Minecraft skin and join your world under any in-game username. Two
skin sources:
- Upload PNG: drop a 64×64 PNG on the character page
- Search Minecraft username: look up any real Mojang account and use
their current skin (legacy 64×32 skins are auto-upscaled to 64×64 — no
Notch-skin edge case)
A 3D preview shows the skin before you apply it. Skin bytes stay on your
computer.
New: first-launch setup wizard. Sei detects your Minecraft installs
(vanilla launcher + CurseForge instances) and installs Fabric Loader +
CustomSkinLoader for you. Re-run from Settings → Minecraft skins setup.
Idempotent: re-running detects existing mods and only updates when needed.
The wizard uses Minecraft's own bundled Java runtime — you don't need to
install Java separately.
Three default personas (Sui, Mochineko, Clawd) ship with bundled
placeholder skins.
Visibility caveat. Custom skins are rendered client-side. Peers on
your LAN see the bot with a default Minecraft skin unless they also
install CustomSkinLoader. This is a vanilla Minecraft architecture
constraint, not a Sei limitation — full analysis in
.planning/phases/09-implement-custom-bot-skins-via-customskinloader-mod-first-la/RESEARCH.md §5.
Windows notes. Mod installation uses Minecraft's bundled Java runtime
(located automatically inside %APPDATA%\.minecraft\runtime\ after you've
launched the vanilla profile at least once). The wizard writes to your
real Minecraft directory under %APPDATA%\.minecraft (vanilla) or
%USERPROFILE%\curseforge\minecraft\Instances\ (CurseForge). Sei does
not modify launcher_profiles.json — you pick the Fabric profile from
the launcher dropdown each time you want to play with Sei.
Implementation summary
- Local HTTP skin server at
http://127.0.0.1:<random-port>(loopback
only — no firewall prompts, no LAN exposure by default) - Port-drift detection on bootstrap: if the OS picks a new port across
launches, CSL configs are rewritten to stay in sync - Cross-platform install detection for macOS, Windows, Linux (paths
via Node'spath.join, never string concatenation — Phase 8 row 1
invariant) - Fabric installer runs headless via
<bundled-java> -jar <installer> client -noprofile - CustomSkinLoader JAR sourced from Modrinth (with GitHub releases
fallback); the config'sloadlist[0].typeisLegacy, NOT
CustomSkinAPI. This was verified against upstream CSL Java source on
branch 15-develop:Legacytakes a literal{USERNAME}-substituted
URL template and treats the response as raw PNG bytes (which is what
our skin server serves at/skins/{USERNAME}.png);CustomSkinAPI
requires a JSON-returning endpoint at{root}/{username}.jsonfollowed
by a second{root}/textures/<id>PNG fetch, which would not work
against our server. The on-launch verifier (npm run verify:phase9)
asserts the shipped loader type matches the wire-protocol-correct
choice. - All external calls timeout-wrapped per CLAUDE.md (15 s Mojang, 30 s
meta, 60 s JAR download, 90 sjava -jarexec) - Wizard cancel crosses the IPC boundary (renderer →
sei.wizardCancel(sessionId)→ main aborts the
Map<sessionId, AbortController>controller) so the in-flight Fabric
installer child process is SIGTERM'd cleanly - 4 verification harnesses + 1 master harness (
npm run verify:phase9)
0.6.5-beta.5
What's new in 0.6.5-beta.5
- New here? After setup your companion says hi first and offers a game of chess, a Minecraft session, or a call
- Out of free play? Sei now tells you the day it resets, and shows a notice when it is back
- Chess keeps going when free play runs out: your companion still plays, just quietly, and Draw! can end with your drawings saved
- Fixed: after switching accounts on the same computer, the previous account's chats could still show
0.6.5-beta.4
What's new in 0.6.5-beta.4
- Minecraft 26.2 and 26.3 are supported
- Companions start more reliably on slower computers, and the launch button shows whether she is starting up or joining
- Stopping a companion while she is still starting cancels right away, and quitting Sei no longer hangs
- Stardew Valley: she follows you through doors and around you instead of getting stuck, tills a whole patch in one go, waters and harvests the whole farm, ships produce, hands you items, and offers to help with what you are doing
- Don't Starve Together: she keeps herself lit at night, stops swapping tools back and forth, only fights real threats, can hand you items, and warns you about danger
- Clearer messages when a local model fails, and a notice when feedback could not be sent
- Security hardening for the installed app
0.6.5-beta.3
What's new in 0.6.5-beta.3
- Don't Starve Together: one-click helper install on Mac, no trip to System Settings
- Stardew Valley: companions now look like their art (shared looks)
- Stardew Valley: fixed companions repeating themselves or answering their own questions
- Smaller download size labels and cleanup
0.6.5-beta.2
What's new in 0.6.5-beta.2
- Don't Starve Together: the helper mod now actually installs (the 0.6.5-beta.1 download was empty); an empty install from beta.1 is downloaded again automatically
- Stardew Valley: setup no longer fails while installing the helper mod
- Stardew Valley: companions look like themselves, dressed through the game's own farmer customization
- Companions keep the thread of a conversation: they see the recent back-and-forth in order, remember what they already looked up, and in Stardew give you time to answer before moving on
- Minecraft support files download once more after this update (about 50 MB on a Mac)
Known gaps in this beta
- macOS: adding the Don't Starve Together helper needs the App Management permission for Sei (the setup step opens System Settings)
- Don't Starve Together: the helper must be in the game before the game starts (quit and reopen the game once after setup)
- Stardew Valley and Don't Starve Together: in-game typed chat, voice routing, combat, and a second companion are not yet verified live
0.6.5-beta.1
What's new in 0.6.5-beta.1
- Stardew Valley: launch your companion onto your farm as a visible helper who walks, works, fights, and talks beside you (Play together > Stardew Valley; Sei installs SMAPI and its helper mod for you)
- Don't Starve Together: launch your companion into your hosted world as a survivor she picks for herself (Play together > Don't Starve Together; one companion per world)
- Game support files download on first launch instead of shipping in the installer, Minecraft included, so the installer is about 40 MB smaller
- Settings has one Games group for Minecraft, Stardew Valley, and Don't Starve Together
- Minecraft: pick the version for the Sei profile in the setup list; one "Sei " profile per version, so an old world and a new one can coexist
- Each game's dashboard now looks like that game's HUD: parchment and vitals badges for Don't Starve, the wooden menu frame for Stardew
- Companions can look things up: search the web and read pages from chat, on calls, and in every game, and say so before they look; game companions ask their own wiki first
- Card image: regenerate a companion's portrait up to 3 times and switch between up to 8 saved versions
- Game dashboards fit the game area with nothing to scroll, the game/chat divider drags all the way down, and messages never sit under the message box
- Includes every fix from 0.6.1 through 0.6.4 (Ollama and local mode, local voices, the China mirror, the updater)
Known gaps in this beta
- macOS: adding the Don't Starve Together helper needs the App Management permission for Sei (the setup step opens System Settings)
- Don't Starve Together: the helper must be in the game before the game starts (quit and reopen the game once after setup)
- Stardew Valley and Don't Starve Together: in-game typed chat, voice routing, combat, and a second companion are not yet verified live
0.6.4
What's new in 0.6.4
- Companions can look things up: search the web and read pages from chat, on calls, and in Minecraft, and say so before they look
- Settings has a Search group: use the free automatic lookup or your own Brave, Tavily, or Serper key
- Card image: regenerate a companion's portrait up to 3 times and switch between up to 8 saved versions
- Minecraft: the setup wizard now installs the Sei profile for the newest supported version
- Fixed: Ollama companions failed to start when summoned
- Fixed: signing in with a Google account that had never used Sei landed you with no name; onboarding now asks again
- Fixed: a lookup the companion announced on a call now runs and gets answered
- Fixed: a companion's saved portrait versions no longer show up broken on a second computer
Windows, installs older than 0.5.3: the built-in updater on those installs cannot apply any update. Download and run Sei-win-x64.exe from this page once; updates work normally after that.
0.6.3
Sei — Release Notes
v0.2.4 — Sync + LAN + card fixes
- Fixed: "SYNCING" stuck forever on World characters. A character added
from the World tab is owned by another account and can't be mirrored to your
cloud, but the app kept retrying and the card showed "SYNCING" indefinitely.
Those characters are no longer queued for cloud sync. - Fixed: LAN status wrong after reloading the app. Refreshing the window
while a world was open showed "Not connected" until the world's state next
changed. The launcher now re-reads the live LAN status on load. - Character cards show "Summoned". When a character is the active session,
its card hover button reads a disabled "Summoned" so you can't accidentally
restart the running bot.
v0.2.3 — Summon stability + greeting fixes
- Fixed: bot failed to summon. A missing internal module crashed the bot
process before it could join your world ("Bot exited before summon-ready").
The long-term memory modules are restored, so summoning works again. - Fixed: LAN status stuck on "Not connected". After summoning and
un-summoning, the connection pill could get stuck reporting your world as
disconnected even while it was still open. The watcher now re-establishes
itself and recovers automatically. - Home greeting. "Welcome to Sei" now shows only on your very first login;
every later launch greets you with "Welcome back". The header switches to
"Summons" once you leave Home, and your name is shown in the accent color.
v0.2.0 — Custom bot skins + setup wizard
New: per-persona custom skins and usernames. Each character can now wear
a custom Minecraft skin and join your world under any in-game username. Two
skin sources:
- Upload PNG: drop a 64×64 PNG on the character page
- Search Minecraft username: look up any real Mojang account and use
their current skin (legacy 64×32 skins are auto-upscaled to 64×64 — no
Notch-skin edge case)
A 3D preview shows the skin before you apply it. Skin bytes stay on your
computer.
New: first-launch setup wizard. Sei detects your Minecraft installs
(vanilla launcher + CurseForge instances) and installs Fabric Loader +
CustomSkinLoader for you. Re-run from Settings → Minecraft skins setup.
Idempotent: re-running detects existing mods and only updates when needed.
The wizard uses Minecraft's own bundled Java runtime — you don't need to
install Java separately.
Three default personas (Sui, Mochineko, Clawd) ship with bundled
placeholder skins.
Visibility caveat. Custom skins are rendered client-side. Peers on
your LAN see the bot with a default Minecraft skin unless they also
install CustomSkinLoader. This is a vanilla Minecraft architecture
constraint, not a Sei limitation — full analysis in
.planning/phases/09-implement-custom-bot-skins-via-customskinloader-mod-first-la/RESEARCH.md §5.
Windows notes. Mod installation uses Minecraft's bundled Java runtime
(located automatically inside %APPDATA%\.minecraft\runtime\ after you've
launched the vanilla profile at least once). The wizard writes to your
real Minecraft directory under %APPDATA%\.minecraft (vanilla) or
%USERPROFILE%\curseforge\minecraft\Instances\ (CurseForge). Sei does
not modify launcher_profiles.json — you pick the Fabric profile from
the launcher dropdown each time you want to play with Sei.
Implementation summary
- Local HTTP skin server at
http://127.0.0.1:<random-port>(loopback
only — no firewall prompts, no LAN exposure by default) - Port-drift detection on bootstrap: if the OS picks a new port across
launches, CSL configs are rewritten to stay in sync - Cross-platform install detection for macOS, Windows, Linux (paths
via Node'spath.join, never string concatenation — Phase 8 row 1
invariant) - Fabric installer runs headless via
<bundled-java> -jar <installer> client -noprofile - CustomSkinLoader JAR sourced from Modrinth (with GitHub releases
fallback); the config'sloadlist[0].typeisLegacy, NOT
CustomSkinAPI. This was verified against upstream CSL Java source on
branch 15-develop:Legacytakes a literal{USERNAME}-substituted
URL template and treats the response as raw PNG bytes (which is what
our skin server serves at/skins/{USERNAME}.png);CustomSkinAPI
requires a JSON-returning endpoint at{root}/{username}.jsonfollowed
by a second{root}/textures/<id>PNG fetch, which would not work
against our server. The on-launch verifier (npm run verify:phase9)
asserts the shipped loader type matches the wire-protocol-correct
choice. - All external calls timeout-wrapped per CLAUDE.md (15 s Mojang, 30 s
meta, 60 s JAR download, 90 sjava -jarexec) - Wizard cancel crosses the IPC boundary (renderer →
sei.wizardCancel(sessionId)→ main aborts the
Map<sessionId, AbortController>controller) so the in-flight Fabric
installer child process is SIGTERM'd cleanly - 4 verification harnesses + 1 master harness (
npm run verify:phase9)
0.6.2
Sei — Release Notes
v0.2.4 — Sync + LAN + card fixes
- Fixed: "SYNCING" stuck forever on World characters. A character added
from the World tab is owned by another account and can't be mirrored to your
cloud, but the app kept retrying and the card showed "SYNCING" indefinitely.
Those characters are no longer queued for cloud sync. - Fixed: LAN status wrong after reloading the app. Refreshing the window
while a world was open showed "Not connected" until the world's state next
changed. The launcher now re-reads the live LAN status on load. - Character cards show "Summoned". When a character is the active session,
its card hover button reads a disabled "Summoned" so you can't accidentally
restart the running bot.
v0.2.3 — Summon stability + greeting fixes
- Fixed: bot failed to summon. A missing internal module crashed the bot
process before it could join your world ("Bot exited before summon-ready").
The long-term memory modules are restored, so summoning works again. - Fixed: LAN status stuck on "Not connected". After summoning and
un-summoning, the connection pill could get stuck reporting your world as
disconnected even while it was still open. The watcher now re-establishes
itself and recovers automatically. - Home greeting. "Welcome to Sei" now shows only on your very first login;
every later launch greets you with "Welcome back". The header switches to
"Summons" once you leave Home, and your name is shown in the accent color.
v0.2.0 — Custom bot skins + setup wizard
New: per-persona custom skins and usernames. Each character can now wear
a custom Minecraft skin and join your world under any in-game username. Two
skin sources:
- Upload PNG: drop a 64×64 PNG on the character page
- Search Minecraft username: look up any real Mojang account and use
their current skin (legacy 64×32 skins are auto-upscaled to 64×64 — no
Notch-skin edge case)
A 3D preview shows the skin before you apply it. Skin bytes stay on your
computer.
New: first-launch setup wizard. Sei detects your Minecraft installs
(vanilla launcher + CurseForge instances) and installs Fabric Loader +
CustomSkinLoader for you. Re-run from Settings → Minecraft skins setup.
Idempotent: re-running detects existing mods and only updates when needed.
The wizard uses Minecraft's own bundled Java runtime — you don't need to
install Java separately.
Three default personas (Sui, Mochineko, Clawd) ship with bundled
placeholder skins.
Visibility caveat. Custom skins are rendered client-side. Peers on
your LAN see the bot with a default Minecraft skin unless they also
install CustomSkinLoader. This is a vanilla Minecraft architecture
constraint, not a Sei limitation — full analysis in
.planning/phases/09-implement-custom-bot-skins-via-customskinloader-mod-first-la/RESEARCH.md §5.
Windows notes. Mod installation uses Minecraft's bundled Java runtime
(located automatically inside %APPDATA%\.minecraft\runtime\ after you've
launched the vanilla profile at least once). The wizard writes to your
real Minecraft directory under %APPDATA%\.minecraft (vanilla) or
%USERPROFILE%\curseforge\minecraft\Instances\ (CurseForge). Sei does
not modify launcher_profiles.json — you pick the Fabric profile from
the launcher dropdown each time you want to play with Sei.
Implementation summary
- Local HTTP skin server at
http://127.0.0.1:<random-port>(loopback
only — no firewall prompts, no LAN exposure by default) - Port-drift detection on bootstrap: if the OS picks a new port across
launches, CSL configs are rewritten to stay in sync - Cross-platform install detection for macOS, Windows, Linux (paths
via Node'spath.join, never string concatenation — Phase 8 row 1
invariant) - Fabric installer runs headless via
<bundled-java> -jar <installer> client -noprofile - CustomSkinLoader JAR sourced from Modrinth (with GitHub releases
fallback); the config'sloadlist[0].typeisLegacy, NOT
CustomSkinAPI. This was verified against upstream CSL Java source on
branch 15-develop:Legacytakes a literal{USERNAME}-substituted
URL template and treats the response as raw PNG bytes (which is what
our skin server serves at/skins/{USERNAME}.png);CustomSkinAPI
requires a JSON-returning endpoint at{root}/{username}.jsonfollowed
by a second{root}/textures/<id>PNG fetch, which would not work
against our server. The on-launch verifier (npm run verify:phase9)
asserts the shipped loader type matches the wire-protocol-correct
choice. - All external calls timeout-wrapped per CLAUDE.md (15 s Mojang, 30 s
meta, 60 s JAR download, 90 sjava -jarexec) - Wizard cancel crosses the IPC boundary (renderer →
sei.wizardCancel(sessionId)→ main aborts the
Map<sessionId, AbortController>controller) so the in-flight Fabric
installer child process is SIGTERM'd cleanly - 4 verification harnesses + 1 master harness (
npm run verify:phase9)