Skip to content

Latest commit

 

History

7 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Alfred-Dev-Tools

Version License Platform Language

一个给开发者用的 Alfred 工具箱。

它把平时最常用的一批开发小工具收进 Alfred,让你不用切浏览器找在线工具,不用临时写脚本,不用反复复制粘贴网页,直接在 Alfred 里输入命令就能完成哈希、编码解码、JSON 格式化、UUID 生成、Cron 预览、时间戳转换、文本统计、JWT 解码、倒计时提醒等操作。

✨ 适合谁用

  • 想把常见开发小工具放进 Alfred 的开发者
  • 习惯键盘流,想减少打开网页工具站次数的人
  • 想持续扩展自己 Alfred Workflow 的维护者

🚀 快速开始

  1. 导入打包好的 workflow: Alfred-Dev-Tools-v0.1.4.alfredworkflow
  2. 打开 Alfred
  3. 直接输入命令,例如:
md5 hello world
sha hello
json {"a":1}
url hello%20world
timer 10m 喝水

默认不加统一前缀,开箱即用。

如果你想给全部命令加前缀,也支持在 workflow 配置里设置 keyword_prefix,比如改成 dv 之后,就会变成:

  • dvhelp
  • dvpwg
  • dvmd5
  • dvsha
  • dvjson
  • dvurl
  • dvtimer

🧭 总览命令

输入:

help

会直接展示全部工具、对应作用和示例。

如果你设置了前缀,例如 dv,则总览入口会变成:

dvhelp

🧩 功能模块

🔐 哈希与密码

命令 作用 示例
pwg 生成随机密码 pwg 10 -_+
md5 计算 MD5 md5 hello world
sha 计算 SHA 哈希 sha hello / sha all hello

🔁 编码与格式化

命令 作用 示例
b64 Base64 编码与解码 b64 hello
json JSON 格式化 / 压缩 json {"a":1}
url URL 编码 / 解码 url hello world
html HTML 实体转义 / 反转义 html <div>hello</div>
jwt JWT 解码 jwt eyJ...

🕒 时间与调度

命令 作用 示例
uuid UUID 生成 uuid / uuid all
cron 查看最近 5 次执行时间 cron */15 * * * *
ts 时间戳与日期互转 ts 1710505200
timer 倒计时提醒 timer 10m 喝水

📝 文本与命名

命令 作用 示例
tc 文本字数统计 tc hello world
case 命名风格转换 case hello_world

🧮 数字与计算

命令 作用 示例
sum 求和计算器,支持 % 取模 sum 1 2 3 % 4

📋 剪贴板处理

命令 作用 示例
sub 用正则替换剪贴板内容(sed 风格) sub /hello/HI/

📘 命令说明

下面这部分是标准用法说明。每个命令都给出“命令是什么、怎么输入、返回什么”。

pwg

作用: 生成随机密码。

命令格式:

pwg [长度] [特殊符号集合] [count=数量] [nospecial]

使用示例:

pwg
pwg 16
pwg 10 -_+
pwg 24 count=8
pwg 32 nospecial

pwg.png

规则说明:

  • 第一个参数是密码长度
  • 默认长度是 16
  • 默认返回 6 条候选密码
  • 默认包含内置特殊字符集合
  • nospecial 表示完全不使用特殊字符
  • 如果你提供一个仅由非字母数字字符组成的参数,它会被当成“允许使用的特殊符号集合”
  • pwg 10 -_+ 表示生成 10 位密码,且特殊字符只允许来自 -_+

md5

作用: 对输入文本计算 MD5 十六进制字符串。

命令格式:

md5 <文本>

使用示例:

md5 hello
md5 123456
md5 hello world

md5.png

返回结果:

  • 一条 MD5 结果
  • 回车后直接复制哈希值

sha

作用: 计算常见 SHA 哈希。

支持算法:

  • sha1
  • sha224
  • sha256
  • sha384
  • sha512
  • all

命令格式:

sha <文本>
sha <算法> <文本>

使用示例:

sha hello
sha sha1 hello
sha sha512 hello
sha all hello

sha.png

规则说明:

  • 不写算法时,默认直接展示全部结果
  • 默认顺序是:sha256sha512sha1sha224sha384
  • all 时,也按同样顺序展示全部结果

b64

