Problem
Resuming a session in a different harness requires two commands:
path p import claude # interactive session picker
path resume claude-<uuid> # interactive harness picker
path share already aggregates all installed harnesses into a single fzf picker, but it's wired to Pathbase upload. There's no local-only equivalent. A user who wants to move a session from Claude into Gemini (or vice versa) has to either know the cache id or round-trip through Pathbase.
Proposal
Support bare path resume (no <input> argument). When invoked with no input and a TTY:
- Reuse the
path share session-aggregation logic (gather_sessions) to build a cross-harness picker showing all installed providers' sessions, ranked by cwd match then recency.
- After the user picks a session, derive it into a toolpath
Path (same as share does internally).
- Launch the existing harness picker (pre-selecting the source harness) and project into the chosen target.
No Pathbase interaction, no cache write required (though --cache could opt into it).
Behavior summary
| Invocation |
Behavior |
path resume <input> |
Existing: resolve input, harness picker, project, exec |
path resume (TTY) |
New: session picker → derive → harness picker → project → exec |
path resume (no TTY) |
Error: "no input provided and no TTY for interactive selection" |
path resume --harness X (no input) |
Session picker filtered to harness X only, then project into target |
Implementation notes
gather_sessions and format_picker_row in cmd_share.rs should be extracted into a shared module (or cmd_share should expose them as pub(crate)).
- The derive step after session selection is already implemented per-harness in
cmd_share.rs — same logic applies.
path resume --harness X with no input could mean either "pick from X's sessions" or "project into X." Suggest: use --harness for the target harness (matching current resume semantics) and add --from for filtering the session picker by source provider. Or just let the aggregated picker do its job and don't filter.
- The
--project / -C flag already exists on resume for the working directory; it should also influence cwd-matching rank in the picker (same as share uses shell cwd).
Non-goals
- This doesn't replace
path share. Sharing to Pathbase is a distinct action.
- No new TUI chrome needed — it's the same fzf picker
share already builds.
Problem
Resuming a session in a different harness requires two commands:
path sharealready aggregates all installed harnesses into a single fzf picker, but it's wired to Pathbase upload. There's no local-only equivalent. A user who wants to move a session from Claude into Gemini (or vice versa) has to either know the cache id or round-trip through Pathbase.Proposal
Support bare
path resume(no<input>argument). When invoked with no input and a TTY:path sharesession-aggregation logic (gather_sessions) to build a cross-harness picker showing all installed providers' sessions, ranked by cwd match then recency.Path(same assharedoes internally).No Pathbase interaction, no cache write required (though
--cachecould opt into it).Behavior summary
path resume <input>path resume(TTY)path resume(no TTY)path resume --harness X(no input)Implementation notes
gather_sessionsandformat_picker_rowincmd_share.rsshould be extracted into a shared module (orcmd_shareshould expose them aspub(crate)).cmd_share.rs— same logic applies.path resume --harness Xwith no input could mean either "pick from X's sessions" or "project into X." Suggest: use--harnessfor the target harness (matching currentresumesemantics) and add--fromfor filtering the session picker by source provider. Or just let the aggregated picker do its job and don't filter.--project/-Cflag already exists onresumefor the working directory; it should also influence cwd-matching rank in the picker (same asshareuses shell cwd).Non-goals
path share. Sharing to Pathbase is a distinct action.sharealready builds.