为什么做这个

发现自己每天每次使用电脑时都要一系列固定的操作:
码代码时要打开 VSCode,查资料要打开浏览器,记笔记会打开Typora,遇到难题问 AI 要启动 Deepseek Harness、Chatbox,喜欢边听歌边工作,摸鱼时偶尔还会刷会知乎、 bilibili…… 于是想着能不能把这些高频操作“打包”起来,做个 CLI 工具,一行命令启动我常用的软件和网页。

安装

在这里插入图片描述

已发布到PyPi,可通过以下命令安装

pip install firestart

如果显示报错,可能是您所用的PyPI 镜像并未同步更新,请临时使用PyPI官方源

pip install --index-url https://pypi.org/simple firestart

安装完成后,终端里直接用 fire 命令。


核心概念

firestart 里存的东西,分两类:

类型存的是什么能直接启动吗例子
“单发弹药”实际内容(网站 URL 或 exe 路径 + 启动参数)能bilibili、vscode
“组合弹药”一组“单发弹药名”一行命令逐个启动dev(启动 vscode + terminal + typora)

命令详解

在这里插入图片描述
在这里插入图片描述

🔹add — 添加单发弹药

fire add <名称> <目标> [--args "参数1,参数2"] [--cwd "工作目录"]

最常见的三个场景:

1. 添加网站

fire add bilibili https://www.bilibili.com
fire add zhihu https://www.zhihu.com

2. 添加本地应用

fire add typora "C:\Program Files\Typora\Typora.exe"

3. 带启动参数和工作目录

# VSCode 启动后直接打开指定项目
fire add code "C:\Users\你\AppData\Local\Programs\Microsoft VS Code\Code.exe" --args "C:\project\myapp"

--args 多个参数用逗号分隔:例如--args "-p,8080,-v" → ['-p', '8080', '-v']


🔹workspace — 管理组合弹药

fire workspace add <名称> <弹药1> <弹药2> ...    # 创建组合弹药
fire workspace list                               # 列出所有组合弹药
fire workspace remove <名称>                      # 删除组合弹药

创建组合弹药前必须先有单发弹药——组合弹药存的是单发弹药的引用名,不是拷贝。

# 先储备弹药
fire add vscode "C:\...\vscode.exe" --args "C:\project"
fire add terminal "wt.exe"
fire add typora "C:\Program Files\Typora\Typora.exe"

# 再组合成组合弹药
fire workspace add dev vscode terminal typora

# 以后一条命令同时启动全部
fire dev

🔹点火

fire <弹药名>

直接敲名字就点燃——不需要写 open、不需要写 start。如果是组合弹药,会同时启动里面所有弹药。

fire bilibili       # 打开 B 站
fire dev            # 点燃组合弹药:VSCode + 终端 + Notion 一起开
fire morning        # 摸鱼组合弹药:知乎 + B 站 + 网易云

remove — 删除单发弹药

fire remove <名称>

⚠️ 组合弹药请用 fire workspace remove <名称>,不用 fire remove。


🔹list — 列出弹药库

fire list        # 简洁模式
fire list -v     # 详细模式(显示完整路径和参数)

输出示例:

单发弹药:
  bilibili
  zhihu
  code
组合弹药:
  dev (3 发)
  morning (3 发)

🔹browser — 管理默认浏览器

打开网站时,默认用系统浏览器。如果你常用的是其他浏览器,可以全局设置一次:

fire browser set "C:\Program Files\Mozilla Firefox\firefox.exe"   # 设置
fire browser show                                                  # 查看当前设置
fire browser clear                                                 # 清除,恢复系统默认

设置后,用FireStart启动所有网站都会用这个浏览器打开。如果浏览器被卸载了、启动失败,会自动更改到系统默认浏览器,不会卡死。


🔹config — 打开配置文件

fire config

用系统默认编辑器(Windows 是记事本)打开配置文件。配置文件是纯 JSON,你可以直接手写或手动编辑。

配置文件位置:~/.firestart.json(用户主目录下,比如C:\Users\Administrator\.firestart.json)


🔹export / import — 导入导出(换电脑必备)

fire export                        # 输出到终端
fire export my-config.json         # 导出到文件
fire import my-config.json         # 导入(默认合并到现有配置)
fire import my-config.json --overwrite   # 覆盖现有配置

示例配置文件格式

~/.firestart.json 的完整格式:

{
  "_settings": {
    "browser": "C:\\Program Files\\Mozilla Firefox\\firefox.exe"
  },

  "bilibili": "https://www.bilibili.com",
  "zhihu": "https://www.zhihu.com",

  "code": {
    "target": "C:\\Users\\你\\AppData\\Local\\Programs\\Microsoft VS Code\\Code.exe",
    "args": ["C:\\project\\myapp"]
  },

  "dev": {
    "items": ["bilibili", "zhihu", "code"]
  }
}
key含义
_settings全局设置默认浏览器
字符串值网站 URL 或 本地程序路径
{target, args}{本地程序路径,启动参数}
{items: [...]}组合弹药格式

项目结构

firestart/
├── __init__.py    # 版本号
├── cli.py         # 核心
└── config.py      # 配置文件读写 + 常量

setup.py           # 打包配置
requirements.txt   # 依赖(click>=8.0.0)

核心技术点速览

技术说明
click 框架作为 CLI 入口框架,定义 add/workspace 等核心命令组
继承 click.Group重写 resolve_command,将非子命令参数识别为「弹药」触发启动
subprocess.Popen非阻塞,启动后立即返回,CLI不卡壳
webbrowser 标准库没配自定义浏览器时的 fallback使用默认浏览器
JSON + pathlib跨平台,配置文件在用户主目录

创作声明

灵感源于日常使用电脑的高频痛点。技术栈选择及项目整体设计由本人完成,代码编写有采用 AI 辅助实现。二次开发请注明出处。

遵循Unix设计哲学:“只做并做好一件事”。对我而言,能用技术解决自身一个微小而真切的需求,便是最大的欣慰。

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