Session Mover TUI

A Python Textual TUI for easily moving OpenCode sessions between projects and workspaces without writing SQL.

Quick Start

# Install dependencies
pip install -r requirements.txt

# Run (looks for opencode.db in current directory)
python session-mover.py

# Or specify a database path
python session-mover.py /path/to/opencode.db

How to Use

  1. Browse - See all sessions organized by project/workspace on the left
  2. Select - Click or use arrow keys + Enter to select sessions (multiple with Shift+Click)
  3. Filter - Type in the filter box to search session titles
  4. Move - Press m to move selected sessions to another project
  5. Copy - Press c to duplicate sessions to another project
  6. Backup - Press b to manually create a database backup

Hotkeys (always visible at bottom)

  • b - Backup database
  • m - Move selected sessions
  • c - Copy selected sessions
  • a - Toggle archived sessions visibility
  • r - Refresh all data
  • q - Quit
  • Escape - Deselect / close dialogs

Move/Copy Dialog

  1. Select destination project (dropdown)
  2. Optionally select a workspace within that project
  3. Review the SQL preview to see what will execute
  4. Press Enter or click Confirm to execute
  5. A backup is automatically created before the first write operation

Safety

  • Before any move/copy, a timestamped backup is created: opencode-YYYYMMDD-HHMMSS.db
  • Confirmation dialog shows exactly what will happen
  • Changes appear immediately in the UI after success

Database Schema Support

Works with OpenCode's opencode.db with tables:

  • session (with project_id, workspace_id, parent_id)
  • project, workspace
  • messagepart, todo, session_share (all cascade automatically)

Tips

  • Filter by typing in the search box (searches title and slug)
  • Toggle archived sessions with a (hidden by default)
  • The left panel shows Projects → Workspaces hierarchy
  • Selected sessions remain selected when filtering, so you can search, select, then clear filter
Description
copy, move, and delete opencode sessions
Readme 441 KiB
Languages
Python 100%