Install Claudesidian Command logo

Install Claudesidian Command

CommunityPopular
heyitsnoah
install-claudesidian-command

Install claudesidian shell command to launch Claude Code from anywhere. Use when the user wants to install a shell alias/launcher for their vault, or asks to set up the claudesidian command.

Overview

Publisherheyitsnoah
Repositoryclaudesidian
Skill nameinstall-claudesidian-command
Stars
2.6K
Forks
192
Bundled files
Instructions only
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • Self-contained

    Everything the model needs lives in the instructions — no extra files to sync.

  • Open source

    Published by heyitsnoah on GitHub. Read the source before you install it.

Installation

Install the Install Claudesidian Command AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/heyitsnoah/claudesidian/tree/main/.agents/skills/install-claudesidian-command
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/heyitsnoah/claudesidian.git /tmp/claudesidian
mkdir -p .claude/skills
cp -r /tmp/claudesidian/.agents/skills/install-claudesidian-command .claude/skills/install-claudesidian-command
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Install Claudesidian Command in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Install Claudesidian Command on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Install Claudesidian Command is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

Install Claudesidian Command

Creates a shell alias/function that allows you to run claudesidian from anywhere to open your vault in Claude Code.

Task

Install a shell command that:

  1. Changes to your claudesidian vault directory
  2. Launches Claude Code
  3. Works from any directory in your terminal

Similar to having a quick launcher for your vault.

Process

1. Detect Current Setup

  • Check which shell the user is using (bash/zsh/fish)
  • Find the current working directory (vault path)
  • Determine the appropriate config file

2. Create the Command

The command will be an alias that:

  • Changes to the vault directory: cd /path/to/your/vault
  • Tries to resume existing session: claude --resume 2>/dev/null
  • Falls back to new session if no existing one: || claude
  • All in one command with properly escaped path: (cd "/path/to/vault" && (claude --resume 2>/dev/null || claude))

Important: The path must be properly escaped to handle spaces and special characters.

This automatically enters resume mode if there's an existing session, or starts a new one if not.

3. Install to Shell Config

Add the alias to the appropriate config file:

  • Bash: ~/.bashrc or ~/.bash_profile
  • Zsh: ~/.zshrc
  • Fish: ~/.config/fish/config.fish

4. Verify Installation

  • Show the added line
  • Remind user to reload their shell or source the config
  • Provide test command

Shell Detection

Detects the user's default shell, with support for command-line override:

bash
# Check if shell specified as argument (/install-claudesidian-command zsh)
if [ -n "$1" ]; then
  # User provided shell type as argument
  SHELL_TYPE="$1"
else
  # Auto-detect from $SHELL (user's default shell, not current shell)
  SHELL_TYPE=$(basename "$SHELL")
fi

# Validate shell type and set appropriate config file
case "$SHELL_TYPE" in
  zsh)
    CONFIG_FILE="$HOME/.zshrc"
    ;;
  bash)
    # Prefer .bashrc on Linux, .bash_profile on macOS
    if [ -f "$HOME/.bashrc" ]; then
      CONFIG_FILE="$HOME/.bashrc"
    else
      CONFIG_FILE="$HOME/.bash_profile"
    fi
    ;;
  fish)
    CONFIG_FILE="$HOME/.config/fish/config.fish"
    ;;
  *)
    echo "❌ Unsupported shell: $SHELL_TYPE"
    echo "   Supported shells: bash, zsh, fish"
    echo "   Usage: /install-claudesidian-command [bash|zsh|fish]"
    exit 1
    ;;
esac

echo "🐚 Installing for: $SHELL_TYPE"
echo "📝 Config file: $CONFIG_FILE"

Key improvements:

  • Uses $SHELL to detect default shell (not $ZSH_VERSION/$BASH_VERSION which detect current session)
  • Supports command-line argument to override auto-detection
  • Shows detected shell and config file for transparency
  • Validates shell type and provides clear error message for unsupported shells

