The zero-ceremony install path. No plugin install required; just curl, bash, jq, and awk (all pre-installed on macOS and most Linux distros).

Quick start

Pick any file from the catalogue and pipe install.sh to bash:

curl -fsSL https://raw.githubusercontent.com/riboseinc/claude-memory-files/main/tools/install.sh \
  | bash -s -- instructions/github-pr-title-issue-link.md

That’s it. The installer fetches the file, validates the frontmatter, copies it to ~/.claude/instructions/github-pr-title-issue-link.md, appends the @-include to ~/.claude/CLAUDE.md under a managed-block marker, and records the install in ~/.claude/.memory-files-manifest.json. Next Claude Code session you start, the rule loads.

Per-type behaviour

The installer reads the file’s frontmatter type: and applies different actions:

Type What lands

instruction

Copy to ~/.claude/instructions/<name>.md + append @instructions/<name>.md to ~/.claude/CLAUDE.md.

memory-*

Copy to ~/.claude/memory/<name>.md. No @-include.

settings-fragment

Deep-merge the JSON into ~/.claude/settings.json. Backs up to settings.json.bak.<timestamp> first. See Settings-fragments concept page.

project-claude-md

Requires --project <dir>. Copies the body (frontmatter stripped) to <dir>/CLAUDE.md.

path-rule

Copy to ~/.claude/rules/<name>.md (or <project>/.claude/rules/<name>.md with --project).

hook

Rejected with a pointer to SAFETY.md. v2 only.

Common flags

--ref <sha>

Pin to a specific commit or tag instead of main. Useful if you want reproducible installs.

--project <dir>

Required for project-claude-md; optional for path-rule (writes to <dir>/.claude/rules/ instead of global).

--force

Overwrite an existing file at the target path.

Pinning to a specific ref

For reproducibility, especially in shared team setups:

curl -fsSL https://raw.githubusercontent.com/riboseinc/claude-memory-files/abc123def/tools/install.sh \
  | bash -s -- --ref abc123def instructions/github-pr-title-issue-link.md

The installer records the resolved SHA in the manifest’s upstream-ref field, so subsequent --update calls can compare precisely.

Installing into a project (project-claude-md)

curl -fsSL https://raw.githubusercontent.com/riboseinc/claude-memory-files/main/tools/install.sh \
  | bash -s -- --project ~/my-gem project-claude-md/ruby-gem.md

This writes to ~/my-gem/CLAUDE.md. Open the file and replace the bracketed placeholders with your project’s specifics.

Uninstall

The companion script:

curl -fsSL https://raw.githubusercontent.com/riboseinc/claude-memory-files/main/tools/uninstall.sh \
  | bash -s -- github-pr-title-issue-link

Argument is the slug (the file’s name: from frontmatter), not a path.

See also