Initialize YPM data directory and configuration
Initializes YPM by creating configuration directory and interactive setup for project monitoring.
/plugin marketplace add signalcompose/YPM/plugin install ypm@signalcompose-ypmSet up YPM for global usage. This command creates the data directory and configuration file.
~/.ypm/ directory for YPM data~/.ypm/config.yml with your settings (interactive)~/.claude/commands/ for prefix-free accessls -la ~/.ypm/config.yml 2>/dev/null && echo "EXISTS" || echo "NOT_FOUND"
If EXISTS: Ask user if they want to reconfigure or skip setup.
If NOT_FOUND: Proceed to STEP 2.
mkdir -p ~/.ypm
Report to user:
Created ~/.ypm/ directory for YPM data.
Use AskUserQuestion to collect configuration:
Question:
Which directories contain your projects?
Enter absolute paths, one per line or comma-separated.
Examples:
- /Users/yourname/Projects
- /Users/yourname/Work
- ~/Src (will be expanded)
Collect: List of directories to monitor
Question:
How are your projects organized within these directories?
Select patterns that match your structure:
Options (multiSelect: true):
Question:
How do you want to classify project activity?
Options:
Use Write tool to create ~/.ypm/config.yml:
# YPM Configuration
# Generated by /ypm:setup
monitor:
# Directories containing your projects
directories:
- /path/to/your/projects
# Add more directories as needed
# Patterns to detect projects within directories
patterns:
- "*" # Direct children
# - "*/*" # One level deep
# - "proj_*/*" # Prefixed directories
# Directories/patterns to exclude from scanning
exclude:
- node_modules
- vendor
- .git
- __pycache__
# Projects to hide from /ypm:open (but still scanned)
ignore_in_open: []
# Editor configuration
editor:
default: code # code, cursor, zed, terminal
# Activity classification thresholds
classification:
active_days: 7 # Updated within N days = active
inactive_days: 30 # No updates for N days = inactive
Use AskUserQuestion:
Question:
Would you like to access YPM commands without the 'ypm:' prefix?
This will create symbolic links in ~/.claude/commands/
so you can use /update instead of /ypm:update
Options:
If Yes:
# Get plugin directory (where commands are installed)
PLUGIN_DIR="$(dirname "$(dirname "$0")")" # This needs to be determined
# Create symlinks
mkdir -p ~/.claude/commands
for cmd in ~/.claude/plugins/ypm/commands/*.md; do
ln -sf "$cmd" ~/.claude/commands/
done
Note: The actual plugin path may vary. If automatic linking fails, provide manual instructions:
To enable prefix-free commands, run:
YPM_PLUGIN_DIR=$(find ~/.claude -name "ypm" -type d 2>/dev/null | head -1)
for cmd in "$YPM_PLUGIN_DIR/commands"/*.md; do
ln -sf "$cmd" ~/.claude/commands/
done
cat ~/.ypm/config.yml
Display configuration and confirm:
YPM Setup Complete!
Configuration: ~/.ypm/config.yml
Data file: ~/.ypm/PROJECT_STATUS.md (will be created on first update)
Next steps:
1. Review your configuration: cat ~/.ypm/config.yml
2. Run your first scan: /ypm:update (or /update if linked)
Your projects will be scanned from:
- /path/to/your/projects
- ...
To reconfigure YPM, run this command again. It will detect the existing configuration and ask if you want to update it.
To remove YPM data:
rm -rf ~/.ypm
rm ~/.claude/commands/ypm*.md # If links were created
Always confirm successful setup with the user.