Installation Steps

  1. Detect shell: Use argument if provided, otherwise auto-detect from $SHELL

  2. Get vault path: Use pwd to get current directory

  3. Escape the path: Properly escape quotes and special characters for shell safety

    bash
    # Escape backslashes FIRST (so we don't double-escape ones we add later)
    ESCAPED_PATH="${VAULT_PATH//\\/\\\\}"
    # Then escape double quotes
    ESCAPED_PATH="${ESCAPED_PATH//\"/\\\"}"
  4. Check if already installed: Search config file for existing claudesidian alias/function

    bash
    # Check for existing alias/function
    if grep -q "alias claudesidian\|function claudesidian" "$CONFIG_FILE"; then
      echo "⚠️  Found existing claudesidian command:"
      grep -A 3 "claudesidian" "$CONFIG_FILE"
      echo ""
      read -p "Replace it? (yes/no): " replace_answer
      if [[ ! "$replace_answer" =~ ^[Yy] ]]; then
        echo "Installation cancelled. Existing command preserved."
        exit 0
      fi
      # Mark for replacement (will remove before adding new one)
      REPLACING=true
    fi
  5. Get user confirmation: Show what will be added and get final confirmation

  6. Create backup: Only if proceeding with modification

    bash
    # Create backup with timestamp
    BACKUP_FILE="$CONFIG_FILE.backup-$(date +%Y%m%d-%H%M%S)"
    cp "$CONFIG_FILE" "$BACKUP_FILE"
    echo "💾 Backup created: $BACKUP_FILE"
  7. Build the safe alias/function command: Use the escaped path from step 3

    bash
    # CRITICAL: Use $ESCAPED_PATH in the command (not raw $VAULT_PATH)
    if [ "$SHELL_TYPE" = "fish" ]; then
      # Fish uses function syntax, not alias
      COMMAND_TEXT="function claudesidian
     cd \"$ESCAPED_PATH\" && (claude --resume 2>/dev/null; or claude)
     cd -
    end"
    else
      # Bash/Zsh use alias syntax
      # IMPORTANT: Use double quotes around $ESCAPED_PATH to preserve escaping
      COMMAND_TEXT="alias claudesidian='(cd \"$ESCAPED_PATH\" && (claude --resume 2>/dev/null || claude))'"
    fi
  8. Remove old command if replacing:

    bash
    if [ "$REPLACING" = true ]; then
      # Bash/Zsh: alias is a single line — delete just that line
      sed -i.tmp '/^alias claudesidian/d' "$CONFIG_FILE"
      # Fish: function spans multiple lines — delete from `function claudesidian`
      # to the matching `end`
      sed -i.tmp '/^function claudesidian/,/^end$/d' "$CONFIG_FILE"
      rm -f "$CONFIG_FILE.tmp"
    fi

    Why two separate sed calls: A combined range like /alias claudesidian\|function claudesidian/,/^end$/d would, for the alias case, keep eating lines until it found the next ^end$ somewhere else in the file (or EOF). That could nuke unrelated config below. Single-line delete for the alias, range delete for the function — never combine them.

  9. Add command to config file: Append using the escaped command text

    bash
    echo "$COMMAND_TEXT" >> "$CONFIG_FILE"
  10. Show success message: With instructions to reload shell

Example Output

Bash/Zsh Example (with spaces in path to demonstrate escaping):

🔧 Installing claudesidian command...

📁 Vault path: /home/user/My Obsidian Vault
🐚 Shell detected: zsh
📝 Config file: /home/user/.zshrc

💾 Backup created: /home/user/.zshrc.backup-20250107-143025

✅ Installed! Added to /home/user/.zshrc:
   alias claudesidian='(cd "/home/user/My Obsidian Vault" && (claude --resume 2>/dev/null || claude))'

🔄 To activate, run:
   source ~/.zshrc

   Or start a new terminal session.

✨ Test it: Type 'claudesidian' from any directory!

Fish Shell Example:

🔧 Installing claudesidian command...

📁 Vault path: /home/user/My Obsidian Vault
🐚 Shell detected: fish
📝 Config file: /home/user/.config/fish/config.fish

💾 Backup created: /home/user/.config/fish/config.fish.backup-20250107-143025

