Skip to content

apps4coder/monkey-flow

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Monkey Flow - 程序员命令行音乐播放器 🎵

一款专为程序员打造的优雅、简洁的命令行音乐播放工具,提供专注编程时的背景音乐体验。

✨ 核心特性

  • 场景智能推荐 - 根据编程活动类型(算法、前端、后端、调试等)推荐合适的背景音乐
  • 版权合规 - 100%使用CC协议音乐,避免侵权风险
  • 离线优先 - 本地存储音乐文件和索引,无网络依赖
  • 低资源占用 - 内存占用<20MB,启动时间<0.1秒
  • 纯Rust实现 - 无外部语言依赖,单一可执行文件

🚀 快速开始

环境准备

本项目使用 Rust 语言开发,需要先安装 Rust 开发环境。

Windows 系统

  1. 下载 Rust 安装程序

  2. 运行安装程序

    • 双击运行 rustup-init.exe
    • 在命令行界面中,输入 1 选择默认安装,然后按回车
    • 等待安装完成(需要下载约 200MB 的工具链)
  3. 重启终端

    • 安装完成后,关闭并重新打开 PowerShell 或命令提示符
    • 这是为了让新的 PATH 环境变量生效
  4. 验证安装

    rustc --version
    cargo --version

    如果显示版本号(如 rustc 1.75.0),说明安装成功。

macOS 系统

# 使用官方安装脚本
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh

# 按提示选择默认安装(输入 1)
# 安装完成后,重新加载环境变量
source $HOME/.cargo/env

# 验证安装
rustc --version
cargo --version

Linux 系统

# 使用官方安装脚本
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 list

播放控制

monkey-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

📝 版权说明

本工具所使用的音乐均来自以下合规渠道:

  1. 网易云音乐CC协议专区 - 所有音乐均标注CC协议
  2. Free Music Archive - 平台提供的免费音乐

重要提示

  • 所有音乐仅供个人学习和非商业使用
  • 禁止将下载的音乐用于商业目的
  • 使用音乐时需遵守对应的CC协议要求

🤝 贡献

欢迎提交Issue和Pull Request!

📄 许可证

MIT License

🙏 致谢

感谢所有开源音乐创作者的贡献! monkey flow

About

monkey flow

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages