人人都能做扩展:Raycast脚本命令(Script Commands)入门指南

Raycast使用教程进阶篇:学习如何通过简单的脚本命令(Script Commands),创建属于你自己的Raycast自定义扩展。无需编程基础,本指南手把手教你解决个性化需求,实现Mac自动化。
08yt
你是否曾有过这样的瞬间:“要是我能一键清空‘下载’文件夹里所有的.zip文件就好了”、“要是我能输入一个项目代号,就直接在浏览器里打开对应的Jira页面就好了”……这些微小但重复的需求,在Raycast的扩展商店里找不到现成的,自己动手开发一个功能齐全的扩展又似乎遥不可及。

如果你曾因此感到遗憾,那么本文将为你推开一扇全新的大门。我们将为你揭示Raycast自定义扩展最神秘、也最简单的一面——脚本命令 (Script Commands)。我们将手把手地教你,哪怕你几乎没有编程基础,也能通过几行简单的代码,为你自己量身定做一个独一无二的Raycast命令,让你真正成为工具的主人。

什么是脚本命令?——你的第一个“Hello, World”扩展

忘掉复杂的开发环境、编译和打包吧。要创建一个脚本命令,你只需要一个工具:文本编辑器

核心概念解析

脚本命令本质就是一个你编写的简单脚本文件(如Shell脚本、Python脚本、AppleScript等)。你只需把它放在Raycast指定的文件夹里,并按照特定格式在文件开头写上几行“说明书”(我们称之为元数据注释),Raycast就能自动把它识别成一个可以执行的命令。

准备工作

  • 一个代码编辑器: 强烈推荐免费且强大的 Visual Studio Code,当然,系统自带的“文本编辑”App也可以。

  • 一种脚本语言: 你不需要特地去学。对于所有Mac用户,Shell/Bash 脚本都是系统内置的,我们今天就以它为例。

零到一:创建你的第一个命令

让我们通过一个具体的例子,体验从无到有的完整过程。

  1. 打开脚本目录: 唤出Raycast (Command+Space),输入 Create Script Command 并回车。这是Raycast提供的官方向导。

  2. 选择模板: 在向导中,Raycast会让你选择模板。在“Template”处选择 Bash,然后为你的命令(文件名)命名,例如 hello-kejiciwei。点击“Next”,为它选择一个存放的子目录(可以直接存放在根目录),最后点击“Create Script Command”。

  3. 理解模板文件: Raycast会自动用你设置好的代码编辑器(如VSCode)打开一个名为 hello-kejiciwei.sh 的模板文件。你会看到文件内容分为两部分:

    • 顶部以#开头的注释: 这就是我们说的“说明书”,即元数据,用来告诉Raycast这个命令叫什么、怎么运行。

    • 下方的脚本主体: 这里是真正要执行的代码。

  4. 修改元数据: 我们来修改这本“说明书”。

    Bash

    #!/bin/bash
    
    # Required parameters:
    # @raycast.schemaVersion 1
    # @raycast.title Greet Ke Ji Ci Wei
    # @raycast.mode compact
    
    # Optional parameters:
    # @raycast.icon 🦔
    # @raycast.packageName My First Scripts
    
    
    • @raycast.title: 将其修改为 问候科技刺猬。这就是未来你在Raycast里输入的命令名称。

    • @raycast.mode: compact 模式意味着脚本执行后,会直接在Raycast窗口里显示结果。这是最常用的模式。

    • @raycast.icon: 我为你加了一个刺猬的图标,让命令更个性化。

  5. 编写脚本主体: 在文件的最下方,找到 echo "Hello World!" 这一行,把它修改成我们自己的内容:

    Bash

    echo "你好,来自科技刺猬的第一个命令!"
    
    
  6. 赋予执行权限: 这是关键且只需做一次的一步。为了安全,新创建的脚本文件默认没有执行权限。你需要:

    • 打开“终端(Terminal)”App。

    • 输入 chmod +x,然后加一个空格

    • 将你的 hello-kejiciwei.sh 文件从访达(Finder)中直接拖到终端窗口里,它会自动填充路径。

    • 按下回车。完整命令看起来像这样:chmod +x /path/to/your/scripts/hello-kejiciwei.sh

  7. 运行!

    • 回到Raycast,输入问候科技刺猬,回车!你就能立刻看到脚本的输出结果:“你好,来自科技刺猬的第一个命令!”