作用: Base64 编码与解码。

命令格式:

b64 <文本>

使用示例:

b64 hello
b64 aGVsbG8=

b64.png

规则说明:

  • 默认同时返回 Base64 编码结果和解码结果
  • 如果输入不是合法 Base64,会显示“解码失败”提示
  • 不需要再写 encodedecode

json

作用: JSON 格式化与压缩。

命令格式:

json <JSON>
json pretty <JSON>
json min <JSON>

使用示例:

json {"a":1,"b":2}
json pretty {"a":1}
json min {"a":1,"b":2}

json.png

返回结果:

  • Pretty JSON
  • Minified JSON

规则说明:

  • 默认优先展示格式化结果
  • 如果输入不是合法 JSON,会提示错误位置

url

作用: 同时展示 URL Encode 和 URL Decode 结果。

命令格式:

url <文本>

使用示例:

url hello world
url hello%20world
url name%3Dalfred%20tools

url.png

规则说明:

  • 不需要区分 urlencodeurldecode
  • 默认同时返回两种结果

html

作用: 同时展示 HTML Encode 和 HTML Decode 结果。

命令格式:

html <文本>

使用示例:

html <div class="box">
html &lt;div&gt;hello&lt;/div&gt;

html.png

规则说明:

  • 默认同时返回 Encode 和 Decode 两种结果
  • 适合处理 HTML 片段或富文本内容

uuid

作用: 生成 UUID。

命令格式:

uuid
uuid all
uuid 1
uuid 4 count=5

uuid.png

规则说明:

  • 默认直接等同于 uuid all
  • 会返回 UUID v1UUID v4
  • 也支持单独指定 v1v4
  • 支持 count=数字

cron

作用: 查看 cron 表达式从当前时间起最近 5 次执行时间。

命令格式:

cron <表达式>

使用示例:

cron */15 * * * *
cron 0 0/15 * * * ?
cron 0 30 9 * * MON-FRI

cron.png

规则说明:

  • 自动识别 Linux crontabJava cron
  • 结果中会明确标识类型
  • 默认展示“从当前时间起向后计算”的最近 5 次执行

当前支持:

  • *
  • ,
  • -
  • /
  • ?

当前暂不支持:

  • L
  • W
  • #

ts

作用: 时间戳和日期互转。

命令格式:

ts
ts <时间戳>
ts <日期>

使用示例:

ts
ts 1710505200
ts 1710505200000
ts 2026-03-22
ts 2026-03-22 10:30:00

ts.png

规则说明:

  • 不带参数时,显示当前时间、当日 0 点、当前秒级时间戳、当前毫秒级时间戳
  • 输入纯数字时,自动识别为秒或毫秒时间戳
  • 输入日期时,转换为秒和毫秒时间戳

tc

作用: 文本统计。

命令格式:

tc <文本>

使用示例:

tc hello world
tc 这是一个测试

tc.png

返回结果:

  • 字符数
  • 非空白字符数
  • 单词数
  • 行数
  • UTF-8 字节数
  • 中文字符数

case

作用: 命名风格转换。

命令格式:

case <文本>

使用示例:

case hello world
case hello_world
case helloWorld
case HelloWorld

case.png

返回结果:

  • snake_case
  • kebab-case
  • camelCase
  • PascalCase
  • CONSTANT_CASE
  • dot.case

sum

作用: 对一组数字求和,支持使用 % 进行取模。

命令格式:

sum <数字...> [% 除数]

使用示例:

sum 1 2 3 4 5
sum 1+2+3+4+5
sum 1, 2, 3
sum 15 % 4
sum 1 2 3 4 5 % 7
sum 1.5 2.5 3

返回结果:

  • 求和结果(回车复制)
  • 当输入包含 % 时,额外返回 sum % 除数 的取模结果
  • 平均值

规则说明:

  • 数字之间支持空格、逗号、+ 三种分隔方式,可以混用
  • 支持负数与小数
  • % 左侧是参与求和的数字列表,右侧是单个除数
  • 除数为 0 或缺失会给出错误提示,但仍会展示求和结果
  • 无法识别的 token 会被忽略,并在副标题中提示

sub

作用: 读取当前剪贴板内容,用正则表达式做一次替换,回车把结果写回剪贴板。

命令格式:

