Skip to content

docs: heredoc claude <<EOF plugin-install snippet is a silent no-op (stdin isn't run as slash commands) #55

Description

@devfloor9

Summary

docs/docs/getting-started.md and docs/docs/claude-code-setup.md both recommend installing the plugins non-interactively with a heredoc piped into claude:

claude <<'OMA_EOF'
/plugin marketplace add https://github.com/aws-samples/sample-oh-my-aidlcops
/plugin install ai-infra@oh-my-aidlcops
/plugin install agenticops@oh-my-aidlcops
/plugin install aidlc@oh-my-aidlcops
/plugin install modernization@oh-my-aidlcops
OMA_EOF

This does not install anything. Installing one slash command at a time inside the interactive REPL works; the heredoc form silently no-ops.

Root cause

Piping stdin to claude without -p/--print does not execute the lines as REPL slash commands — the content is sent to the model as a prompt (plain text). So /plugin marketplace add … / /plugin install … are read as text for the model to respond to, never as commands. (-p/--print mode also does not support interactive-dialog commands like /plugin; only user-invocable skills /skill-name are expanded there.)

Verified on Claude Code v2.1.178.

Suggested fix

Replace the heredoc snippet in both docs with the supported non-interactive CLI subcommands:

claude plugin marketplace add https://github.com/aws-samples/sample-oh-my-aidlcops
claude plugin install ai-infra@oh-my-aidlcops
claude plugin install agenticops@oh-my-aidlcops
claude plugin install aidlc@oh-my-aidlcops
claude plugin install modernization@oh-my-aidlcops
claude plugin list

(claude plugin marketplace add|list|remove|update, claude plugin install|uninstall|enable|disable|list|update, with optional --scope user|project|local.)

If the heredoc form is intended to be kept as a convenience, the docs should at minimum note that it only works in an interactive TTY, not when piped.

Affected files

  • docs/docs/getting-started.md
  • docs/docs/claude-code-setup.md
  • Korean mirrors under docs/i18n/ko/...

Verification notes

  • Confirmed: interactive one-line-at-a-time install works (local marketplace cache + symlinks exist).
  • Confirmed: stdin-without--p is treated as a model prompt, not REPL commands (Claude Code docs: CLI reference / headless mode).
  • Not exhaustively tested: whether claude plugin install (the non-interactive subcommand) completes every install without any interactive prompt on v2.1.178 — worth a maintainer smoke-test before publishing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions