Skip to content

tui: /sessions shows no pin option and no Pinned section in 2.0.21 on Windows #52794

Open

Description

@AngelMG0303

Summary

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

  1. Open opencode in C:\Users\yo (TUI).
  2. Run /sessions.
  3. Footer only shows delete ctrl+d rename ctrl+r current directory ctrl+a, no pin hint.
  4. Press ctrl+a — only toggles all sessions vs current directory, no Pinned section appears.
  5. Open command palette Ctrl+P, search pin — only substring matches appear (Wrapping under Settings-Diffs, Tool grouping / Permissions under Settings-Session), no pin command.
  6. 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.
  • Related: plugin: no supported way to pin sessions - storage.store is not the pin store  #52478 confirms pin store is the TUI's own session.json (session.pin.toggle bound to ctrl+f), but that issue is about plugin API access; this issue is that the core TUI itself does not expose/render pinning in 2.0.21 on Windows.
  • Screenshots available: /sessions dialog without pin, Commands palette search pin with only Settings matches.
  • Did not delete/edit db; opencode.db intact at C:\Users\yo\.local\share\opencode\opencode.db.

Activity

  1. AngelMG0303 commented on Oct 2, 2026

    @AngelMG0303
    Author
    Image Image
  2. github-actions commented on Oct 2, 2026

    @github-actions
    Contributor

    This issue might be a duplicate of existing issues. Please check:

    For keybind-related issues, please also check our pinned keybinds documentation: #4997

  3. AngelMG0303 commented on Oct 2, 2026

    @AngelMG0303
    Author

    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.

  4. attila-lendvai commented on Oct 17, 2026

    @attila-lendvai

    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.)

  5. AngelMG0303 commented on Oct 18, 2026

    @AngelMG0303
    Author

    Update: found the cause and a workaround.

    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.

    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.

  6. maharshi365 commented on Oct 21, 2026

    @maharshi365
    Contributor

    They removed pins in favor of tabs. Might not be a stable feature any longer

  7. saulojustiniano1 commented on Oct 27, 2026

    @saulojustiniano1

    Additional reproduction on macOS / OpenCode v2.2.0:

    • OS: macOS Darwin arm64
    • Terminal: Apple Terminal (TERM=xterm-256color, COLORTERM=truecolor)
    • Shell: /bin/zsh
    • Install/channel: release, Homebrew (opencode-v2/2.2.0)
    • Plugins: none configured

    I have a session titled DESIGN DEIA and tried to pin/favorite it. In the TUI:

    1. Open the command palette with Ctrl+P.
    2. Search for pin session.
    3. No pin/unpin command is available; only unrelated commands such as “Copy session transcript” are shown.
    4. 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.

  8. opencodejr commented on Oct 28, 2026

    @opencodejr

    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 (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.

    Related:

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions