Skip to content

Demo polish + download-models.sh helper - #9

Merged
FrancoisChastel merged 2 commits into
mainfrom
feat/cli-redesign-recall
Jun 14, 2026
Merged

Demo polish + download-models.sh helper#9
FrancoisChastel merged 2 commits into
mainfrom
feat/cli-redesign-recall

Conversation

@FrancoisChastel

@FrancoisChastel FrancoisChastel commented Jun 14, 2026

Copy link
Copy Markdown
Owner

Summary

Two related changes that make the project more presentable to a first-time user.

1. Demo: drop git, contextual question, three-tier showcase

Problems with the prior demo

  • Beat 3 asked about git stash inside a non-git sandbox — the framing felt contrived even when the model answered cleanly.
  • Only two tiers ever appeared on screen (fast as the implicit default, one `--balanced` for the piped diagnosis), even though the pitch is "you can pick fast, balanced, or smart per call".

Changes

  • Beat 0 is now `?? --status` instead of `?? --start fast`. It prints all three tiers as up with their ports (`fast → :8091`, `balanced → :8080`, `smart → :8093`), so the multi-tier capability is visible from the first frame.
  • Beat 3 rewritten to `? in 2 lines, what does the -k flag mean in du` — a flag the audience just saw in Beat 1's `du -k` output. Natural follow-through.
  • Beat 4 routes to smart (`? --smart`) instead of balanced. Qwen3-Coder-Next is the right fit for the piped Python traceback, and this completes the fast/balanced/smart triad on screen.
  • Archive seed swapped to a Docker volumes conversation, and the recall (`??? docker volume`) finds it. The feature now shows its real value — a relevant past conversation surfacing from days ago — without forcing a git context.

2. `scripts/download-models.sh` — one-command model fetch

The install used to say "huggingface-cli download <long-repo-name>". Easy to typo, hard to discover the other tiers from. The new helper wraps the same call with the tier registry baked in:

```sh
scripts/download-models.sh # default: balanced (~16 GB)
scripts/download-models.sh fast # one specific tier
scripts/download-models.sh fast balanced smart # multiple
scripts/download-models.sh all --with-embed # everything + default embed
scripts/download-models.sh --list # what's downloaded vs not
```

The `--list` view shows every tier (chat + embed), on-disk status (✓/✗), the HF repo path, and which is the default. Same information `?? --list` prints, but available before you've sourced the zsh layer. Re-downloads are skipped (HF cache is content-addressed), so the script is safe to re-run.

  • Homebrew formula installs it executable and points caveats at it.
  • README install step 2 now calls the helper instead of the raw `huggingface-cli` command.
  • CONFIGURATION.md's model-tiers section documents it.

bash 3.2 compatible (macOS default shell).

Test plan

  • 260 tests pass (`pytest -q`)
  • `ruff check` and `ruff format --check` clean
  • Demo renders end-to-end with three tiers visible in `?? --status`, contextual du question, `--smart` switch, Docker recall hit
  • `download-models.sh --help` and `--list` render correctly under bash 3.2 (macOS default)
  • Manual: `brew install --build-from-source ./Formula/shellllm.rb` and verify `brew test` covers the new helper

Two real problems with the prior demo:

1. **Beat 3 asked about git stash inside a non-git sandbox.** Felt
   disconnected and the model wasn't sure how to be helpful — even if
   the answer came out clean, the framing didn't.
2. **Only two tiers ever appeared on screen** (fast as default, one
   `--balanced` for the piped diagnosis). The pitch is "you can pick
   fast, balanced, or smart per call" but the demo only ever showed
   two of three.

This pass:

- **Beat 0 is now `?? --status`** instead of `?? --start fast`. It
  prints all three tiers up with their ports (`fast → :8091`,
  `balanced → :8080`, `smart → :8093`), making the multi-tier capability
  visible from the first frame rather than implied later.
- **Beat 3 question changed** to `? in 2 lines, what does the -k flag
  mean in du` — a flag the audience just saw in Beat 1's `du -k` output.
  Natural follow-through instead of a contrived "what does git stash do"
  in a directory with no git.
- **Beat 4 routes to smart** (`? --smart`) instead of balanced. The
  Qwen3-Coder-Next tier is the right fit for the piped Python
  traceback, and using the smart tier here completes the
  fast/balanced/smart triad on screen (fast is implicit default, smart
  is the visible switch, balanced is in the status header).
- **Archive seed is now a Docker volumes conversation** instead of
  git stash, and the recall (`??? docker volume`) finds it. The
  recall feature shows its actual value — pulling a real past
  conversation from days ago — without forcing a git context.

No code changes. Just the .tape, the rendered .gif, and the seeded
archive's topic.
shellllm's install used to say "huggingface-cli download
<long-repo-name>". That worked but it was a footgun: typing the
balanced repo wrong silently downloads nothing, and people couldn't
discover the fast/smart tiers without reading the docs.

`scripts/download-models.sh` wraps the same `huggingface-cli download`
call with the tier registry baked in. Behaviour:

  scripts/download-models.sh                  # default: balanced
  scripts/download-models.sh fast             # one specific tier
  scripts/download-models.sh fast balanced smart   # multiple
  scripts/download-models.sh all              # every chat tier
  scripts/download-models.sh all --with-embed # + the default embed tier
  scripts/download-models.sh --with-embed=nomic    # default chat + nomic embed
  scripts/download-models.sh --list           # what's downloaded vs not

The --list view shows every tier (chat + embed), the on-disk status
(✓/✗), the HF repo path, and which is the default. It's the same
information `?? --list` prints, but available before you've sourced
the zsh layer.

Plays nicely with cold installs: re-downloads are skipped because the
HF cache is content-addressed, so this script is safe to re-run.

Wired through:
  - Homebrew formula installs it executable and points caveats at it.
  - README install step 2 now calls the helper instead of the raw
    huggingface-cli command.
  - CONFIGURATION.md's "model tiers" section documents the helper.

bash 3.2 compatible (macOS default shell).
@FrancoisChastel FrancoisChastel changed the title Demo: drop git references, three-tier showcase, contextual question Demo polish + download-models.sh helper Jun 14, 2026
@FrancoisChastel
FrancoisChastel merged commit ace2dee into main Jun 14, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant