{"version":"2.1.287","anchor":"shell-snapshot-uses-builtin-readprintf-copy-helper-when-sup","canonical_anchor":"shell-snapshot-uses-builtin-readprintf-copy-helper-when-sup","heading":"Shell snapshots no longer need the cat command when the shell can do the copy itself","tier":"notice","area":"Bash Tool","scope":null,"heads_up":null,"url":"https:\/\/changelogs.core-directive.com\/v\/2.1.287\/e\/shell-snapshot-uses-builtin-readprintf-copy-helper-when-sup","release_url":"https:\/\/changelogs.core-directive.com\/v\/2.1.287","markdown":"### Shell snapshots no longer need the cat command when the shell can do the copy itself\n\nShell snapshots now copy their helper commands using the shell's own built-in commands, and fall back to cat only when the shell cannot\n\n**Unclear.** It is not clear what decides whether the built-in method or the `cat` fallback is used.\n\n**What**\n\nWhen Claude Code runs commands, it first records your shell's setup in a snapshot file, so commands run with the same functions and settings you use. That snapshot also holds Claude Code's own replacements for the search commands `rg`, `find` and `grep`, and for `pkill`.\n\nThese replacements used to be written into the snapshot with the external `cat` program. They are now written with the shell's built-in `read` and `printf` commands. Claude Code falls back to `cat` when the shell cannot do this.\n\n**Why**\n\nWhere the shell supports it, building a snapshot no longer depends on a separate `cat` program being available. That can matter on locked-down or minimal systems.\n\n- Area: Bash Tool\n- Tier: You'll notice\n- Useful: 1\/5\n- Signal: 2\/5"}