You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
tui: /sessions shows no pin option and no Pinned section in 2.0.21 on Windows #52794
TUI /sessions dialog in 2.0.21 on Windows shows no pin option and renders no Pinned section, even though docs list session.pin.toggle (ctrl+f) and session.json contains pinned IDs.
Environment
opencode version: 2.0.21
OS: Microsoft Windows 10.0.26300.9550
Terminal: cmd and Windows PowerShell, same behavior in both
Shell: C:\Windows\system32\cmd.exe
Install/channel: pnpm global @opencode/cli@2.0.21 (release, latest per npm)
Active plugins: none found (no ~/.config/opencode/plugins, no .opencode/ in cwd, opencode.jsonc only has $schema, cli.json has no plugins entry)
Reproduction
Open opencode in C:\Users\yo (TUI).
Run /sessions.
Footer only shows delete ctrl+d rename ctrl+r current directory ctrl+a, no pin hint.
Press ctrl+a — only toggles all sessions vs current directory, no Pinned section appears.
Open command palette Ctrl+P, search pin — only substring matches appear (Wrapping under Settings-Diffs, Tool grouping / Permissions under Settings-Session), no pin command.
Check C:\Users\yo\.local\state\opencode\session.json — contains {"pinned":["ses_f59a8a48effeW2mIGiZ80xWkMh","ses_f4b4217aeffePNMTJ2slEaAWBL","ses_f1618a5ccffec3KmwfsBwT5xYc","ses_f136b02d6ffe75IEGHEYQxVn3D","ses_f15f0a739ffetu3JkjD5GNuQad"]}, all 5 IDs exist in opencode session list --format json as top-level sessions in the same project, yet no Pinned section renders.
Expected Behavior
Session list shows Pinned section and exposes pin/unpin (session.pin.toggle, ctrl+f per https://opencode.ai/v2/docs/cli/keybinds), or docs clarify if the feature is unreleased/experimental.
Actual Behavior
No pin hint, no Pinned section, no palette command. ctrl+f does nothing visible in the dialog. Pins stored in session.json are not reflected in the UI.
Additional Context
Consistent, reproducible in both cmd and PowerShell.
cli.json has no keybind overrides for session.pin.toggle.
Not a duplicate feature request — this is a bug report.
Pinning is documented (session.pin.toggle, ctrl+f) and session.json already contains 5 pinned top-level IDs that exist in session list, yet /sessions in 2.0.21 on Windows renders no Pinned section and no pin hint (footer only: delete/rename/current directory). ctrl+f does nothing visible. Related #52478 covers plugin API, #37882 confirms the feature should exist.
(i'm not sure this is relevant, but: i had some problems with upgrading to v2, bun kept crashing. then i migrated the files to a new, dedicated machine, but the paths were different there, and there was no git installed, so all past sessions were gone from the TUI. then opencode modified the db to recover my sessions.)
The pin UI is gated behind session tabs. With tabs.mode at its default (auto, resolved to on), /sessions shows no Pinned section and no pin hint in 2.0.21 on Windows. Setting tabs off restores both.
I have a session titled DESIGN DEIA and tried to pin/favorite it. In the TUI:
Open the command palette with Ctrl+P.
Search for pin session.
No pin/unpin command is available; only unrelated commands such as “Copy session transcript” are shown.
Pressing Ctrl+F does not pin the session.
The session ID is ses_e853716e3ffeKugORLwz9cgVYl. The current v2 keybind documentation lists session.pin.toggle with default Ctrl+F, but the action is not exposed in the UI in v2.2.0. Please clarify whether session pinning was removed/replaced by tabs, or restore the documented behavior and update the documentation.
This appears related to the same missing pin UI reported here, but it is reproducible on macOS with the latest installed v2.2.0 release.
This comes from a design choice, not something specific to Windows. When session tabs are on, the session list turns pinning off: the Pinned section, the pin/unpin (ctrl+f) action and the number slots are all hidden (see packages/tui/src/component/dialog-session-list.tsx). Tabs are on by default because tabs.mode defaults to auto, which turns them on everywhere except inside Herdr. Your cli.json doesn't set tabs, so pinning is hidden, and that matches what you saw.
Workaround: turn tabs off in cli.json:
{
"tabs": { "mode": "off" }
}
After that, the pin hint and the Pinned section (with the IDs already in session.json) should show up in /sessions.
You're right that the docs don't explain this. The keybinds page lists session.pin.toggle with no mention of tabs, and the Tabs config section doesn't say that tabs disable pinning. I've passed this on to the maintainers as a request to either document it or support pinning while tabs are on. I can't promise anything on timing.
Activity
AngelMG0303 commentedon Oct 2, 2026
github-actions commentedon Oct 2, 2026
This issue might be a duplicate of existing issues. Please check:
For keybind-related issues, please also check our pinned keybinds documentation: #4997
AngelMG0303 commentedon Oct 2, 2026
Not a duplicate feature request — this is a bug report.
Pinning is documented (session.pin.toggle, ctrl+f) and session.json already contains 5 pinned top-level IDs that exist in session list, yet /sessions in 2.0.21 on Windows renders no Pinned section and no pin hint (footer only: delete/rename/current directory). ctrl+f does nothing visible. Related #52478 covers plugin API, #37882 confirms the feature should exist.
attila-lendvai commentedon Oct 17, 2026
FWIW, i'm seeing this, too.
on v2.0.32, running on linux
(i'm not sure this is relevant, but: i had some problems with upgrading to v2, bun kept crashing. then i migrated the files to a new, dedicated machine, but the paths were different there, and there was no git installed, so all past sessions were gone from the TUI. then opencode modified the db to recover my sessions.)
AngelMG0303 commentedon Oct 18, 2026
Update: found the cause and a workaround.
The pin UI is gated behind session tabs. With
tabs.modeat its default (auto, resolved to on),/sessionsshows no Pinned section and no pin hint in 2.0.21 on Windows. Setting tabs off restores both.Workaround:
File:
~/.config/opencode/cli.json(Windows:C:\Users\<user>\.config\opencode\cli.json){ "tabs": { "mode": "off" } }Restart the TUI and the Pinned section plus the pin/unpin hint reappear in
/sessions.Environment: opencode 2.0.21, Windows 10.0.26300.9550, cmd and PowerShell.
maharshi365 commentedon Oct 21, 2026
They removed pins in favor of tabs. Might not be a stable feature any longer
saulojustiniano1 commentedon Oct 27, 2026
Additional reproduction on macOS / OpenCode v2.2.0:
TERM=xterm-256color,COLORTERM=truecolor)/bin/zshopencode-v2/2.2.0)I have a session titled
DESIGN DEIAand tried to pin/favorite it. In the TUI:Ctrl+P.pin session.Ctrl+Fdoes not pin the session.The session ID is
ses_e853716e3ffeKugORLwz9cgVYl. The current v2 keybind documentation listssession.pin.togglewith defaultCtrl+F, but the action is not exposed in the UI in v2.2.0. Please clarify whether session pinning was removed/replaced by tabs, or restore the documented behavior and update the documentation.This appears related to the same missing pin UI reported here, but it is reproducible on macOS with the latest installed v2.2.0 release.
opencodejr commentedon Oct 28, 2026
Thanks for the detailed report!
This comes from a design choice, not something specific to Windows. When session tabs are on, the session list turns pinning off: the Pinned section, the
pin/unpin(ctrl+f) action and the number slots are all hidden (seepackages/tui/src/component/dialog-session-list.tsx). Tabs are on by default becausetabs.modedefaults toauto, which turns them on everywhere except inside Herdr. Yourcli.jsondoesn't settabs, so pinning is hidden, and that matches what you saw.Workaround: turn tabs off in
cli.json:{ "tabs": { "mode": "off" } }After that, the pin hint and the Pinned section (with the IDs already in
session.json) should show up in/sessions.You're right that the docs don't explain this. The keybinds page lists
session.pin.togglewith no mention of tabs, and the Tabs config section doesn't say that tabs disable pinning. I've passed this on to the maintainers as a request to either document it or support pinning while tabs are on. I can't promise anything on timing.Related:
session.json, and plugins have no API for themsession.jsonbeing overwritten between TUI instances