Satchel banner
pedreaspolsro pedreaspolsro

Satchel

Development community

Description

Launcher and window manager for terminal windows — juggle many Claude Code sessions across accounts, or any shell. Group by account, see live status, get pinged when one needs you, dock as a taskbar strip. Windows.

Installation

This entry records only its repository, not the path inside it, so there is no exact command to give. Open the source below and copy the folder into ~/.claude/skills/, or the file into ~/.claude/agents/.

README

Satchel

A launcher + window manager for terminal windows. Built for juggling many **Claude Code** sessions across several accounts, usable for any shell.

Satchel does **not** host terminals. Every session stays a normal terminal window (git-bash / mintty on Windows); Satchel launches them with the right environment, keeps them in one list grouped by tabs, shows what each one is doing, and lets you focus / tile / minimize them.

![Satchel — the panel, grouping sessions by account with live status and a "needs you" alert](docs/screenshot.png)

Sessions above are illustrative. Satchel groups your real terminals by account (e.g. personal vs. work), shows each one's live status, and flags the ones waiting on you.

How it works

  • Profiles (~/.satchel/config.json) = environment + folder + command + group. On first run Satchel detects your Claude config dirs (~/.claude, ~/.claude-) and creates one profile per account (CLAUDE_CONFIG_DIR set accordingly) plus a plain Shell profile.
  • Launch spawns the terminal with that environment and remembers the process. Adopt picks up terminal windows you opened yourself (anything in adoptExecutables).
  • Status comes from the window title. Claude Code rewrites it: ✳ topic when idle, ◐ ◓ ◑ ◒ while working. A session that goes working → idle while you are elsewhere is flagged needs you (row highlight + tab badge + desktop notification) until you focus it.
  • Hooks (optional, precise): a Claude Code hook script reports Stop / Notification / UserPromptSubmit events, so permission prompts and finished tasks light up immediately.

Architecture: platform-independent core (`src/main/sessions.js`, config, hooks) + one **window backend** per OS (`src/main/backends/`) + **terminal adapters** (`src/main/terminals/`).

Backend Status
win32 (koffi → user32, no native build) working
linux (wmctrl + xdotool, X11 only) experimental, untested; status-onl