<feed xmlns='http://www.w3.org/2005/Atom'>
<title>sl0ppi.git/pi-ext/scripts, branch main</title>
<subtitle>a sl0p.foo repository</subtitle>
<id>https://git.sl0p.foo/sl0ppi.git/atom/pi-ext/scripts?h=main</id>
<link rel='self' href='https://git.sl0p.foo/sl0ppi.git/atom/pi-ext/scripts?h=main'/>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppi.git/'/>
<updated>2026-08-12T17:34:35Z</updated>
<entry>
<title>add pir: fuzzy-find and resume pi sessions for the current dir</title>
<updated>2026-08-12T17:34:35Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-08-12T14:28:43Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppi.git/commit/?id=402c20c344435ff0dbd736f654601d1ad53de954'/>
<id>urn:sha1:402c20c344435ff0dbd736f654601d1ad53de954</id>
<content type='text'>
`pi -c` blindly grabs the newest session, and the alternative is digging
through ~/.pi/agent/sessions/--home-user-dev-foo--/ for a UUID by hand.
This lists every session for the cwd in an fzf picker with a live transcript
preview and execs `pi --session &lt;file&gt;` on the pick.

  pir              pick a session for this dir
  pir -a           pick across every project dir
  pir &lt;query...&gt;   start fzf with an initial query
  pir -g TEXT      only sessions whose full transcript contains TEXT

The -g pass exists because the fzf query matches the list line -- title and
id -- not deep history, so "the session where I fixed the mouse bug" is
unfindable without it. It shells out to rg when available and falls back to
grep.

In the picker: enter resumes, ctrl-f forks instead (execs --fork, leaving the
original untouched), ctrl-o prints the path and exits without launching,
ctrl-a toggles current-dir vs all-dirs, ctrl-s toggles recent vs longest.
The toggles are fzf --bind=reload of this same script, which is what --list
and --preview are for -- they are internal modes invoked by fzf, not user
entry points.

Session directory resolution mirrors pi's own getDefaultSessionDirPath()
encoding, and honours PI_APP_NAME / &lt;APP&gt;_CODING_AGENT_DIR, so a renamed or
relocated agent dir still resolves. Forked sessions are detected from the
header's parentSession and marked in the list.

Requires fzf; checked up front with a clear error rather than failing inside
a pipeline.
</content>
</entry>
<entry>
<title>dev.sh: also load globally-installed pi packages (subagents, goal, ...)</title>
<updated>2026-08-12T17:34:35Z</updated>
<author>
<name>user</name>
<email>user@clank</email>
</author>
<published>2026-07-22T18:33:39Z</published>
<link rel='alternate' type='text/html' href='https://git.sl0p.foo/sl0ppi.git/commit/?id=1e34da3f4819ecc3d460e52a3a022d6f195ebb96'/>
<id>urn:sha1:1e34da3f4819ecc3d460e52a3a022d6f195ebb96</id>
<content type='text'>
-ne disables package extension discovery, so pi-subagents' subagent tool never
loaded under dev.sh. Add scripts/resolve-package-extensions.mjs to resolve each
settings.json package's extension entry (file/index-dir/discovery-dir, mirroring
pi's loader) and re-add them via -e. Package skills/prompts already load under
-ne. Opt out per package with PI_DEV_SKIP_PACKAGES.
</content>
</entry>
</feed>