✅ Installed! Added to /home/user/.config/fish/config.fish:
   function claudesidian
    cd "/home/user/My Obsidian Vault" && (claude --resume 2>/dev/null; or claude)
    cd -
end

🔄 To activate, run:
   source ~/.config/fish/config.fish

   Or start a new terminal session.

✨ Test it: Type 'claudesidian' from any directory!

Handling Special Characters

The implementation properly handles paths with:

  • Spaces: /Users/noah/My Vault
  • Quotes: /Users/noah/vault's backup
  • Special characters that need escaping

Paths are double-quoted and any embedded quotes/backslashes are escaped.

Fish Shell Support

Fish shell uses different syntax than Bash/Zsh:

Bash/Zsh (alias):

bash
alias claudesidian='(cd "/path" && command)'

Fish (function):

fish
function claudesidian
    cd "/path" && (command; or fallback)
    cd -
end

Key differences:

  • Fish uses function keyword instead of alias for complex commands
  • Fish uses ; or instead of || for fallback logic
  • Fish uses cd - to return to previous directory (instead of subshell)
  • Multi-line function definition instead of single-line alias

The installation automatically detects Fish and uses the correct syntax.

Security Considerations

This command modifies your shell configuration file (a sensitive operation). Safety measures:

  • You'll see exactly what will be added before any changes
  • Timestamped backup is automatically created before modification
  • Vault path is properly escaped to prevent injection attacks
  • Only the claudesidian command is modified - nothing else in your config
  • Asks permission before replacing existing commands

If anything goes wrong, restore from: $CONFIG_FILE.backup-YYYYMMDD-HHMMSS

Important Notes

  • The command uses a subshell () (or cd - in Fish) so it returns to your original directory after
  • Automatically tries to resume existing sessions, falls back to new session
  • If alias/function already exists, asks user if they want to replace it
  • Always shows what will be added before modifying config files
  • Always creates timestamped backup of config file before modifying (format: YYYYMMDD-HHMMSS)
  • Backups are kept indefinitely - users can manually clean up old backups if needed
  • Shows backup location so users know where to restore from if needed

Usage Examples

Install for your default shell (auto-detected):

/install-claudesidian-command

Install for specific shell (override auto-detection):

/install-claudesidian-command zsh
/install-claudesidian-command bash
/install-claudesidian-command fish

When to specify shell:

  • You use multiple shells and want to install for a specific one
  • Auto-detection picked the wrong shell
  • You're setting up for someone else

How It Works

Bash/Zsh (alias with subshell):

bash
alias claudesidian='(cd "/path/to/vault" && (claude --resume 2>/dev/null || claude))'
  1. (cd "/path/to/vault" && ...) - Subshell that changes directory temporarily (path is double-quoted for safety)
  2. claude --resume 2>/dev/null - Tries to resume existing session, suppresses error
  3. || claude - If resume fails (no session), starts new session
  4. After Claude exits, subshell closes and returns to original directory automatically

Fish (function with cd -):

fish
function claudesidian
    cd "/path/to/vault" && (claude --resume 2>/dev/null; or claude)
    cd -
end
  1. cd "/path/to/vault" - Changes to vault directory (path is double-quoted for safety)
  2. claude --resume 2>/dev/null - Tries to resume existing session, suppresses error
  3. ; or claude - If resume fails (no session), starts new session (Fish syntax)
  4. cd - - Returns to previous directory after Claude exits

Frequently asked questions

What does the Install Claudesidian Command AI skill do?

Install claudesidian shell command to launch Claude Code from anywhere. Use when the user wants to install a shell alias/launcher for their vault, or asks to set up the claudesidian command.

Why use Install Claudesidian Command on TypingMind?

Because you install it once and use it with any model. Install Claudesidian Command is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Install Claudesidian Command in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/heyitsnoah/claudesidian/tree/main/.agents/skills/install-claudesidian-command. TypingMind reads its SKILL.md and installs it as a skill you can enable per chat.

Which AI models can use Install Claudesidian Command?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Install Claudesidian Command?

As many as you like. As long as a model supports skills, you can use Install Claudesidian Command with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Install Claudesidian Command AI skill free?

Yes. It is published on GitHub by heyitsnoah under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