Search every transcript
One window lists what stith saw in the last 30 days and searches every transcript, every profile, as soon as you type. Unnamed one-turn runs fold into one row per project.
A plugin for shefrd and herdr
herdr-stith puts stith inside your terminal multiplexer: search every Claude session this machine has run, see whether Enter will focus a running pane or open a new tab — and how sure that guess is — and keep the focused pane's session beside the herd.
sessions usage background jobs repo claims all pages views ▾ open in stith ↗ / type to search every transcript any state ▾ from every machine ▾ one-shot runs folded ▾ 200 sessions ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── title state last active project agent │ fix the flaky worktree test on the coordinator: ports, issues, UI… working just now shefrd claude │ Windows runner dashboard alerts needs you 3 minutes ago stith claude │ state stopped 40 minutes ago ▌“fix the flaky worktree test o… stopped 40 minutes ago shefrd claude │ where not open · enter opens it in a build whittle graft fork stopped 5 hours ago aylith-com codex │ new tab in shefrd ▸ 167 one-shot runs, untitled stopped 42 minutes ago tmp │ agent claude · opus-5-5 · high │ size 14 turns · 212 tool calls │ [ open in a new tab ]▾ [ copy id ] ─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────── enter open ⇥ next view ^t opens in: a new tab ^o open in stith ^y copy id F2 views esc close
The search window, redrawn from the plugin's own frame tests. Every word on it clicks; the details explain the guess behind where.
What it does
Everything arrives off until you name it, and every state it shows is one it has confirmed.
One window lists what stith saw in the last 30 days and searches every transcript, every profile, as soon as you type. Unnamed one-turn runs fold into one row per project.
A running session is focused in its pane. One that isn't opens where the details say — with ties and loose matches called out, because the rule that picks the workspace has both.
The ▾ Stith panel in the sidebar shows the focused pane's session in four tabs — overview, work, links and usage — drawn at once from what is already known.
$stith_status, $stith_title, $stith_usage_5h and more on tab, agent and space rows. Opt in to thirteen docket fields: tickets, PRs, repos, tags and open work.
On shefrd, @stith="words" keeps the panes whose sessions match. A pasted ticket, PR or thread link becomes that identifier; the rest of the words search transcripts.
Ctrl+click a stith:// link, a stith page URL or a bare session id in any pane to pin the panel on it, jump to its pane or copy the id.
The Stith panel
One small daemon follows pane.focused, joins the pane to its session and keeps what stith said about it, so switching panes redraws in milliseconds while stith is asked again in the background.
shefrd #12 and repo issue #4, never a raw address; files and branches are copy chips.What it will not claim
A picker that hides how it decided is a picker you stop trusting. herdr-stith says what it doesn't know.
Search caps at 200 hits on stith's side. When a query matches more, the count says so instead of implying it searched everything.
Where a stopped session opens is predicted by mirroring stith's longest-shared-path rule. Ties and catch-all matches like $HOME are flagged in the details.
stith reports how a launch was verified. When it wasn't, the footer says it started without confirmation rather than reporting success.
A session recorded in another WSL distro, home directory or on the Windows side is marked elsewhere, and Enter refuses it with the reason.
┌ stith ──────────────────────────────────────────┐ │ ✕ stith is not running │ │ │ │ Its service is stopped. Start it here, or with │ │ `systemctl --user start stith`. │ │ │ │ [ start stith ] [ try again ] [ close ] │ │ │ │ checked just now · again in 4 seconds · details │ └─────────────────────────────────────────────────┘
One of five states the window tells apart — looking, starting, slow, not running, or answered by something else. A slow daemon is never reported as stopped.
Install
The plugin builds itself on install and update, so the first open is the picker, never a build.
# shefrd, or herdr 0.7.4 and later shefrd plugin install aylith-labs/herdr-stith # or herdr plugin install aylith-labs/herdr-stith
[[keys.command]] key = "prefix+slash" type = "plugin_action" command = "stith.search"
Then run shefrd server reload-config. Nothing is bound by default.