Terminal panels

Use one terminal per chat, run project actions, and understand session recovery when upgrading.

Synara 1.0.0 keeps one terminal pane per chat, shown in the main workspace or right dock. Use mod+j to toggle the panel, or mod+shift+j for the full-width workspace. In that workspace, ctrl+1 and ctrl+2 switch between terminal and chat. Opening the terminal again focuses the existing session.

Run a project action

Project actions use the chat's actual working directory and runtime environment. They replace an idle terminal session when needed. If a terminal is busy, stop its work before running another action in that chat. The server checks activity even after a reload, and refuses an action when it cannot establish that the session is idle. Opening a workspace path uses the same idle check before sending shell navigation input.

Close and reopen

An explicit close ends the terminal session. If closing fails, the pane stays visible and usable. Reopening after close or shell exit creates a new session identity, so delayed cleanup cannot terminate the replacement shell. Hiding the panel is separate from closing the session.

Upgrade an older terminal layout

Nested terminal tabs, groups, splits, and the bottom drawer are removed. Synara retains the last active terminal. Retired nested sessions close only after the server verifies they are idle; their saved history is preserved. Busy sessions or sessions whose activity cannot be checked remain pending for the next mount. Old terminal-split keybindings no longer intercept shell shortcuts.

See Keyboard shortcuts for the current keymap and provider accounts for account-specific terminal commands.

Source evidence: Synara 84daea248, docs/core-concepts.md, apps/web/src/terminalStateStore.ts, apps/web/src/components/ThreadTerminalDrawer.tsx, apps/web/src/components/chat/DockTerminalPane.tsx, apps/server/src/terminal/Layers/Manager.ts, and apps/server/src/keybindings.ts.

Last updated on