恭喜你,你已经成功创建了你的第一个Raycast扩展!

进阶玩法:让你的脚本命令更强大

只会“问候世界”显然不够,让我们给它增加一些实用的功能。

添加参数,实现动态交互

我们希望命令能接收我们输入的文字。例如,创建一个“快速搜索Bilibili”的命令。

  1. 创建一个新脚本bilibili-search.sh

  2. 在元数据部分,加入以下这行,来定义一个名叫“keyword”的参数:

    Bash

    # @raycast.argument1 { "type": "text", "placeholder": "Keyword" }
    
    
  3. 在脚本主体部分,用$1来获取这个传入的参数,并用open命令打开拼接好的URL:

    Bash

    open "https://search.bilibili.com/all?keyword=$1"
    
    
  4. 别忘了给新脚本 chmod +x 授权。现在,在Raycast里输入Bilibili Search(你设置的title),输入你想搜索的关键词,回车,浏览器就会自动打开搜索结果页!

设置刷新时间,动态显示信息

想让命令在Raycast窗口里显示一个动态信息吗?比如每小时更新一次时间?

  1. 创建一个新脚本current-time.sh

  2. 在元数据中加入这行:

    Bash

    # @raycast.refreshTime 1h
    
    
    • 这里的1h代表1小时,你也可以设置为30m(30分钟)、1d(1天)。
  3. 脚本主体只需一行,用于输出当前日期和时间:

    date

  4. 授权后,当你运行Current Time命令时,它会显示当前时间,并在1小时后自动刷新。

实战案例:打造一个“一键清理下载文件夹”的命令

现在,我们来解决一个真实存在的痛点:清理杂乱的“下载”文件夹。我们的需求是:将“下载”文件夹里超过30天未修改过的文件,移动到废纸篓

  1. 创建脚本 clean-downloads.sh

  2. 填入以下元数据和脚本主体:

    Bash

    #!/bin/bash
    
    # @raycast.title Clean Up Downloads Folder
    # @raycast.mode compact
    # @raycast.icon 🗑️
    
    # 查找'下载'文件夹中,超过30天未被修改的文件(-mtime +30),
    # 并对找到的每一个文件(-exec),执行移动(mv)到废纸篓(~/.Trash)的操作。
    find ~/Downloads -mtime +30 -exec mv {} ~/.Trash \;
    
    echo "Moved files older than 30 days to Trash."
    
    
  3. 在终端为其授权:chmod +x clean-downloads.sh

现在,每当你感觉下载文件夹很乱时,只需在Raycast中运行Clean Up Downloads Folder,世界就清静了。

还能做什么?——通往更广阔世界的大门

今天我们学习的脚本命令,是Raycast自动化世界的“第一把钥匙”。它足以解决90%的个人轻量级自动化需求。

如果你是一名开发者,并且渴望创建拥有自定义用户界面(UI)的复杂扩展(就像你在Store里看到的那些一样),那么你可以继续探索使用React和Node.js的 Raycast API。脚本命令正是通往这个广阔世界的第一步。你可以从Raycast的官方开发者文档开始你的进阶之旅。

总结

脚本命令是普通用户通往“创造者”的捷径,它让你能以极低的成本解决高度个性化的需求。你今天学会的,不仅仅是写几个脚本,而是一种**“将重复性工作自动化”的思维方式**。

掌握了脚本命令,你就真正触及了Raycast的灵魂。要回顾它的所有强大功能,请务必重温我们的 《Raycast终极指南:从入门到神级扩展,彻底取代你的Alfred和系统聚焦》 。而这种自动化的思维,也正是我们在 专为开发者打造的Raycast终极配置:精选扩展与高效工作流 中所推崇的核心理念。

发表评论