sub <分隔符><pattern><分隔符><replacement>[<分隔符>[flags]]
sub <pattern> <replacement>

使用示例:

sub /hello/HI/
sub /\d+/N/
sub /(\w+)@(\w+)/\2#\1/
sub /HELLO/hi/i
sub |http://|https://|
sub #foo bar#baz#
sub hello HI

返回结果:

  • 替换后的完整内容(回车复制)
  • 匹配次数、pattern → replacement 摘要
  • 原剪贴板内容(回车可复制原文,做二次利用)
  • 未匹配时给出提示,剪贴板保持不变

规则说明:

  • 使用之前先把要替换的文本复制到剪贴板
  • 第一个字符若为 / | # ~ , @ 中任意一个,就作为分隔符
  • 分隔符不用 / 时,pattern / replacement 中可以自然包含 /,避免转义
  • 若第一个字符不是上述分隔符,则按第一个空格切成 pattern replacement
  • 支持标准 Python 正则语法与反向引用(\1\g<name>
  • 支持 flag:i(忽略大小写)、m(多行)、s(dotall)、x(verbose)、g(全局,默认已开启)
  • 如果 pattern 非法或替换出错,会展示错误而不改动剪贴板

jwt

作用: JWT 解码。

命令格式:

jwt <token>

使用示例:

jwt eyJ...

jwt.png

规则说明:

  • 当前只做解码
  • 不校验签名
  • 会返回 Header、Payload、Claims 摘要、Signature 和原始 JWT

timer

作用: 创建倒计时提醒。

命令格式:

timer <时间> [提醒内容]

使用示例:

timer 10 喝水
timer 10s 起身活动
timer 1h 开会

规则说明:

  • 纯数字默认按分钟
  • s 表示秒
  • m 表示分钟
  • h 表示小时
  • 默认是 5 分钟
  • 时间到了会弹窗提醒并响铃

🧪 从源码运行

如果你在本地调试,可以统一通过 workflow.py 调度:

python3 workflow.py help ""
python3 workflow.py pwg "10 -_+"
python3 workflow.py md5 "hello world"
python3 workflow.py sha "hello"
python3 workflow.py b64 "aGVsbG8="
python3 workflow.py json '{"name":"dev-tools","stars":1}'
python3 workflow.py url "hello%20world"
python3 workflow.py uuid ""
python3 workflow.py cron "*/15 * * * *"
python3 workflow.py ts ""
python3 workflow.py tc "hello world"
python3 workflow.py case "hello_world"
python3 workflow.py sum "1 2 3 % 4"
python3 workflow.py sub "/hello/HI/"
python3 workflow.py html "&lt;div&gt;hello&lt;/div&gt;"
python3 workflow.py jwt "eyJ..."
python3 workflow.py timer --dry-run "10s 喝水"

📦 打包发布

项目内置标准打包脚本:

./scripts/package.sh
./scripts/package.sh v0.1.4

脚本会自动:

  • 读取或更新 info.plist 中的版本号
  • 打包生成 .alfredworkflow
  • 校验 info.plist
  • 检查包内的 versionwebaddress

🏗️ 项目结构

Alfred-Dev-Tools/
├── info.plist
├── icon.png
├── workflow.py
├── scripts/
├── docs/
└── alfred_dev_tools/
    ├── alfred.py
    ├── cli/
    └── features/

目录说明:

  • workflow.py:统一入口,Alfred 通过它分发到具体命令
  • alfred_dev_tools/features/:核心功能逻辑
  • alfred_dev_tools/cli/:命令行与 Alfred 适配层
  • info.plist:Alfred Workflow 配置
  • scripts/package.sh:标准打包脚本
  • docs/GITHUB_DESCRIPTION.md:GitHub 发布与推广文案

TODO

  • 快捷编辑 ~/.zshrc
  • 快捷编辑 .zshrc
  • 快捷拷贝ssh公钥
  • 快捷拷贝当前目录路径
  • 快捷打开终端在当前路径
  • Port端口占用查询 
  • 获取当前主机IP

ISSUE

欢迎大家提需求给我

📄 License

MIT

About

A practical Alfred workflow for developers with hashes, Base64, JSON formatting, URL encode/decode, UUIDs, timestamps, JWT decode, text utilities, and more.

Resources

Stars

2 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages