Projects and sessions
A project is a local directory used as the context for OpenCode operations. A session is a conversation and task history within that context.
Project scope
Section titled “Project scope”The app uses one OpenCode runtime for all projects. Each project request carries its directory context, so opening another project does not start another server.
You can switch projects while sessions continue running. The app monitors known projects for completion, errors, permission requests, and questions.
Multiple windows
Section titled “Multiple windows”Use File → New Window (Command-Shift-N on macOS) for another full app
window, or choose File → Open Project in New Window… to select its project
immediately. Each window keeps its own active project, session, panels, editor
buffers, Browser tabs, and current agent/model selection.
All windows share the same OpenCode runtime, durable sessions, provider configuration, task monitor, Compact Chat, and Supe. Opening a Compact Chat or Voice task focuses a window already showing that project and session when one is available. Closing an additional window does not stop its OpenCode task; the app warns before discarding unsaved editor changes.
Session actions
Section titled “Session actions”Depending on the current session state, you can:
- rename or archive a session;
- fork it to explore a different direction;
- move it to another project context;
- compact a long session;
- share, revert, or edit supported messages.
OpenCode owns the durable session and message record. Superapp navigation and unsent drafts are app-owned convenience state.
Parallel work
Section titled “Parallel work”Parallel sessions share the app-wide runtime but remain independently scoped. When tasks touch the same files, use separate worktrees or coordinate the changes to avoid conflicts.