一款专为程序员打造的优雅、简洁的命令行音乐播放工具,提供专注编程时的背景音乐体验。
- 场景智能推荐 - 根据编程活动类型(算法、前端、后端、调试等)推荐合适的背景音乐
- 版权合规 - 100%使用CC协议音乐,避免侵权风险
- 离线优先 - 本地存储音乐文件和索引,无网络依赖
- 低资源占用 - 内存占用<20MB,启动时间<0.1秒
- 纯Rust实现 - 无外部语言依赖,单一可执行文件
本项目使用 Rust 语言开发,需要先安装 Rust 开发环境。
-
下载 Rust 安装程序
- 访问 https://rustup.rs/
- 点击下载
rustup-init.exe
-
运行安装程序
- 双击运行
rustup-init.exe - 在命令行界面中,输入
1选择默认安装,然后按回车 - 等待安装完成(需要下载约 200MB 的工具链)
- 双击运行
-
重启终端
- 安装完成后,关闭并重新打开 PowerShell 或命令提示符
- 这是为了让新的 PATH 环境变量生效
-
验证安装
rustc --version cargo --version
如果显示版本号(如
rustc 1.75.0),说明安装成功。
# 使用官方安装脚本
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 按提示选择默认安装(输入 1)
# 安装完成后,重新加载环境变量
source $HOME/.cargo/env
# 验证安装
rustc --version
cargo --version# 使用官方安装脚本
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 按提示选择默认安装(输入 1)
# 安装完成后,重新加载环境变量
source $HOME/.cargo/env
# 验证安装
rustc --version
cargo --version提示:如果遇到网络问题,可以配置 Rust 镜像源加速下载。在
~/.cargo/config.toml中添加:[source.crates-io] replace-with = 'ustc' [source.ustc] registry = "sparse+https://mirrors.ustc.edu.cn/crates.io-index/"
确保 Rust 环境安装成功后,执行以下命令:
# 克隆项目
git clone https://github.com/yourusername/monkey-flow.git
cd monkey-flow
# 编译项目(Release 模式,性能更好)
cargo build --release
# 可选:安装到系统路径(之后可以直接使用 monkey-flow 命令)
cargo install --path .编译成功后,可执行文件位于 target/release/monkey-flow(Windows 下为 monkey-flow.exe)。
# 首次使用需要初始化
monkey-flow init根据编程场景自动推荐并播放音乐:
# 算法编写场景
monkey-flow play --scene algorithm
# 前端开发场景
monkey-flow play --scene frontend
# 后端开发场景
monkey-flow play --scene backend
# 调试代码场景
monkey-flow play --scene debugging查看所有支持的场景:
monkey-flow scene listmonkey-flow pause # 暂停
monkey-flow resume # 继续
monkey-flow stop # 停止
monkey-flow next # 下一曲
monkey-flow prev # 上一曲
monkey-flow volume 80 # 设置音量
monkey-flow status # 查看状态# 按歌曲名称搜索
monkey-flow search "lofi beats"
# 按艺术家搜索
monkey-flow search --artist "Artist Name"
# 按风格搜索
monkey-flow search --genre lofi
# 搜索后直接播放
monkey-flow search "song name" --play# 创建播放列表
monkey-flow playlist create "我的编程音乐" --desc "专注编程时听的音乐"
# 列出所有播放列表
monkey-flow playlist list
# 添加歌曲到播放列表
monkey-flow playlist add <playlist_id> <track_id>
# 播放播放列表
monkey-flow play --playlist <playlist_id># 添加收藏
monkey-flow favorite add <track_id>
# 查看收藏列表
monkey-flow favorite list
# 播放收藏列表
monkey-flow play --favorites# 查看播放历史
monkey-flow history list
# 查看统计信息
monkey-flow history stats| 场景 | 适用情况 | 推荐风格 |
|---|---|---|
| algorithm | 算法编写 | Lofi / 纯音乐 |
| frontend | 前端开发 | 电子音乐 / Chill |
| backend | 后端开发 | 环境音 / 爵士 |
| debugging | 调试代码 | 白噪音 / 极简 |
| meeting | 会议/沟通 | 轻音乐 / 古典 |
| general | 通用场景 | Lofi 混合 |
配置文件位置:~/.monkey-flow/config.toml
主要配置项:
[general]
local_music_dir = "~/.monkey-flow/music"
index_db_path = "~/.monkey-flow/index"
max_cache_size_mb = 500
[playback]
default_volume = 70
default_mode = "sequential" # sequential, loop, loopall, shuffle
[recommendation]
genre_match_weight = 1.0
history_weight = 0.1
rating_weight = 0.5
favorite_boost = 2.0- 语言: Rust 2021
- CLI: clap 4.5
- 音频播放: rodio 0.18
- 数据库: RocksDB 0.22
- 配置管理: config + toml
- 异步运行时: tokio 1.35
本工具所使用的音乐均来自以下合规渠道:
- 网易云音乐CC协议专区 - 所有音乐均标注CC协议
- Free Music Archive - 平台提供的免费音乐
重要提示:
- 所有音乐仅供个人学习和非商业使用
- 禁止将下载的音乐用于商业目的
- 使用音乐时需遵守对应的CC协议要求
欢迎提交Issue和Pull Request!
MIT License
感谢所有开源音乐创作者的贡献! monkey flow