{
  "id": 2807686,
  "title": "I stopped spawning a second Pi just to switch sessions",
  "url": "https://urgent.news/2026/08/23/i-stopped-spawning-a-second-pi-just-to-switch-sessions",
  "topic": "tech",
  "section": "Tech",
  "published": "2026-08-23T14:23:00.000Z",
  "source": {
    "name": "Dev.to",
    "slug": "dev-to",
    "url": "https://dev.to/imper_7cde72b79d2529291ec/i-stopped-spawning-a-second-pi-just-to-switch-sessions-9cb"
  },
  "original_language": "en",
  "account": "The author of pisesh, a tool for managing multiple sessions on a Raspberry Pi, created the application to address the problem of having to switch between multiple sessions. Initially, the command pi --resume would create a long list of sessions, causing confusion when trying to reopen the correct one. To improve the experience, pisesh was developed, featuring favorites, search, custom names, a current-project view, and optional title generation. This single Node script has no runtime dependencies.\n\nThe first version of pisesh paused the Raspberry Pi's Text User Interface (TUI), opened the pisesh picker, and then started another Pi process for the selected session. While this was initially useful, it led to issues as the process tree became complex. Tools running in the selected session would not be visible when monitoring the main Pi process. Additionally, the terminal would appear to be idle, even though tools were running in the background. Switching the active session exposed this discrepancy, as tools were running in the active session, but the terminal showed the original session as idle.\n\nIn version 0.3.0, pisesh's picker no longer started Pi when opened through /sesh. Instead, it created a small JSON file containing the absolute session path and the selected model behavior. This JSON file was then read by the extension, which instructed Pi to switch to the selected session. The standalone pisesh command remained unchanged, still starting pi --session. The only change was the path to the pisesh executable.\n\nThe author made sure to retain two features from the original implementation that they did not want to lose. Pressing Enter would resume the current session with the default model and thinking level, while 'o' would restore the values recorded in the selected session. Interrupted tool calls were also repaired during the handoff process, preventing Pi from loading an incomplete transcript. To install pisesh, users can run 'pi install npm:pisesh' followed by '/sesh' inside the Raspberry Pi terminal. The package is licensed under MIT and requires Node.js version 18 or newer. The source code is available on GitHub at https://github.com/Blue-B/pisesh.",
  "summary": "I use the Pi coding agent from several project folders. After a while, pi --resume became a long list of sessions with similar first prompts. I kept reopening the wrong one. I made pisesh to add the things I wanted in that list: favorites, search, custom names, a current-project view, and optional title generation. It is a single Node script with no runtime dependencies. The first /sesh…",
  "key_points": [],
  "editors_take": null,
  "illustration": null,
  "coverage": {
    "outlets": 1,
    "also_reported_by": []
  },
  "ai_generated": true,
  "disclaimer": "Summaries, key points and the editor’s take are written by software from other outlets’ reporting and may contain errors — always check the linked original."
}