GuideFebruary 2, 20275 min read

ConfigSync + Raycast: Quick Commands for Your Sync Workflow

Keyboard shortcuts for push, pull, status, and diff. Plus sync Raycast's own configuration so your launcher works the same on every machine.

Why Raycast and ConfigSync Go Together

Raycast is a productivity launcher for macOS that replaces Spotlight with something far more powerful. It supports custom script commands that run shell scripts from a keyboard shortcut. ConfigSync is a CLI tool. Combining them means you can push your configs, check status, or pull updates without ever opening a terminal.

But there is a second connection: Raycast itself has configuration that you want to sync. Your custom commands, extensions, hotkeys, and snippets are all part of your development environment. ConfigSync can track Raycast's config files so your launcher works identically on every machine.

Quick Push from Anywhere

The most common ConfigSync action is a quick push after making changes. A Raycast script command lets you do this with a keyboard shortcut from any application.

configsync-push.sh (Raycast Script Command)
#!/bin/bash # Required parameters: # @raycast.schemaVersion 1 # @raycast.title ConfigSync Push # @raycast.mode compact # @raycast.packageName ConfigSync # @raycast.icon 🔄 # Optional parameters: # @raycast.argument1 { "type": "text", "placeholder": "message", "optional": true } MSG=${1:-"Quick sync from Raycast"} configsync push -m "$MSG" echo "Pushed to ConfigSync"

Save this file in your Raycast script commands directory. When triggered, it pushes your current state with an optional message. The compact mode shows a brief confirmation in the Raycast bar without opening a terminal window.

Quick Pull

Pulling updates is equally simple. Use this when you know your other machine pushed changes and you want them on this machine immediately.

configsync-pull.sh
#!/bin/bash # @raycast.schemaVersion 1 # @raycast.title ConfigSync Pull # @raycast.mode compact # @raycast.packageName ConfigSync # @raycast.icon ⬇️ OUTPUT=$(configsync pull 2>&1) if echo "$OUTPUT" | grep -q "Already up to date"; then echo "Already up to date" else echo "Pulled latest configs" fi

Status Check

Before pushing, you might want to see what has changed. This script command shows a quick status summary.

configsync-status.sh
#!/bin/bash # @raycast.schemaVersion 1 # @raycast.title ConfigSync Status # @raycast.mode inline # @raycast.packageName ConfigSync # @raycast.icon 📊 # @raycast.refreshTime 1h STATUS=$(configsync status --short 2>&1) MODIFIED=$(echo "$STATUS" | grep -c "modified") ADDED=$(echo "$STATUS" | grep -c "added") if [ "$MODIFIED" -eq 0 ] && [ "$ADDED" -eq 0 ]; then echo "Clean - no changes" else echo "$MODIFIED modified, $ADDED new"

The inline mode with a refresh time makes this a persistent status indicator in Raycast. Every hour, it checks whether you have unsaved changes, so you never forget to push before switching machines.

Quick Diff

For a more detailed view, the diff command opens in a floating terminal window.

configsync-diff.sh
#!/bin/bash # @raycast.schemaVersion 1 # @raycast.title ConfigSync Diff # @raycast.mode fullOutput # @raycast.packageName ConfigSync # @raycast.icon 📝 configsync diff

The fullOutput mode opens a window showing the complete diff output. You can review exactly what has changed before deciding to push.

Syncing Raycast Itself

Now for the meta part: syncing Raycast's own configuration with ConfigSync. Raycast stores its settings, script commands, snippets, and extension data in the Application Support directory.

Sync Raycast config
# Track Raycast configuration $ configsync add config ~/Library/Application\ Support/Raycast/ # Or be selective about what you sync: $ configsync add config ~/Library/Application\ Support/Raycast/script-commands/ $ configsync add config ~/Library/Application\ Support/Raycast/snippets/ $ configsync add config ~/Library/Application\ Support/Raycast/quicklinks/ # If you use the Raycast module: $ configsync enable module raycast
When you sync Raycast's config, the ConfigSync script commands you created above get synced too. So on a new machine, you get Raycast configured with your ConfigSync shortcuts already in place. It is synception.

Setting Up Keyboard Shortcuts

The final step is assigning keyboard shortcuts in Raycast to your ConfigSync commands:

  • Ctrl+Shift+P for ConfigSync Push (the most frequent action)
  • Ctrl+Shift+L for ConfigSync Pull
  • Ctrl+Shift+S for ConfigSync Status
  • Ctrl+Shift+D for ConfigSync Diff

Assign these in Raycast's preferences under Script Commands. With these shortcuts, your entire ConfigSync workflow is accessible from any application without touching the terminal. Push before you leave for lunch. Pull when you sit down at your other machine. Check status to see if you forgot to sync. All from the keyboard, all in under a second.

Ready to try ConfigSync?

Sync your entire dev environment across machines in minutes. Free forever for up to 3 devices.