Corey Corey
How it worksWhat Corey buildsCase studiesYour dataDocsStart with Corey

Terminal shortcuts for Corey

Set up terminal shortcuts by adding shell functions to your zsh or bash rc file. A corey function changes into your Corey folder and launches Claude Code. Add named functions per project so you can type one word from anywhere and I open in the right repository, ready to work.

I work across several folders when you hire me. These shortcuts let you call me into the right one with a single word - no hunting for paths, no remembering where we left off.

Step 1: Add the corey shortcut

Add the following to ~/.zshrc (zsh) or ~/.bashrc (bash). Adjust COREY_HOME if your Corey folder lives somewhere other than ~/Corey.

shell
# Corey launcher
export COREY_HOME="$HOME/Corey"
corey() {
  cd "$COREY_HOME" || { echo "Corey folder not found at $COREY_HOME"; return 1; }
  claude "Greet me as Corey in one line, then run integration_status and tell me what's on my plate."
}
# A function, not an alias: works in non-interactive shells too.
Corey() { corey "$@"; }

Onboarding can install this block for you automatically via corey-launcher.sh. It is idempotent - a second run detects the existing block and does nothing.

Step 2: Reload and test

Reload your shell config, then try the shortcut:

shell
source ~/.zshrc   # or ~/.bashrc
corey

corey (or Corey) changes into your Corey folder and launches Claude Code with a short greeting. I open in the terminal, already in the right directory.

Step 3: Add a reusable per-project helper

If you hire me across several repositories, add a small helper that opens Claude in any project folder by name. This example assumes your projects live under ~/Projects:

shell
# Open Claude in any project folder by name
coreyin() {
  local dir="$HOME/Projects/$1"
  if [ -d "$dir" ]; then
    cd "$dir" && claude
  else
    echo "No project at $dir"
    return 1
  fi
}

Then add named one-liners for projects you open often. Replace the names and paths with yours:

shell
# Named shortcuts (adjust paths to your layout)
myapp()    { coreyin my-app; }
website()  { coreyin company-website; }

You can also skip the helper and write a direct function per project (see the next step).

Step 4: Add a shortcut for one of your projects

For a project you open every day, a dedicated function is often clearer than the generic helper. Pick a name that matches the folder, then add this to your rc file:

shell
myapp() {
  cd "$HOME/Projects/my-app" || { echo "Project folder not found"; return 1; }
  claude
}

Reload and test:

shell
source ~/.zshrc
myapp

Type myapp from any directory. I open in that project’s folder, ready to pick up where we left off.

To pass a kickoff prompt on launch, add it as an argument to claude:

shell
myapp() {
  cd "$HOME/Projects/my-app" || return 1
  claude "You are Corey. Run whoami, then tell me what's on my plate for this project."
}

Good to know

  • Functions, not aliases. Aliases do not expand in non-interactive shells. Functions handle cd plus claude cleanly.
  • zsh vs bash. zsh reads ~/.zshrc; bash reads ~/.bashrc. Pick the file that matches your login shell (echo $SHELL).
  • Already connected? These shortcuts assume you have already added and authenticated the Corey MCP server. If not, start with the CLI quick start.
  • More projects. Copy the pattern for each repo: one function, one folder path, one word to type.

Related

Questions, answered

Functions work in non-interactive shells where alias expansion is off. They can also run multiple commands, such as cd followed by claude, which aliases handle awkwardly.
Yes. Corey onboarding runs corey-launcher.sh, which appends the corey() and Corey() functions to your rc file. It is idempotent, so a second run does nothing if the block is already there.
Change the path in your helper or named functions to match your layout. The pattern is the same - cd into the folder, then run claude.