- Nix 65.3%
- Rust 17.5%
- JavaScript 16.7%
- Just 0.5%
|
|
||
|---|---|---|
| overlays | ||
| packages | ||
| .gitignore | ||
| flake.lock | ||
| flake.nix | ||
| justfile | ||
| README.md | ||
jkpkgs
Personal binary packages for AI/LLM tools.
Common commands
just check
just build
nix build .#pi
Pi fast-track workflow
Use this when pi needs a model metadata update before the normal automated update cycle has reached navi.
Normal released update
Prefer this whenever @earendil-works/pi-coding-agent is already published on npm.
- Update the wrapper dependency:
cd ~/dev/jkpkgs/packages/pi npm install @earendil-works/pi-coding-agent@<version> --package-lock-only --ignore-scripts - Update
packages/pi/hashes.json:version= the npm package versionnpmDepsHash= the hash reported by a failednix build .#pi, if it changed
- Verify the package:
cd ~/dev/jkpkgs nix build .#pi ./result/bin/pi --version ./result/bin/pi --list-models | grep '<model-or-family>' just check - Commit and push jkpkgs.
- Activate it on navi through dotfiles:
cd ~/dev/dotfiles dotman flake update jkpkgs dotman deploy --local - Verify the active profile, not just
~/dev/jkpkgs/result:hash -r command -v pi readlink -f "$(command -v pi)" pi --version pi --list-models | grep '<model-or-family>'
Emergency unreleased acceleration
Use this only when upstream pi has the needed change on GitHub but npm has not published it yet.
First consider a local-only override in ~/.pi/agent/models.json. That is fastest and avoids package drift if only one machine needs the model.
If the packaged pi must carry the change:
- Find the upstream commit and issue/PR that contains the metadata.
- Prefer backporting the upstream generated metadata over hand-editing one line. Pi model support commonly touches generator source, generated provider catalogs, tests, and changelogs.
- Make the temporary nature obvious:
- version like
0.80.3-unstable-YYYY-MM-DD, or - a clearly named backport script with the upstream commit URL in a comment
- version like
- Add a build-time assertion that the expected model exists.
- Verify the package and active profile using the same commands as the normal update.
- Commit and push jkpkgs, then update/deploy dotfiles.
Do not mark the work done because ./result/bin/pi works. The user-visible binary is the one from the active profile (command -v pi).
Returning pi to normal releases
When npm publishes a pi release containing the temporary backport:
- Remove any temporary patch, source pin, or backport script.
- Set
packages/pi/package.jsonto the released@earendil-works/pi-coding-agentversion. - Regenerate
packages/pi/package-lock.jsonwithnpm install --package-lock-only --ignore-scripts. - Set
packages/pi/hashes.json.versionto the real release version, with nounstablesuffix. - Refresh
npmDepsHashfromnix build .#piif needed. - Check that no temporary backport remains:
The model name may still appear only if it is part of the released package data, not a local patch.rg 'unstable|backport|gpt-5\.6|temporary' packages/pi - Verify and deploy through dotfiles as usual.
GPT-5.6 verification example
This is the checklist used for the GPT-5.6 fast-track incident:
hash -r
command -v pi
readlink -f "$(command -v pi)"
pi --version
pi --list-models | grep 'gpt-5\.6'
pi --print --no-tools --no-session --model openai-codex/gpt-5.6-sol 'Respond with exactly: hello world'
Expected final prompt output:
hello world