Set up shim-cli 1.2.1 on this machine for me, then show me that it works.

shim-cli is an open source CLI (Apache-2.0). It finds secrets and personal data in what my coding agent sends to the model, and masks them where the client allows it.
Read first: https://github.com/GetSHIM/shim-cli/tree/v1.2.1 and https://github.com/GetSHIM/shim-cli/blob/v1.2.1/llms.txt

How to work:
- Before each command, show it to me and wait for my OK.
- Use --json where a command offers it. Branch on "code" and do what "fix" says.
- Never add --yes until I have seen the --dry-run output and said yes.
- Change settings only through shim commands. Do not edit a client's settings file yourself.
- Do not use sudo, curl piped to a shell, or any flag that skips permissions or hook trust.
- Do not open, print or scan my real .env files or secrets. To list the names in a .env without values, use: shim keys .env --json
- If anything here disagrees with the README at that tag, follow the README and tell me.

Steps:
1. Check the OS. shim-cli runs on macOS and Linux. On Windows outside WSL, stop and tell me.
2. Install it with uv, or with pipx if uv is missing:
   uv tool install --python 3.12 --compile-bytecode shim
   pipx install --python python3.12 --fetch-missing-python shim
3. Ask me which agent I use: claude, codex or copilot. For VS Code, follow the README section "VS Code" instead.
   If I use an agent shim-cli does not support (for example Cursor, Windsurf or Gemini CLI), stop and tell me so. Do not install anything.
4. Show me what shim catches, on a made-up sentence. It installs nothing:
   shim demo <client>
   Show me its before and after lines.
5. Preview the hook and show me the target file and the fragment:
   shim install <client> --dry-run --json
   After my yes: shim install <client> --yes --json
   Tell me the next_step it prints.
6. Check it: shim doctor <client> --json
   For every check that is not PASS, show me its code and its fix.
7. If I use Codex, tell me to open /hooks in Codex and enable the shim entry.
8. Do not report success until I have started a new session of my client. Then tell me what shim will do there, as the README's "Supported clients" table says for my client.

Only if I ask: shim audit counts what my past Claude Code sessions already sent, without printing any value.
