Skip to content

Feather Studio

Feather Studio is the creative half of Feather: the shader graph, the texture lab and the particle playground. It is a separate application from Feather Inspector, with its own installer, its own updates and its own version.

Why it is separate

Inspector is a debugger. It attaches to a running game, streams logs and performance, and holds a live session. Studio is an editor. It makes shaders, textures and particle systems, and none of that needs a game running at all.

Keeping them apart means a Studio update does not make you reinstall your debugger, and a debugger fix does not touch your creative tools. It also means you can install only what you use.

Application boundary

Studio owns its React application, Tauri shell, bundle identifier, version, permissions, signing, updater feed, creative MCP backend and persisted authoring state. Inspector does not bundle, download or execute Studio code. The two apps share only versioned contracts and common interface primitives from packages/.

The browser showcase is a thin host for Studio's public web mount. It uses the same creative tools without Tauri, a game session or the Inspector bridge.

Studio releases independently under studio-v* tags. Inspector uses desktop-v*; updating either application does not imply updating the other. See the architecture reference for the complete boundary and release-train model.

Installing

Studio and Inspector install independently. Neither requires the other.

  • Feather Inspector — from a desktop-v* release on the releases page.
  • Feather Studio — from a studio-v* release on the same page.

Studio also runs in a browser with no install at all, at the showcase. The browser build is the same tools, minus anything that needs a local game.

Using Studio on its own

This is the normal case, and everything works:

  • author shader graphs, generate textures, build particle systems
  • save and load projects from disk
  • keep named workspaces, saved recipes and timeline settings

The workspace name in the top strip is shared by all three tools. Use it to create, switch or rename workspaces; Studio saves changes as you work. Deleting a workspace removes its shader graph, particle composites and texture recipes, so Studio asks for confirmation first and always keeps at least one workspace.

Existing per-tool work is adopted by the first workspace after upgrading rather than replaced with an empty one.

Particle projects can be saved as .featherparticles files or as a project ZIP. The ZIP contains the editable project, its generated Lua definition, shader sources, uploaded/generated textures and atlas metadata. The Lua definition references uploaded images by their archive-relative textures/ paths. Use Copy Lua Code to copy the authored particle table; the project and its textures stay in the saved project files. In desktop Studio, Show in Game imports the current project snapshot into the connected LÖVE runtime; hide and show again after emitter or asset edits to refresh it. Timeline playback controls sync while that game preview is active. The browser showcase uses its local love.js preview only.

Studio says "Local only" when no Inspector is running. That is a state, not an error.

Pairing with Inspector

Connecting adds scoped Shader Graph and Particle Playground previews in a running game. Textures and other authoring state remain local; use Studio's tools to apply them to an effect or shader, then export them for the game.

  1. Start Feather Inspector and attach your game as usual.
  2. In Studio, open the tools menu and choose Connect Inspector.
  3. If Inspector has several games attached, choose the game that should receive previews. Studio never guesses between multiple sessions.

Pairing is explicit. Studio never searches for Inspector on its own.

What pairing does

  • Version check first. The two applications release separately, so they negotiate before anything else. If they cannot agree, Studio says which one to update rather than failing later in a confusing way.
  • A short-lived key. Inspector issues a capability that Studio presents on every request. It expires, and Inspector can revoke it.
  • Local only. The connection is loopback; nothing is reachable from your network.
  • Scoped preview. A pairing sends only the shader and particle preview actions it was granted, and only to the selected game. Restarting that game makes the old preview stale until Studio sends it to the new session.
  • Local work stays local. Disconnecting removes live preview but keeps the active workspace and all of its saved work.

Moving your settings across

If you used the creative tools when they lived inside Inspector, your texture recipes, saved workspaces and timeline settings are still there. The first time you pair, Studio offers to bring them over.

The copy in Inspector is not deleted. If anything goes wrong you still have it, and you can pair again later — importing twice is harmless.

If you never pair, Studio simply starts empty.

Agents and MCP

There is one Feather MCP server, not two. feather mcp serves both applications: session and debugging tools come from Inspector, creative tools from Studio. Configure it once.

Particle Playground tools read and edit Studio's active local workspace by default, including project, Lua and ZIP-asset exports, so they do not need a game or Inspector. Pass a sessionId only when an action should target a live game, such as emitting particles or starting an in-game preview.

If an application is not running, its tools say so by name rather than failing with a connection error.

feather mcp setup --client claude